Add error handling for asset import in gltf-model-import.ts
This commit is contained in:
@@ -335,21 +335,27 @@ export async function importModelAssetFromFile(
|
|||||||
|
|
||||||
const metadata = extractModelAssetMetadata(gltf, format);
|
const metadata = extractModelAssetMetadata(gltf, format);
|
||||||
const asset = createModelAssetRecord(sourceName, mimeType, bytes, metadata);
|
const asset = createModelAssetRecord(sourceName, mimeType, bytes, metadata);
|
||||||
await storage.putAsset(asset.storageKey, {
|
|
||||||
bytes,
|
|
||||||
mimeType
|
|
||||||
} satisfies ProjectAssetStorageRecord);
|
|
||||||
|
|
||||||
const modelInstance = createModelInstance({
|
try {
|
||||||
assetId: asset.id,
|
await storage.putAsset(asset.storageKey, {
|
||||||
name: undefined
|
bytes,
|
||||||
});
|
mimeType
|
||||||
|
} satisfies ProjectAssetStorageRecord);
|
||||||
|
|
||||||
return {
|
const modelInstance = createModelInstance({
|
||||||
asset,
|
assetId: asset.id,
|
||||||
modelInstance,
|
name: undefined
|
||||||
loadedAsset: createLoadedModelAsset(asset, cloneTemplateScene(gltf.scene))
|
});
|
||||||
};
|
|
||||||
|
return {
|
||||||
|
asset,
|
||||||
|
modelInstance,
|
||||||
|
loadedAsset: createLoadedModelAsset(asset, cloneTemplateScene(gltf.scene))
|
||||||
|
};
|
||||||
|
} catch (error) {
|
||||||
|
await storage.deleteAsset(asset.storageKey).catch(() => undefined);
|
||||||
|
throw error;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function loadModelAssetFromStorage(
|
export async function loadModelAssetFromStorage(
|
||||||
|
|||||||
Reference in New Issue
Block a user