diff --git a/src/components/StoreBuilder.ts b/src/components/StoreBuilder.ts index df8b23b0..99630539 100644 --- a/src/components/StoreBuilder.ts +++ b/src/components/StoreBuilder.ts @@ -33,6 +33,10 @@ export function StoreBuilder(props: StoreBuilderProps) { const { spec, specUrl, options, onLoaded, children } = props; const [resolvedSpec, setResolvedSpec] = React.useState(null); + const [error, setError] = React.useState(null); + if (error) { + throw error; + } React.useEffect(() => { async function load() { @@ -40,8 +44,13 @@ export function StoreBuilder(props: StoreBuilderProps) { return undefined; } setResolvedSpec(null); - const resolved = await loadAndBundleSpec(spec || specUrl!); - setResolvedSpec(resolved); + try { + const resolved = await loadAndBundleSpec(spec || specUrl!); + setResolvedSpec(resolved); + } catch (e) { + setError(e); + throw e; + } } load(); }, [spec, specUrl]);