From d25f06017d6d5a5a219d4d6c218f7351244b7742 Mon Sep 17 00:00:00 2001 From: Alex Varchuk Date: Thu, 5 May 2022 14:31:19 +0300 Subject: [PATCH] fix: handle error when definition load fails --- src/components/StoreBuilder.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) 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]);