From 508ebd58a3d66f2337e9641852322458a1bd9e6b Mon Sep 17 00:00:00 2001 From: AlexVarchuk Date: Thu, 5 May 2022 15:49:08 +0300 Subject: [PATCH] fix: handle error when definition load fails (#1979) --- 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]);