chore(viewer-lib): URLHelper now fails early if it cannot build the URLs (#4404)

* chore(viewer-lib): URLHelper now fails early if it cannot build the URLs

* chore(viewer-lib): Style change

* fix(viewer-lib): Sandboxerrors
This commit is contained in:
Alexandru Popovici
2025-04-14 18:14:42 +03:00
committed by GitHub
parent 36703150ce
commit 3b2146f0de
2 changed files with 29 additions and 17 deletions
+3
View File
@@ -513,6 +513,9 @@ const getStream = () => {
//too big?
// `https://latest.speckle.systems/projects/126cd4b7bb/models/032d09f716`
// 'https://app.speckle.systems/streams/da9e320dad/commits/5388ef24b8?c=%5B-7.66134,10.82932,6.41935,-0.07739,-13.88552,1.8697,0,1%5D'
// BUSTED model ID
// 'https://app.speckle.systems/projects/155101d3ca/models/b8d3b42787b2dc9fc412a8ae16af03ac385e48e6'
)
}
+26 -17
View File
@@ -142,7 +142,13 @@ async function getNewResourceUrls(url: string, authToken?: string): Promise<stri
}
}
return (await Promise.all(promises)).flat()
try {
const results = await Promise.all(promises)
return results.flatMap((val) => (Array.isArray(val) ? val : [val]))
} catch (e) {
Logger.error(e)
return []
}
}
async function objectResourceToUrl(
@@ -208,14 +214,15 @@ async function runModelLastVersionQuery(
try {
const data = await getResponse(res)
return `${ref.origin}/streams/${ref.projectId}/objects/${data.project.model.versions.items[0].referencedObject}`
} catch (e) {
Logger.error(
`Could not get object URLs for project ${ref.projectId} and model ${
resource.modelId
}. Error: ${e instanceof Error ? e.message : e}`
} catch (e: unknown) {
return Promise.reject(
new Error(
`Could not get object URLs for project ${ref.projectId} and model ${
resource.modelId
}. Error: ${e instanceof Error ? e.message : e}`
)
)
}
return ''
}
async function runModelVersionQuery(
@@ -249,13 +256,14 @@ async function runModelVersionQuery(
const data = await getResponse(res)
return `${ref.origin}/streams/${ref.projectId}/objects/${data.project.model.version.referencedObject}`
} catch (e) {
Logger.error(
`Could not get object URLs for project ${ref.projectId} and model ${
resource.modelId
}. Error: ${e instanceof Error ? e.message : e}`
return Promise.reject(
new Error(
`Could not get object URLs for project ${ref.projectId} and model ${
resource.modelId
}. Error: ${e instanceof Error ? e.message : e}`
)
)
}
return ''
}
async function runAllModelsQuery(
@@ -298,13 +306,14 @@ async function runAllModelsQuery(
)
return urls
} catch (e) {
Logger.error(
`Could not get object URLs for project ${ref.projectId}. Error: ${
e instanceof Error ? e.message : e
}`
return Promise.reject(
new Error(
`Could not get object URLs for project ${ref.projectId}. Error: ${
e instanceof Error ? e.message : e
}`
)
)
}
return ['']
}
async function getResponse(res: Response) {