feat(assets): publish reusable area packages

This commit is contained in:
2026-08-11 16:07:07 +08:00
parent b4a81331e8
commit f385009043
18 changed files with 292 additions and 108 deletions

View File

@@ -143,30 +143,25 @@ function previewOutputPath(output, explicitPath) {
function writeCompressedMetadata(sourceMetadata, outputGlb, outputMetadata) {
const metadata = JSON.parse(fs.readFileSync(sourceMetadata, "utf8"));
const glbName = path.basename(outputGlb);
metadata.asset = glbName;
if (metadata.asset !== undefined) metadata.asset = glbName;
const assets = Array.isArray(metadata.assets) ? metadata.assets : [];
const main = assets.find((asset) => asset.id === "main");
metadata.assets = assets.length
? assets.map((asset) => asset.id === "main" ? {
...asset,
label: "Compressed Scene",
url: glbName,
enabled: true,
...(Object.hasOwn(asset, "uri") ? { uri: `models/${glbName}`, defaultLoad: true } : { url: glbName, enabled: true }),
} : asset)
: [{
id: "main",
label: "Compressed Scene",
type: "model",
url: glbName,
enabled: true,
role: "scene", category: "scene", uri: `models/${glbName}`, defaultLoad: true,
}];
if (!main && assets.length) {
metadata.assets.unshift({
id: "main",
label: "Compressed Scene",
type: "model",
url: glbName,
enabled: true,
role: "scene", category: "scene", uri: `models/${glbName}`, defaultLoad: true,
});
}
if (typeof metadata.cesium_js === "string") {