@squide/firefly 9.3.3 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +72 -54
- package/README.md +2 -2
- package/dist/AppRouter.d.ts +1 -1
- package/dist/AppRouter.js +6 -6
- package/dist/AppRouter.js.map +1 -1
- package/dist/AppRouterContext.js +4 -4
- package/dist/AppRouterContext.js.map +1 -1
- package/dist/AppRouterReducer.js +30 -30
- package/dist/AppRouterReducer.js.map +1 -1
- package/dist/FireflyRuntime.js +8 -8
- package/dist/FireflyRuntime.js.map +1 -1
- package/dist/RootRoute.js +3 -3
- package/dist/RootRoute.js.map +1 -1
- package/dist/boostrap.d.ts +1 -1
- package/dist/boostrap.js +16 -16
- package/dist/boostrap.js.map +1 -1
- package/dist/index.js +4 -4
- package/dist/useDeferredRegistrations.js +3 -3
- package/dist/useDeferredRegistrations.js.map +1 -1
- package/dist/useIsActiveRouteProtected.js +7 -7
- package/dist/useIsActiveRouteProtected.js.map +1 -1
- package/dist/useNavigationItems.js +3 -3
- package/dist/useNavigationItems.js.map +1 -1
- package/dist/useProtectedDataQueries.js +3 -3
- package/dist/useProtectedDataQueries.js.map +1 -1
- package/dist/usePublicDataQueries.js +3 -3
- package/dist/usePublicDataQueries.js.map +1 -1
- package/dist/useRegisterDeferredRegistrations.js +3 -3
- package/dist/useRegisterDeferredRegistrations.js.map +1 -1
- package/dist/useStrictRegistrationMode.js +12 -12
- package/dist/useStrictRegistrationMode.js.map +1 -1
- package/dist/useUpdateDeferredRegistrations.js +3 -3
- package/dist/useUpdateDeferredRegistrations.js.map +1 -1
- package/package.json +13 -13
- package/src/AppRouter.tsx +1 -1
- package/src/RootRoute.tsx +1 -1
- package/src/boostrap.ts +7 -7
- package/src/useIsActiveRouteProtected.ts +1 -1
- package/src/useProtectedDataQueries.ts +1 -1
- package/src/usePublicDataQueries.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useProtectedDataQueries.js","sources":["webpack://@squide/firefly/./src/useProtectedDataQueries.ts"],"sourcesContent":["import { useEventBus } from \"@squide/core\";\nimport { useQueries, type QueriesOptions, type QueriesResults, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useCallback, useEffect, useRef } from \"react\";\nimport { useAppRouterDispatcher, useAppRouterState } from \"./AppRouterContext.ts\";\nimport { GlobalDataQueriesError } from \"./GlobalDataQueriesError.ts\";\nimport { useCanFetchProtectedData } from \"./useCanFetchProtectedData.ts\";\nimport { useExecuteOnce } from \"./useExecuteOnce.ts\";\n\nexport const ProtectedDataFetchStartedEvent = \"squide-protected-data-fetch-started\";\nexport const ProtectedDataFetchFailedEvent = \"squide-protected-data-fetch-failed\";\n\nexport type IsUnauthorizedErrorCallback = (error: unknown) => boolean;\n\n// This converts an array of UseQueryResult to an array of the data type of each query result.\n// For more information, view: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-1.html#mapped-types-on-tuples-and-arrays.\ntype MapUseQueryResultToData<T> = { [K in keyof T]: T[K] extends UseQueryResult<infer U> ? U : never };\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useProtectedDataQueries<T extends Array<any>>(queries: QueriesOptions<T>, isUnauthorizedError: IsUnauthorizedErrorCallback): MapUseQueryResultToData<QueriesResults<T>> {\n const canFetchProtectedData = useCanFetchProtectedData();\n const eventBus = useEventBus();\n\n const dispatch = useAppRouterDispatcher();\n\n const combineResults = useCallback((results: UseQueryResult<unknown,
|
|
1
|
+
{"version":3,"file":"useProtectedDataQueries.js","sources":["webpack://@squide/firefly/./src/useProtectedDataQueries.ts"],"sourcesContent":["import { useEventBus } from \"@squide/core\";\nimport { useQueries, type QueriesOptions, type QueriesResults, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useCallback, useEffect, useRef } from \"react\";\nimport { useAppRouterDispatcher, useAppRouterState } from \"./AppRouterContext.ts\";\nimport { GlobalDataQueriesError } from \"./GlobalDataQueriesError.ts\";\nimport { useCanFetchProtectedData } from \"./useCanFetchProtectedData.ts\";\nimport { useExecuteOnce } from \"./useExecuteOnce.ts\";\n\nexport const ProtectedDataFetchStartedEvent = \"squide-protected-data-fetch-started\";\nexport const ProtectedDataFetchFailedEvent = \"squide-protected-data-fetch-failed\";\n\nexport type IsUnauthorizedErrorCallback = (error: unknown) => boolean;\n\n// This converts an array of UseQueryResult to an array of the data type of each query result.\n// For more information, view: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-1.html#mapped-types-on-tuples-and-arrays.\ntype MapUseQueryResultToData<T> = { [K in keyof T]: T[K] extends UseQueryResult<infer U> ? U : never };\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useProtectedDataQueries<T extends Array<any>>(queries: QueriesOptions<T>, isUnauthorizedError: IsUnauthorizedErrorCallback): MapUseQueryResultToData<QueriesResults<T>> {\n const canFetchProtectedData = useCanFetchProtectedData();\n const eventBus = useEventBus();\n\n const dispatch = useAppRouterDispatcher();\n\n const combineResults = useCallback((results: UseQueryResult<unknown, unknown>[]) => {\n const errors = results.filter(x => x.error).map(x => x.error) as Error[];\n const hasErrors = errors.length > 0;\n\n return {\n data: results.map(x => x.data) as MapUseQueryResultToData<QueriesResults<T>>,\n errors,\n hasErrors,\n isReady: !hasErrors && !results.some(x => x.isPending)\n };\n }, []);\n\n const { data, errors: queriesErrors, hasErrors, isReady } = useQueries({\n queries: queries.map(x => ({\n enabled: canFetchProtectedData,\n ...x\n })),\n combine: combineResults\n });\n\n const { isProtectedDataReady, isUnauthorized } = useAppRouterState();\n\n useExecuteOnce(useCallback(() => {\n if (canFetchProtectedData) {\n eventBus.dispatch(ProtectedDataFetchStartedEvent);\n\n return true;\n }\n\n return false;\n }, [canFetchProtectedData, eventBus]), true);\n\n // Using a ref seems to be the only way to prevent starting two deferred registrations scope.\n const isReadyRef = useRef(false);\n\n const dispatchReady = useExecuteOnce(useCallback(() => {\n if (isReady) {\n isReadyRef.current = true;\n\n dispatch({ type: \"protected-data-ready\" });\n\n return true;\n }\n\n return false;\n }, [isReady, dispatch]));\n\n useEffect(() => {\n // State update must be executed in useEffect.\n dispatchReady();\n }, [dispatchReady]);\n\n useEffect(() => {\n if (isReadyRef.current && data) {\n dispatch({ type: \"protected-data-updated\" });\n }\n }, [data, dispatch]);\n\n useEffect(() => {\n if (hasErrors) {\n if (!isProtectedDataReady && !isUnauthorized && queriesErrors.some(x => isUnauthorizedError(x))) {\n // Will transition the state to allow the routes to render even if the bootstrapping is not complete, because otherwise\n // a login page for example could not be rendered.\n dispatch({ type: \"is-unauthorized\" });\n }\n\n // Otherwise, when a user is logged off, a refetch might throws a 401.\n if (!queriesErrors.every(x => isUnauthorizedError(x))) {\n eventBus.dispatch(ProtectedDataFetchFailedEvent, queriesErrors);\n\n throw new GlobalDataQueriesError(\"[squide] Global protected data queries failed.\", queriesErrors);\n }\n }\n }, [hasErrors, queriesErrors, isProtectedDataReady, isUnauthorized, isUnauthorizedError, dispatch, eventBus]);\n\n return data;\n}\n"],"names":["useEventBus","useQueries","useCallback","useEffect","useRef","useAppRouterDispatcher","useAppRouterState","GlobalDataQueriesError","useCanFetchProtectedData","useExecuteOnce","ProtectedDataFetchStartedEvent","ProtectedDataFetchFailedEvent","useProtectedDataQueries","queries","isUnauthorizedError","canFetchProtectedData","eventBus","dispatch","combineResults","results","errors","x","hasErrors","data","queriesErrors","isReady","isProtectedDataReady","isUnauthorized","isReadyRef","dispatchReady"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAA2C;AACuE;AAC3D;AAC2B;AACb;AACI;AACpB;AAE9C,MAAMU,iCAAiC,sCAAsC;AAC7E,MAAMC,gCAAgC,qCAAqC;AAQlF,8DAA8D;AACvD,SAASC,wBAA8CC,OAA0B,EAAEC,mBAAgD;IACtI,MAAMC,wBAAwBP,8FAAwBA;IACtD,MAAMQ,WAAWhB,iEAAWA;IAE5B,MAAMiB,WAAWZ,oFAAsBA;IAEvC,MAAMa,iBAAiBhB,iDAAWA,CAAC,CAACiB;QAChC,MAAMC,SAASD,QAAQ,MAAM,CAACE,CAAAA,IAAKA,EAAE,KAAK,EAAE,GAAG,CAACA,CAAAA,IAAKA,EAAE,KAAK;QAC5D,MAAMC,YAAYF,OAAO,MAAM,GAAG;QAElC,OAAO;YACH,MAAMD,QAAQ,GAAG,CAACE,CAAAA,IAAKA,EAAE,IAAI;YAC7BD;YACAE;YACA,SAAS,CAACA,aAAa,CAACH,QAAQ,IAAI,CAACE,CAAAA,IAAKA,EAAE,SAAS;QACzD;IACJ,GAAG,EAAE;IAEL,MAAM,EAAEE,IAAI,EAAE,QAAQC,aAAa,EAAEF,SAAS,EAAEG,OAAO,EAAE,GAAGxB,yEAAUA,CAAC;QACnE,SAASY,QAAQ,GAAG,CAACQ,CAAAA,IAAM;gBACvB,SAASN;gBACT,GAAGM,CAAC;YACR;QACA,SAASH;IACb;IAEA,MAAM,EAAEQ,oBAAoB,EAAEC,cAAc,EAAE,GAAGrB,+EAAiBA;IAElEG,0EAAcA,CAACP,iDAAWA,CAAC;QACvB,IAAIa,uBAAuB;YACvBC,SAAS,QAAQ,CAACN;YAElB,OAAO;QACX;QAEA,OAAO;IACX,GAAG;QAACK;QAAuBC;KAAS,GAAG;IAEvC,6FAA6F;IAC7F,MAAMY,aAAaxB,4CAAMA,CAAC;IAE1B,MAAMyB,gBAAgBpB,0EAAcA,CAACP,iDAAWA,CAAC;QAC7C,IAAIuB,SAAS;YACTG,WAAW,OAAO,GAAG;YAErBX,SAAS;gBAAE,MAAM;YAAuB;YAExC,OAAO;QACX;QAEA,OAAO;IACX,GAAG;QAACQ;QAASR;KAAS;IAEtBd,+CAASA,CAAC;QACN,8CAA8C;QAC9C0B;IACJ,GAAG;QAACA;KAAc;IAElB1B,+CAASA,CAAC;QACN,IAAIyB,WAAW,OAAO,IAAIL,MAAM;YAC5BN,SAAS;gBAAE,MAAM;YAAyB;QAC9C;IACJ,GAAG;QAACM;QAAMN;KAAS;IAEnBd,+CAASA,CAAC;QACN,IAAImB,WAAW;YACX,IAAI,CAACI,wBAAwB,CAACC,kBAAkBH,cAAc,IAAI,CAACH,CAAAA,IAAKP,oBAAoBO,KAAK;gBAC7F,uHAAuH;gBACvH,kDAAkD;gBAClDJ,SAAS;oBAAE,MAAM;gBAAkB;YACvC;YAEA,sEAAsE;YACtE,IAAI,CAACO,cAAc,KAAK,CAACH,CAAAA,IAAKP,oBAAoBO,KAAK;gBACnDL,SAAS,QAAQ,CAACL,+BAA+Ba;gBAEjD,MAAM,IAAIjB,sFAAsBA,CAAC,kDAAkDiB;YACvF;QACJ;IACJ,GAAG;QAACF;QAAWE;QAAeE;QAAsBC;QAAgBb;QAAqBG;QAAUD;KAAS;IAE5G,OAAOO;AACX"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE__squide_core_7a405b8f__ from "@squide/core";
|
|
2
2
|
import * as __WEBPACK_EXTERNAL_MODULE__tanstack_react_query_db705f77__ from "@tanstack/react-query";
|
|
3
3
|
import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
|
|
4
4
|
import * as __WEBPACK_EXTERNAL_MODULE__AppRouterContext_js_3c4a3c33__ from "./AppRouterContext.js";
|
|
@@ -6,7 +6,7 @@ import * as __WEBPACK_EXTERNAL_MODULE__GlobalDataQueriesError_js_0c24ca62__ from
|
|
|
6
6
|
import * as __WEBPACK_EXTERNAL_MODULE__useCanFetchPublicData_js_b8d90132__ from "./useCanFetchPublicData.js";
|
|
7
7
|
import * as __WEBPACK_EXTERNAL_MODULE__useExecuteOnce_js_e1f8f91b__ from "./useExecuteOnce.js";
|
|
8
8
|
|
|
9
|
-
;// CONCATENATED MODULE: external "
|
|
9
|
+
;// CONCATENATED MODULE: external "@squide/core"
|
|
10
10
|
|
|
11
11
|
;// CONCATENATED MODULE: external "@tanstack/react-query"
|
|
12
12
|
|
|
@@ -33,7 +33,7 @@ const PublicDataFetchFailedEvent = "squide-public-data-fetch-failed";
|
|
|
33
33
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
34
34
|
function usePublicDataQueries(queries) {
|
|
35
35
|
const canFetchPublicData = (0,__WEBPACK_EXTERNAL_MODULE__useCanFetchPublicData_js_b8d90132__.useCanFetchPublicData)();
|
|
36
|
-
const eventBus = (0,
|
|
36
|
+
const eventBus = (0,__WEBPACK_EXTERNAL_MODULE__squide_core_7a405b8f__.useEventBus)();
|
|
37
37
|
const dispatch = (0,__WEBPACK_EXTERNAL_MODULE__AppRouterContext_js_3c4a3c33__.useAppRouterDispatcher)();
|
|
38
38
|
const combineResults = (0,__WEBPACK_EXTERNAL_MODULE_react__.useCallback)((results)=>{
|
|
39
39
|
const errors = results.filter((x)=>x.error).map((x)=>x.error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePublicDataQueries.js","sources":["webpack://@squide/firefly/./src/usePublicDataQueries.ts"],"sourcesContent":["import { useEventBus } from \"@squide/core\";\nimport { useQueries, type QueriesOptions, type QueriesResults, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useCallback, useEffect, useRef } from \"react\";\nimport { useAppRouterDispatcher } from \"./AppRouterContext.ts\";\nimport { GlobalDataQueriesError } from \"./GlobalDataQueriesError.ts\";\nimport { useCanFetchPublicData } from \"./useCanFetchPublicData.ts\";\nimport { useExecuteOnce } from \"./useExecuteOnce.ts\";\n\nexport const PublicDataFetchStartedEvent = \"squide-public-data-fetch-started\";\nexport const PublicDataFetchFailedEvent = \"squide-public-data-fetch-failed\";\n\n// This converts an array of UseQueryResult to an array of the data type of each query result.\n// For more information, view: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-1.html#mapped-types-on-tuples-and-arrays.\ntype MapUseQueryResultToData<T> = { [K in keyof T]: T[K] extends UseQueryResult<infer U> ? U : never };\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function usePublicDataQueries<T extends Array<any>>(queries: QueriesOptions<T>): MapUseQueryResultToData<QueriesResults<T>> {\n const canFetchPublicData = useCanFetchPublicData();\n const eventBus = useEventBus();\n\n const dispatch = useAppRouterDispatcher();\n\n const combineResults = useCallback((results: UseQueryResult<unknown,
|
|
1
|
+
{"version":3,"file":"usePublicDataQueries.js","sources":["webpack://@squide/firefly/./src/usePublicDataQueries.ts"],"sourcesContent":["import { useEventBus } from \"@squide/core\";\nimport { useQueries, type QueriesOptions, type QueriesResults, type UseQueryResult } from \"@tanstack/react-query\";\nimport { useCallback, useEffect, useRef } from \"react\";\nimport { useAppRouterDispatcher } from \"./AppRouterContext.ts\";\nimport { GlobalDataQueriesError } from \"./GlobalDataQueriesError.ts\";\nimport { useCanFetchPublicData } from \"./useCanFetchPublicData.ts\";\nimport { useExecuteOnce } from \"./useExecuteOnce.ts\";\n\nexport const PublicDataFetchStartedEvent = \"squide-public-data-fetch-started\";\nexport const PublicDataFetchFailedEvent = \"squide-public-data-fetch-failed\";\n\n// This converts an array of UseQueryResult to an array of the data type of each query result.\n// For more information, view: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-1.html#mapped-types-on-tuples-and-arrays.\ntype MapUseQueryResultToData<T> = { [K in keyof T]: T[K] extends UseQueryResult<infer U> ? U : never };\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function usePublicDataQueries<T extends Array<any>>(queries: QueriesOptions<T>): MapUseQueryResultToData<QueriesResults<T>> {\n const canFetchPublicData = useCanFetchPublicData();\n const eventBus = useEventBus();\n\n const dispatch = useAppRouterDispatcher();\n\n const combineResults = useCallback((results: UseQueryResult<unknown, unknown>[]) => {\n const errors = results.filter(x => x.error).map(x => x.error) as Error[];\n const hasErrors = errors.length > 0;\n\n return {\n data: results.map(x => x.data) as MapUseQueryResultToData<QueriesResults<T>>,\n errors,\n hasErrors,\n isReady: !hasErrors && !results.some(x => x.isPending)\n };\n }, []);\n\n const { data, errors: queriesErrors, hasErrors, isReady } = useQueries({\n queries: queries.map(x => ({\n enabled: canFetchPublicData,\n ...x\n })),\n combine: combineResults\n });\n\n useExecuteOnce(useCallback(() => {\n if (canFetchPublicData) {\n eventBus.dispatch(PublicDataFetchStartedEvent);\n\n return true;\n }\n\n return false;\n }, [canFetchPublicData, eventBus]), true);\n\n // Using a ref seems to be the only way to prevent starting two deferred registrations scope.\n const isReadyRef = useRef(false);\n\n const dispatchReady = useExecuteOnce(useCallback(() => {\n if (isReady) {\n isReadyRef.current = true;\n\n dispatch({ type: \"public-data-ready\" });\n\n return true;\n }\n\n return false;\n }, [isReady, dispatch]));\n\n useEffect(() => {\n // State update must be executed in useEffect.\n dispatchReady();\n }, [dispatchReady]);\n\n useEffect(() => {\n if (isReadyRef.current && data) {\n dispatch({ type: \"public-data-updated\" });\n }\n }, [data, dispatch]);\n\n useEffect(() => {\n if (hasErrors) {\n eventBus.dispatch(PublicDataFetchFailedEvent, queriesErrors);\n\n throw new GlobalDataQueriesError(\"[squide] Global public data queries failed.\", queriesErrors);\n }\n }, [hasErrors, queriesErrors, eventBus]);\n\n return data;\n}\n"],"names":["useEventBus","useQueries","useCallback","useEffect","useRef","useAppRouterDispatcher","GlobalDataQueriesError","useCanFetchPublicData","useExecuteOnce","PublicDataFetchStartedEvent","PublicDataFetchFailedEvent","usePublicDataQueries","queries","canFetchPublicData","eventBus","dispatch","combineResults","results","errors","x","hasErrors","data","queriesErrors","isReady","isReadyRef","dispatchReady"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAA2C;AACuE;AAC3D;AACQ;AACM;AACF;AACd;AAE9C,MAAMS,8BAA8B,mCAAmC;AACvE,MAAMC,6BAA6B,kCAAkC;AAM5E,8DAA8D;AACvD,SAASC,qBAA2CC,OAA0B;IACjF,MAAMC,qBAAqBN,wFAAqBA;IAChD,MAAMO,WAAWd,iEAAWA;IAE5B,MAAMe,WAAWV,oFAAsBA;IAEvC,MAAMW,iBAAiBd,iDAAWA,CAAC,CAACe;QAChC,MAAMC,SAASD,QAAQ,MAAM,CAACE,CAAAA,IAAKA,EAAE,KAAK,EAAE,GAAG,CAACA,CAAAA,IAAKA,EAAE,KAAK;QAC5D,MAAMC,YAAYF,OAAO,MAAM,GAAG;QAElC,OAAO;YACH,MAAMD,QAAQ,GAAG,CAACE,CAAAA,IAAKA,EAAE,IAAI;YAC7BD;YACAE;YACA,SAAS,CAACA,aAAa,CAACH,QAAQ,IAAI,CAACE,CAAAA,IAAKA,EAAE,SAAS;QACzD;IACJ,GAAG,EAAE;IAEL,MAAM,EAAEE,IAAI,EAAE,QAAQC,aAAa,EAAEF,SAAS,EAAEG,OAAO,EAAE,GAAGtB,yEAAUA,CAAC;QACnE,SAASW,QAAQ,GAAG,CAACO,CAAAA,IAAM;gBACvB,SAASN;gBACT,GAAGM,CAAC;YACR;QACA,SAASH;IACb;IAEAR,0EAAcA,CAACN,iDAAWA,CAAC;QACvB,IAAIW,oBAAoB;YACpBC,SAAS,QAAQ,CAACL;YAElB,OAAO;QACX;QAEA,OAAO;IACX,GAAG;QAACI;QAAoBC;KAAS,GAAG;IAEpC,6FAA6F;IAC7F,MAAMU,aAAapB,4CAAMA,CAAC;IAE1B,MAAMqB,gBAAgBjB,0EAAcA,CAACN,iDAAWA,CAAC;QAC7C,IAAIqB,SAAS;YACTC,WAAW,OAAO,GAAG;YAErBT,SAAS;gBAAE,MAAM;YAAoB;YAErC,OAAO;QACX;QAEA,OAAO;IACX,GAAG;QAACQ;QAASR;KAAS;IAEtBZ,+CAASA,CAAC;QACN,8CAA8C;QAC9CsB;IACJ,GAAG;QAACA;KAAc;IAElBtB,+CAASA,CAAC;QACN,IAAIqB,WAAW,OAAO,IAAIH,MAAM;YAC5BN,SAAS;gBAAE,MAAM;YAAsB;QAC3C;IACJ,GAAG;QAACM;QAAMN;KAAS;IAEnBZ,+CAASA,CAAC;QACN,IAAIiB,WAAW;YACXN,SAAS,QAAQ,CAACJ,4BAA4BY;YAE9C,MAAM,IAAIhB,sFAAsBA,CAAC,+CAA+CgB;QACpF;IACJ,GAAG;QAACF;QAAWE;QAAeR;KAAS;IAEvC,OAAOO;AACX"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE__squide_module_federation_054d2ec6__ from "@squide/module-federation";
|
|
2
2
|
import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
|
|
3
3
|
|
|
4
|
-
;// CONCATENATED MODULE: external "
|
|
4
|
+
;// CONCATENATED MODULE: external "@squide/module-federation"
|
|
5
5
|
|
|
6
6
|
;// CONCATENATED MODULE: external "react"
|
|
7
7
|
|
|
@@ -10,7 +10,7 @@ import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
|
|
|
10
10
|
|
|
11
11
|
function useRegisterDeferredRegistrations() {
|
|
12
12
|
return (0,__WEBPACK_EXTERNAL_MODULE_react__.useCallback)((data, runtime)=>{
|
|
13
|
-
return (0,
|
|
13
|
+
return (0,__WEBPACK_EXTERNAL_MODULE__squide_module_federation_054d2ec6__.registerDeferredRegistrations)(data, runtime);
|
|
14
14
|
}, []);
|
|
15
15
|
}
|
|
16
16
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRegisterDeferredRegistrations.js","sources":["webpack://@squide/firefly/./src/useRegisterDeferredRegistrations.ts"],"sourcesContent":["import type { Runtime } from \"@squide/core\";\nimport { registerDeferredRegistrations } from \"@squide/module-federation\";\nimport { useCallback } from \"react\";\n\nexport function useRegisterDeferredRegistrations() {\n return useCallback(<TData = unknown, TRuntime extends Runtime = Runtime>(data: TData, runtime: TRuntime) => {\n return registerDeferredRegistrations(data, runtime);\n }, []);\n}\n"],"names":["registerDeferredRegistrations","useCallback","useRegisterDeferredRegistrations","data","runtime"],"mappings":";;;;;;;;AAC0E;AACtC;AAE7B,SAASE;IACZ,OAAOD,iDAAWA,CAAC,CAAsDE,MAAaC;QAClF,OAAOJ,
|
|
1
|
+
{"version":3,"file":"useRegisterDeferredRegistrations.js","sources":["webpack://@squide/firefly/./src/useRegisterDeferredRegistrations.ts"],"sourcesContent":["import type { Runtime } from \"@squide/core\";\nimport { registerDeferredRegistrations } from \"@squide/module-federation\";\nimport { useCallback } from \"react\";\n\nexport function useRegisterDeferredRegistrations() {\n return useCallback(<TData = unknown, TRuntime extends Runtime = Runtime>(data: TData, runtime: TRuntime) => {\n return registerDeferredRegistrations(data, runtime);\n }, []);\n}\n"],"names":["registerDeferredRegistrations","useCallback","useRegisterDeferredRegistrations","data","runtime"],"mappings":";;;;;;;;AAC0E;AACtC;AAE7B,SAASE;IACZ,OAAOD,iDAAWA,CAAC,CAAsDE,MAAaC;QAClF,OAAOJ,gGAA6BA,CAACG,MAAMC;IAC/C,GAAG,EAAE;AACT"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE__squide_core_7a405b8f__ from "@squide/core";
|
|
2
|
+
import * as __WEBPACK_EXTERNAL_MODULE__squide_module_federation_054d2ec6__ from "@squide/module-federation";
|
|
3
3
|
import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
|
|
4
4
|
|
|
5
|
-
;// CONCATENATED MODULE: external "
|
|
5
|
+
;// CONCATENATED MODULE: external "@squide/core"
|
|
6
6
|
|
|
7
|
-
;// CONCATENATED MODULE: external "
|
|
7
|
+
;// CONCATENATED MODULE: external "@squide/module-federation"
|
|
8
8
|
|
|
9
9
|
;// CONCATENATED MODULE: external "react"
|
|
10
10
|
|
|
@@ -13,19 +13,19 @@ import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
|
|
|
13
13
|
|
|
14
14
|
|
|
15
15
|
function subscribeToLocalModuleRegistrationStatusChanged(callback) {
|
|
16
|
-
(0,
|
|
17
|
-
return ()=>(0,
|
|
16
|
+
(0,__WEBPACK_EXTERNAL_MODULE__squide_core_7a405b8f__.addLocalModuleRegistrationStatusChangedListener)(callback);
|
|
17
|
+
return ()=>(0,__WEBPACK_EXTERNAL_MODULE__squide_core_7a405b8f__.removeLocalModuleRegistrationStatusChangedListener)(callback);
|
|
18
18
|
}
|
|
19
19
|
function subscribeToRemoteModuleRegistrationStatusChanged(callback) {
|
|
20
|
-
(0,
|
|
21
|
-
return ()=>(0,
|
|
20
|
+
(0,__WEBPACK_EXTERNAL_MODULE__squide_module_federation_054d2ec6__.addRemoteModuleRegistrationStatusChangedListener)(callback);
|
|
21
|
+
return ()=>(0,__WEBPACK_EXTERNAL_MODULE__squide_module_federation_054d2ec6__.removeRemoteModuleRegistrationStatusChangedListener)(callback);
|
|
22
22
|
}
|
|
23
23
|
function useStrictRegistrationMode() {
|
|
24
|
-
const runtime = (0,
|
|
25
|
-
const localModuleStatus = (0,__WEBPACK_EXTERNAL_MODULE_react__.useSyncExternalStore)(subscribeToLocalModuleRegistrationStatusChanged,
|
|
26
|
-
const remoteModuleStatus = (0,__WEBPACK_EXTERNAL_MODULE_react__.useSyncExternalStore)(subscribeToRemoteModuleRegistrationStatusChanged,
|
|
24
|
+
const runtime = (0,__WEBPACK_EXTERNAL_MODULE__squide_core_7a405b8f__.useRuntime)();
|
|
25
|
+
const localModuleStatus = (0,__WEBPACK_EXTERNAL_MODULE_react__.useSyncExternalStore)(subscribeToLocalModuleRegistrationStatusChanged, __WEBPACK_EXTERNAL_MODULE__squide_core_7a405b8f__.getLocalModuleRegistrationStatus);
|
|
26
|
+
const remoteModuleStatus = (0,__WEBPACK_EXTERNAL_MODULE_react__.useSyncExternalStore)(subscribeToRemoteModuleRegistrationStatusChanged, __WEBPACK_EXTERNAL_MODULE__squide_module_federation_054d2ec6__.getRemoteModuleRegistrationStatus);
|
|
27
27
|
(0,__WEBPACK_EXTERNAL_MODULE_react__.useEffect)(()=>{
|
|
28
|
-
if ((0,
|
|
28
|
+
if ((0,__WEBPACK_EXTERNAL_MODULE__squide_module_federation_054d2ec6__.areModulesReady)(localModuleStatus, remoteModuleStatus)) {
|
|
29
29
|
runtime._validateRegistrations();
|
|
30
30
|
}
|
|
31
31
|
}, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStrictRegistrationMode.js","sources":["webpack://@squide/firefly/./src/useStrictRegistrationMode.ts"],"sourcesContent":["import { addLocalModuleRegistrationStatusChangedListener, getLocalModuleRegistrationStatus, removeLocalModuleRegistrationStatusChangedListener, useRuntime } from \"@squide/core\";\nimport { addRemoteModuleRegistrationStatusChangedListener, areModulesReady, getRemoteModuleRegistrationStatus, removeRemoteModuleRegistrationStatusChangedListener } from \"@squide/module-federation\";\nimport { useEffect, useSyncExternalStore } from \"react\";\n\nfunction subscribeToLocalModuleRegistrationStatusChanged(callback: () => void) {\n addLocalModuleRegistrationStatusChangedListener(callback);\n\n return () => removeLocalModuleRegistrationStatusChangedListener(callback);\n}\n\nfunction subscribeToRemoteModuleRegistrationStatusChanged(callback: () => void) {\n addRemoteModuleRegistrationStatusChangedListener(callback);\n\n return () => removeRemoteModuleRegistrationStatusChangedListener(callback);\n}\n\nexport function useStrictRegistrationMode() {\n const runtime = useRuntime();\n\n const localModuleStatus = useSyncExternalStore(subscribeToLocalModuleRegistrationStatusChanged, getLocalModuleRegistrationStatus);\n const remoteModuleStatus = useSyncExternalStore(subscribeToRemoteModuleRegistrationStatusChanged, getRemoteModuleRegistrationStatus);\n\n useEffect(() => {\n if (areModulesReady(localModuleStatus, remoteModuleStatus)) {\n runtime._validateRegistrations();\n }\n }, [runtime, localModuleStatus, remoteModuleStatus]);\n}\n"],"names":["addLocalModuleRegistrationStatusChangedListener","getLocalModuleRegistrationStatus","removeLocalModuleRegistrationStatusChangedListener","useRuntime","addRemoteModuleRegistrationStatusChangedListener","areModulesReady","getRemoteModuleRegistrationStatus","removeRemoteModuleRegistrationStatusChangedListener","useEffect","useSyncExternalStore","subscribeToLocalModuleRegistrationStatusChanged","callback","subscribeToRemoteModuleRegistrationStatusChanged","useStrictRegistrationMode","runtime","localModuleStatus","remoteModuleStatus"],"mappings":";;;;;;;;;;;AAAiL;AACqB;AAC9I;AAExD,SAASU,gDAAgDC,QAAoB;IACzEX,
|
|
1
|
+
{"version":3,"file":"useStrictRegistrationMode.js","sources":["webpack://@squide/firefly/./src/useStrictRegistrationMode.ts"],"sourcesContent":["import { addLocalModuleRegistrationStatusChangedListener, getLocalModuleRegistrationStatus, removeLocalModuleRegistrationStatusChangedListener, useRuntime } from \"@squide/core\";\nimport { addRemoteModuleRegistrationStatusChangedListener, areModulesReady, getRemoteModuleRegistrationStatus, removeRemoteModuleRegistrationStatusChangedListener } from \"@squide/module-federation\";\nimport { useEffect, useSyncExternalStore } from \"react\";\n\nfunction subscribeToLocalModuleRegistrationStatusChanged(callback: () => void) {\n addLocalModuleRegistrationStatusChangedListener(callback);\n\n return () => removeLocalModuleRegistrationStatusChangedListener(callback);\n}\n\nfunction subscribeToRemoteModuleRegistrationStatusChanged(callback: () => void) {\n addRemoteModuleRegistrationStatusChangedListener(callback);\n\n return () => removeRemoteModuleRegistrationStatusChangedListener(callback);\n}\n\nexport function useStrictRegistrationMode() {\n const runtime = useRuntime();\n\n const localModuleStatus = useSyncExternalStore(subscribeToLocalModuleRegistrationStatusChanged, getLocalModuleRegistrationStatus);\n const remoteModuleStatus = useSyncExternalStore(subscribeToRemoteModuleRegistrationStatusChanged, getRemoteModuleRegistrationStatus);\n\n useEffect(() => {\n if (areModulesReady(localModuleStatus, remoteModuleStatus)) {\n runtime._validateRegistrations();\n }\n }, [runtime, localModuleStatus, remoteModuleStatus]);\n}\n"],"names":["addLocalModuleRegistrationStatusChangedListener","getLocalModuleRegistrationStatus","removeLocalModuleRegistrationStatusChangedListener","useRuntime","addRemoteModuleRegistrationStatusChangedListener","areModulesReady","getRemoteModuleRegistrationStatus","removeRemoteModuleRegistrationStatusChangedListener","useEffect","useSyncExternalStore","subscribeToLocalModuleRegistrationStatusChanged","callback","subscribeToRemoteModuleRegistrationStatusChanged","useStrictRegistrationMode","runtime","localModuleStatus","remoteModuleStatus"],"mappings":";;;;;;;;;;;AAAiL;AACqB;AAC9I;AAExD,SAASU,gDAAgDC,QAAoB;IACzEX,qGAA+CA,CAACW;IAEhD,OAAO,IAAMT,wGAAkDA,CAACS;AACpE;AAEA,SAASC,iDAAiDD,QAAoB;IAC1EP,mHAAgDA,CAACO;IAEjD,OAAO,IAAMJ,sHAAmDA,CAACI;AACrE;AAEO,SAASE;IACZ,MAAMC,UAAUX,gEAAUA;IAE1B,MAAMY,oBAAoBN,0DAAoBA,CAACC,iDAAiDT,kFAAgCA;IAChI,MAAMe,qBAAqBP,0DAAoBA,CAACG,kDAAkDN,gGAAiCA;IAEnIE,+CAASA,CAAC;QACN,IAAIH,kFAAeA,CAACU,mBAAmBC,qBAAqB;YACxDF,QAAQ,sBAAsB;QAClC;IACJ,GAAG;QAACA;QAASC;QAAmBC;KAAmB;AACvD"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as __WEBPACK_EXTERNAL_MODULE__squide_module_federation_054d2ec6__ from "@squide/module-federation";
|
|
2
2
|
import * as __WEBPACK_EXTERNAL_MODULE_react__ from "react";
|
|
3
3
|
import * as __WEBPACK_EXTERNAL_MODULE__AppRouterContext_js_3c4a3c33__ from "./AppRouterContext.js";
|
|
4
4
|
|
|
5
|
-
;// CONCATENATED MODULE: external "
|
|
5
|
+
;// CONCATENATED MODULE: external "@squide/module-federation"
|
|
6
6
|
|
|
7
7
|
;// CONCATENATED MODULE: external "react"
|
|
8
8
|
|
|
@@ -15,7 +15,7 @@ import * as __WEBPACK_EXTERNAL_MODULE__AppRouterContext_js_3c4a3c33__ from "./Ap
|
|
|
15
15
|
function useUpdateDeferredRegistrations() {
|
|
16
16
|
const dispatch = (0,__WEBPACK_EXTERNAL_MODULE__AppRouterContext_js_3c4a3c33__.useAppRouterDispatcher)();
|
|
17
17
|
return (0,__WEBPACK_EXTERNAL_MODULE_react__.useCallback)(async (data, runtime)=>{
|
|
18
|
-
const errors = await (0,
|
|
18
|
+
const errors = await (0,__WEBPACK_EXTERNAL_MODULE__squide_module_federation_054d2ec6__.updateDeferredRegistrations)(data, runtime);
|
|
19
19
|
dispatch({
|
|
20
20
|
type: "deferred-registrations-updated"
|
|
21
21
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUpdateDeferredRegistrations.js","sources":["webpack://@squide/firefly/./src/useUpdateDeferredRegistrations.ts"],"sourcesContent":["import type { Runtime } from \"@squide/core\";\nimport { updateDeferredRegistrations } from \"@squide/module-federation\";\nimport { useCallback } from \"react\";\nimport { useAppRouterDispatcher } from \"./AppRouterContext.ts\";\n\nexport function useUpdateDeferredRegistrations() {\n const dispatch = useAppRouterDispatcher();\n\n return useCallback(async <TData = unknown, TRuntime extends Runtime = Runtime>(data: TData, runtime: TRuntime) => {\n const errors = await updateDeferredRegistrations(data, runtime);\n\n dispatch({ type: \"deferred-registrations-updated\" });\n\n return errors;\n }, [dispatch]);\n}\n"],"names":["updateDeferredRegistrations","useCallback","useAppRouterDispatcher","useUpdateDeferredRegistrations","dispatch","data","runtime","errors"],"mappings":";;;;;;;;;;;AACwE;AACpC;AAC2B;AAExD,SAASG;IACZ,MAAMC,WAAWF,oFAAsBA;IAEvC,OAAOD,iDAAWA,CAAC,OAA4DI,MAAaC;QACxF,MAAMC,SAAS,MAAMP,
|
|
1
|
+
{"version":3,"file":"useUpdateDeferredRegistrations.js","sources":["webpack://@squide/firefly/./src/useUpdateDeferredRegistrations.ts"],"sourcesContent":["import type { Runtime } from \"@squide/core\";\nimport { updateDeferredRegistrations } from \"@squide/module-federation\";\nimport { useCallback } from \"react\";\nimport { useAppRouterDispatcher } from \"./AppRouterContext.ts\";\n\nexport function useUpdateDeferredRegistrations() {\n const dispatch = useAppRouterDispatcher();\n\n return useCallback(async <TData = unknown, TRuntime extends Runtime = Runtime>(data: TData, runtime: TRuntime) => {\n const errors = await updateDeferredRegistrations(data, runtime);\n\n dispatch({ type: \"deferred-registrations-updated\" });\n\n return errors;\n }, [dispatch]);\n}\n"],"names":["updateDeferredRegistrations","useCallback","useAppRouterDispatcher","useUpdateDeferredRegistrations","dispatch","data","runtime","errors"],"mappings":";;;;;;;;;;;AACwE;AACpC;AAC2B;AAExD,SAASG;IACZ,MAAMC,WAAWF,oFAAsBA;IAEvC,OAAOD,iDAAWA,CAAC,OAA4DI,MAAaC;QACxF,MAAMC,SAAS,MAAMP,8FAA2BA,CAACK,MAAMC;QAEvDF,SAAS;YAAE,MAAM;QAAiC;QAElD,OAAOG;IACX,GAAG;QAACH;KAAS;AACjB"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@squide/firefly",
|
|
3
3
|
"author": "Workleap",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "10.0.0",
|
|
5
5
|
"description": "Helpers to facilitate the creation of an application with the Squide firefly technology stack.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "git+https://github.com/
|
|
9
|
+
"url": "git+https://github.com/workleap/wl-squide.git",
|
|
10
10
|
"directory": "packages/firefly"
|
|
11
11
|
},
|
|
12
12
|
"type": "module",
|
|
@@ -32,36 +32,36 @@
|
|
|
32
32
|
"msw": "*",
|
|
33
33
|
"react": "*",
|
|
34
34
|
"react-dom": "*",
|
|
35
|
-
"react-router
|
|
35
|
+
"react-router": "*"
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@types/react": "19.0.
|
|
39
|
-
"@types/react-dom": "19.0.
|
|
38
|
+
"@types/react": "19.0.10",
|
|
39
|
+
"@types/react-dom": "19.0.4",
|
|
40
40
|
"@squide/core": "5.4.2",
|
|
41
41
|
"@squide/module-federation": "6.2.2",
|
|
42
42
|
"@squide/msw": "3.2.2",
|
|
43
|
-
"@squide/react-router": "
|
|
43
|
+
"@squide/react-router": "7.0.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@rsbuild/core": "1.
|
|
47
|
-
"@rslib/core": "0.
|
|
48
|
-
"@swc/core": "1.
|
|
46
|
+
"@rsbuild/core": "1.2.18",
|
|
47
|
+
"@rslib/core": "0.5.4",
|
|
48
|
+
"@swc/core": "1.11.9",
|
|
49
49
|
"@swc/jest": "0.2.37",
|
|
50
50
|
"@testing-library/jest-dom": "6.6.3",
|
|
51
51
|
"@testing-library/react": "16.2.0",
|
|
52
52
|
"@types/jest": "29.5.14",
|
|
53
|
-
"@typescript-eslint/parser": "8.
|
|
54
|
-
"@workleap/eslint-plugin": "3.
|
|
53
|
+
"@typescript-eslint/parser": "8.26.1",
|
|
54
|
+
"@workleap/eslint-plugin": "3.3.0",
|
|
55
55
|
"@workleap/rslib-configs": "1.0.2",
|
|
56
56
|
"@workleap/swc-configs": "2.2.4",
|
|
57
57
|
"@workleap/typescript-configs": "3.0.2",
|
|
58
58
|
"eslint": "8.57.0",
|
|
59
59
|
"jest": "29.7.0",
|
|
60
60
|
"jest-environment-jsdom": "29.7.0",
|
|
61
|
-
"msw": "2.7.
|
|
61
|
+
"msw": "2.7.3",
|
|
62
62
|
"react": "19.0.0",
|
|
63
63
|
"react-dom": "19.0.0",
|
|
64
|
-
"react-router
|
|
64
|
+
"react-router": "7.3.0",
|
|
65
65
|
"ts-node": "10.9.2",
|
|
66
66
|
"typescript": "5.5.4"
|
|
67
67
|
},
|
package/src/AppRouter.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useLogger } from "@squide/core";
|
|
2
2
|
import { useRoutes, type Route } from "@squide/react-router";
|
|
3
3
|
import { useEffect, useMemo, type ReactElement } from "react";
|
|
4
|
-
import type { RouterProviderProps } from "react-router
|
|
4
|
+
import type { RouterProviderProps } from "react-router/dom";
|
|
5
5
|
import { AppRouterDispatcherContext, AppRouterStateContext } from "./AppRouterContext.ts";
|
|
6
6
|
import { useAppRouterReducer } from "./AppRouterReducer.ts";
|
|
7
7
|
import { RootRoute } from "./RootRoute.tsx";
|
package/src/RootRoute.tsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
|
-
import { Outlet } from "react-router
|
|
2
|
+
import { Outlet } from "react-router";
|
|
3
3
|
import { useAppRouterDispatcher, useAppRouterState } from "./AppRouterContext.ts";
|
|
4
4
|
import { useIsActiveRouteProtected } from "./useIsActiveRouteProtected.ts";
|
|
5
5
|
|
package/src/boostrap.ts
CHANGED
|
@@ -5,8 +5,6 @@ import type { FireflyRuntime } from "./FireflyRuntime.tsx";
|
|
|
5
5
|
|
|
6
6
|
export const ApplicationBootstrappingStartedEvent = "squide-app-bootstrapping-started";
|
|
7
7
|
|
|
8
|
-
let isBootstrapped = false;
|
|
9
|
-
|
|
10
8
|
export type StartMswFunction<TRuntime = FireflyRuntime> = (runtime: TRuntime) => Promise<void>;
|
|
11
9
|
|
|
12
10
|
export interface BootstrapAppOptions<TRuntime extends FireflyRuntime = FireflyRuntime, TContext = unknown, TData = unknown> extends RegisterModulesOptions<TContext> {
|
|
@@ -15,6 +13,8 @@ export interface BootstrapAppOptions<TRuntime extends FireflyRuntime = FireflyRu
|
|
|
15
13
|
startMsw?: StartMswFunction<TRuntime>;
|
|
16
14
|
}
|
|
17
15
|
|
|
16
|
+
let hasExecuted = false;
|
|
17
|
+
|
|
18
18
|
export async function bootstrap<TRuntime extends FireflyRuntime = FireflyRuntime, TContext = unknown, TData = unknown>(runtime: TRuntime, options: BootstrapAppOptions<TRuntime, TContext, TData> = {}) {
|
|
19
19
|
const {
|
|
20
20
|
localModules = [],
|
|
@@ -23,10 +23,12 @@ export async function bootstrap<TRuntime extends FireflyRuntime = FireflyRuntime
|
|
|
23
23
|
startMsw
|
|
24
24
|
} = options;
|
|
25
25
|
|
|
26
|
-
if (
|
|
26
|
+
if (hasExecuted) {
|
|
27
27
|
throw new Error("[squide] A squide application can only be bootstrapped once. Did you call the \"bootstrap\" function twice?");
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
hasExecuted = true;
|
|
31
|
+
|
|
30
32
|
runtime.eventBus.dispatch(ApplicationBootstrappingStartedEvent);
|
|
31
33
|
|
|
32
34
|
let localModuleErrors: ModuleRegistrationError[] = [];
|
|
@@ -49,14 +51,12 @@ export async function bootstrap<TRuntime extends FireflyRuntime = FireflyRuntime
|
|
|
49
51
|
}
|
|
50
52
|
}
|
|
51
53
|
|
|
52
|
-
isBootstrapped = true;
|
|
53
|
-
|
|
54
54
|
return {
|
|
55
55
|
localModuleErrors,
|
|
56
56
|
remoteModuleErrors
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
export function
|
|
61
|
-
|
|
60
|
+
export function __resetHasExecuteGuard() {
|
|
61
|
+
hasExecuted = false;
|
|
62
62
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useIsRouteProtected, useRouteMatch } from "@squide/react-router";
|
|
2
|
-
import { useLocation } from "react-router
|
|
2
|
+
import { useLocation } from "react-router";
|
|
3
3
|
|
|
4
4
|
export function useIsActiveRouteProtected(areModulesReady: boolean) {
|
|
5
5
|
// Using this hook instead of window.location to retrieve the current location because it triggers a re-render everytime the browser location change.
|
|
@@ -22,7 +22,7 @@ export function useProtectedDataQueries<T extends Array<any>>(queries: QueriesOp
|
|
|
22
22
|
|
|
23
23
|
const dispatch = useAppRouterDispatcher();
|
|
24
24
|
|
|
25
|
-
const combineResults = useCallback((results: UseQueryResult<unknown,
|
|
25
|
+
const combineResults = useCallback((results: UseQueryResult<unknown, unknown>[]) => {
|
|
26
26
|
const errors = results.filter(x => x.error).map(x => x.error) as Error[];
|
|
27
27
|
const hasErrors = errors.length > 0;
|
|
28
28
|
|
|
@@ -20,7 +20,7 @@ export function usePublicDataQueries<T extends Array<any>>(queries: QueriesOptio
|
|
|
20
20
|
|
|
21
21
|
const dispatch = useAppRouterDispatcher();
|
|
22
22
|
|
|
23
|
-
const combineResults = useCallback((results: UseQueryResult<unknown,
|
|
23
|
+
const combineResults = useCallback((results: UseQueryResult<unknown, unknown>[]) => {
|
|
24
24
|
const errors = results.filter(x => x.error).map(x => x.error) as Error[];
|
|
25
25
|
const hasErrors = errors.length > 0;
|
|
26
26
|
|