@servicetitan/web-components 30.3.0 → 31.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/dist/__mocks__/test-component.d.ts.map +1 -1
- package/dist/common.js +17 -13
- package/dist/common.js.map +1 -1
- package/dist/contexts/index.js +1 -0
- package/dist/contexts/index.js.map +1 -1
- package/dist/contexts/mfe-data-context.js +2 -2
- package/dist/contexts/mfe-data-context.js.map +1 -1
- package/dist/contexts/mfe-metadata-context.js +1 -0
- package/dist/contexts/mfe-metadata-context.js.map +1 -1
- package/dist/delayed.js +8 -5
- package/dist/delayed.js.map +1 -1
- package/dist/event-bus.js +79 -96
- package/dist/event-bus.js.map +1 -1
- package/dist/get-value-for-environment.js +9 -4
- package/dist/get-value-for-environment.js.map +1 -1
- package/dist/globals.js +7 -7
- package/dist/globals.js.map +1 -1
- package/dist/history-manager.js +59 -69
- package/dist/history-manager.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/loader.js +92 -49
- package/dist/loader.js.map +1 -1
- package/dist/register.js +182 -218
- package/dist/register.js.map +1 -1
- package/dist/render.js +11 -12
- package/dist/render.js.map +1 -1
- package/dist/types.js +2 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/get-bundle-info.js +18 -16
- package/dist/utils/get-bundle-info.js.map +1 -1
- package/dist/utils/get-element-name.js +1 -0
- package/dist/utils/get-element-name.js.map +1 -1
- package/dist/utils/get-entry-points.js +11 -4
- package/dist/utils/get-entry-points.js.map +1 -1
- package/dist/utils/get-ld-service-token.js +3 -3
- package/dist/utils/get-ld-service-token.js.map +1 -1
- package/dist/utils/get-mfe-has-compatible-launchdarkly-version.js +4 -4
- package/dist/utils/get-mfe-has-compatible-launchdarkly-version.js.map +1 -1
- package/dist/utils/get-mfe-has-unique-chunk-namespace.js +1 -0
- package/dist/utils/get-mfe-has-unique-chunk-namespace.js.map +1 -1
- package/dist/utils/get-mfe-supports-rerendering.js +4 -4
- package/dist/utils/get-mfe-supports-rerendering.js.map +1 -1
- package/dist/utils/get-version-mismatches.js +18 -11
- package/dist/utils/get-version-mismatches.js.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/is-compatible.js +1 -0
- package/dist/utils/is-compatible.js.map +1 -1
- package/dist/utils/is-versioned-url.js +2 -1
- package/dist/utils/is-versioned-url.js.map +1 -1
- package/dist/utils/load-scripts.js +7 -6
- package/dist/utils/load-scripts.js.map +1 -1
- package/dist/utils/ttl-cache.js +26 -27
- package/dist/utils/ttl-cache.js.map +1 -1
- package/dist/utils/validate-bundle-info.js +13 -10
- package/dist/utils/validate-bundle-info.js.map +1 -1
- package/dist/utils/web-component.js +46 -22
- package/dist/utils/web-component.js.map +1 -1
- package/package.json +11 -11
- package/src/__mocks__/test-component.tsx +2 -0
- package/src/__tests__/event-bus.test.ts +1 -0
- package/src/__tests__/loader.test.tsx +3 -3
- package/src/event-bus.ts +1 -0
- package/dist/__mocks__/expect-styles-in-dom.js +0 -9
- package/dist/__mocks__/expect-styles-in-dom.js.map +0 -1
- package/dist/__mocks__/index.js +0 -4
- package/dist/__mocks__/index.js.map +0 -1
- package/dist/__mocks__/register-component.js +0 -14
- package/dist/__mocks__/register-component.js.map +0 -1
- package/dist/__mocks__/test-component.js +0 -15
- package/dist/__mocks__/test-component.js.map +0 -1
- package/dist/contexts/tests/mfe-data-context.test.js +0 -24
- package/dist/contexts/tests/mfe-data-context.test.js.map +0 -1
- package/dist/contexts/tests/mfe-metadata-context.test.js +0 -26
- package/dist/contexts/tests/mfe-metadata-context.test.js.map +0 -1
package/dist/history-manager.js
CHANGED
|
@@ -1,85 +1,75 @@
|
|
|
1
|
-
|
|
1
|
+
function _define_property(obj, key, value) {
|
|
2
|
+
if (key in obj) {
|
|
3
|
+
Object.defineProperty(obj, key, {
|
|
4
|
+
value: value,
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true
|
|
8
|
+
});
|
|
9
|
+
} else {
|
|
10
|
+
obj[key] = value;
|
|
11
|
+
}
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
14
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
2
15
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
16
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for
|
|
17
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
18
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
}
|
|
19
|
+
}
|
|
7
20
|
import { injectable } from '@servicetitan/react-ioc';
|
|
8
|
-
|
|
9
|
-
constructor()
|
|
21
|
+
export class HistoryManager {
|
|
22
|
+
constructor(){
|
|
10
23
|
// Initiator of action, used for filtering redirections
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
this.storage.set(addable, addable.listen(location => {
|
|
29
|
-
const path = addable.createHref(location);
|
|
30
|
-
const state = location.state;
|
|
31
|
-
if (!this.occupied) {
|
|
32
|
-
this.occupied = { history: addable, location };
|
|
33
|
-
}
|
|
34
|
-
else if (this.occupied.history === addable) {
|
|
35
|
-
this.occupied.location = location;
|
|
24
|
+
_define_property(this, "occupied", void 0);
|
|
25
|
+
_define_property(this, "storage", new Map());
|
|
26
|
+
_define_property(this, "register", (addable)=>{
|
|
27
|
+
this.storage.set(addable, addable.listen((location)=>{
|
|
28
|
+
const path = addable.createHref(location);
|
|
29
|
+
const state = location.state;
|
|
30
|
+
if (!this.occupied) {
|
|
31
|
+
this.occupied = {
|
|
32
|
+
history: addable,
|
|
33
|
+
location
|
|
34
|
+
};
|
|
35
|
+
} else if (this.occupied.history === addable) {
|
|
36
|
+
this.occupied.location = location;
|
|
37
|
+
}
|
|
38
|
+
for (const history of this.storage.keys()){
|
|
39
|
+
if (history === addable) {
|
|
40
|
+
continue;
|
|
36
41
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
continue;
|
|
40
|
-
}
|
|
41
|
-
if (history.createHref(history.location) === path &&
|
|
42
|
-
history.location.state === state) {
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
// Allow redirects only to the deeper pages
|
|
46
|
-
const unblock = history.block(location => {
|
|
47
|
-
if (this.occupied &&
|
|
48
|
-
!history
|
|
49
|
-
.createHref(location)
|
|
50
|
-
.startsWith(this.occupied.history.createHref(this.occupied.location))) {
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
history.replace(path, state);
|
|
55
|
-
unblock();
|
|
42
|
+
if (history.createHref(history.location) === path && history.location.state === state) {
|
|
43
|
+
continue;
|
|
56
44
|
}
|
|
57
|
-
//
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
((_b = this.occupied) === null || _b === void 0 ? void 0 : _b.location) === location) {
|
|
62
|
-
this.occupied = undefined;
|
|
45
|
+
// Allow redirects only to the deeper pages
|
|
46
|
+
const unblock = history.block((location)=>{
|
|
47
|
+
if (this.occupied && !history.createHref(location).startsWith(this.occupied.history.createHref(this.occupied.location))) {
|
|
48
|
+
return false;
|
|
63
49
|
}
|
|
64
50
|
});
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
});
|
|
68
|
-
Object.defineProperty(this, "unregister", {
|
|
69
|
-
enumerable: true,
|
|
70
|
-
configurable: true,
|
|
71
|
-
writable: true,
|
|
72
|
-
value: (removable) => {
|
|
73
|
-
if (this.storage.has(removable)) {
|
|
74
|
-
this.storage.get(removable)();
|
|
75
|
-
this.storage.delete(removable);
|
|
51
|
+
history.replace(path, state);
|
|
52
|
+
unblock();
|
|
76
53
|
}
|
|
54
|
+
// Wait for all updates, including redirections
|
|
55
|
+
setTimeout(()=>{
|
|
56
|
+
var _this_occupied, _this_occupied1;
|
|
57
|
+
if (((_this_occupied = this.occupied) === null || _this_occupied === void 0 ? void 0 : _this_occupied.history) === addable && ((_this_occupied1 = this.occupied) === null || _this_occupied1 === void 0 ? void 0 : _this_occupied1.location) === location) {
|
|
58
|
+
this.occupied = undefined;
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}));
|
|
62
|
+
});
|
|
63
|
+
_define_property(this, "unregister", (removable)=>{
|
|
64
|
+
if (this.storage.has(removable)) {
|
|
65
|
+
this.storage.get(removable)();
|
|
66
|
+
this.storage.delete(removable);
|
|
77
67
|
}
|
|
78
68
|
});
|
|
79
69
|
}
|
|
80
|
-
}
|
|
81
|
-
HistoryManager =
|
|
70
|
+
}
|
|
71
|
+
HistoryManager = _ts_decorate([
|
|
82
72
|
injectable()
|
|
83
73
|
], HistoryManager);
|
|
84
|
-
|
|
74
|
+
|
|
85
75
|
//# sourceMappingURL=history-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/history-manager.ts"],"sourcesContent":["import { History, Location, UnregisterCallback } from 'history';\n\nimport { injectable } from '@servicetitan/react-ioc';\n\n@injectable()\nexport class HistoryManager {\n // Initiator of action, used for filtering redirections\n occupied?: { history: History; location: Location };\n\n storage = new Map<History, UnregisterCallback>();\n\n register = (addable: History) => {\n this.storage.set(\n addable,\n addable.listen(location => {\n const path = addable.createHref(location);\n const state = location.state;\n\n if (!this.occupied) {\n this.occupied = { history: addable, location };\n } else if (this.occupied.history === addable) {\n this.occupied.location = location;\n }\n\n for (const history of this.storage.keys()) {\n if (history === addable) {\n continue;\n }\n\n if (\n history.createHref(history.location) === path &&\n history.location.state === state\n ) {\n continue;\n }\n\n // Allow redirects only to the deeper pages\n const unblock = history.block(location => {\n if (\n this.occupied &&\n !history\n .createHref(location)\n .startsWith(\n this.occupied.history.createHref(this.occupied.location)\n )\n ) {\n return false;\n }\n });\n\n history.replace(path, state);\n\n unblock();\n }\n\n // Wait for all updates, including redirections\n setTimeout(() => {\n if (\n this.occupied?.history === addable &&\n this.occupied?.location === location\n ) {\n this.occupied = undefined;\n }\n });\n })\n );\n };\n\n unregister = (removable: History) => {\n if (this.storage.has(removable)) {\n this.storage.get(removable)!();\n this.storage.delete(removable);\n }\n };\n}\n"],"names":["injectable","HistoryManager","occupied","storage","Map","register","addable","set","listen","location","path","createHref","state","history","keys","unblock","block","startsWith","replace","setTimeout","undefined","unregister","removable","has","get","delete"],"mappings":";;;;;;;;;;;;;;;;;;;AAEA,SAASA,UAAU,QAAQ,0BAA0B;AAGrD,OAAO,MAAMC;;QACT,uDAAuD;QACvDC,uBAAAA,YAAAA,KAAAA;QAEAC,uBAAAA,WAAU,IAAIC;QAEdC,uBAAAA,YAAW,CAACC;YACR,IAAI,CAACH,OAAO,CAACI,GAAG,CACZD,SACAA,QAAQE,MAAM,CAACC,CAAAA;gBACX,MAAMC,OAAOJ,QAAQK,UAAU,CAACF;gBAChC,MAAMG,QAAQH,SAASG,KAAK;gBAE5B,IAAI,CAAC,IAAI,CAACV,QAAQ,EAAE;oBAChB,IAAI,CAACA,QAAQ,GAAG;wBAAEW,SAASP;wBAASG;oBAAS;gBACjD,OAAO,IAAI,IAAI,CAACP,QAAQ,CAACW,OAAO,KAAKP,SAAS;oBAC1C,IAAI,CAACJ,QAAQ,CAACO,QAAQ,GAAGA;gBAC7B;gBAEA,KAAK,MAAMI,WAAW,IAAI,CAACV,OAAO,CAACW,IAAI,GAAI;oBACvC,IAAID,YAAYP,SAAS;wBACrB;oBACJ;oBAEA,IACIO,QAAQF,UAAU,CAACE,QAAQJ,QAAQ,MAAMC,QACzCG,QAAQJ,QAAQ,CAACG,KAAK,KAAKA,OAC7B;wBACE;oBACJ;oBAEA,2CAA2C;oBAC3C,MAAMG,UAAUF,QAAQG,KAAK,CAACP,CAAAA;wBAC1B,IACI,IAAI,CAACP,QAAQ,IACb,CAACW,QACIF,UAAU,CAACF,UACXQ,UAAU,CACP,IAAI,CAACf,QAAQ,CAACW,OAAO,CAACF,UAAU,CAAC,IAAI,CAACT,QAAQ,CAACO,QAAQ,IAEjE;4BACE,OAAO;wBACX;oBACJ;oBAEAI,QAAQK,OAAO,CAACR,MAAME;oBAEtBG;gBACJ;gBAEA,+CAA+C;gBAC/CI,WAAW;wBAEH,gBACA;oBAFJ,IACI,EAAA,iBAAA,IAAI,CAACjB,QAAQ,cAAb,qCAAA,eAAeW,OAAO,MAAKP,WAC3B,EAAA,kBAAA,IAAI,CAACJ,QAAQ,cAAb,sCAAA,gBAAeO,QAAQ,MAAKA,UAC9B;wBACE,IAAI,CAACP,QAAQ,GAAGkB;oBACpB;gBACJ;YACJ;QAER;QAEAC,uBAAAA,cAAa,CAACC;YACV,IAAI,IAAI,CAACnB,OAAO,CAACoB,GAAG,CAACD,YAAY;gBAC7B,IAAI,CAACnB,OAAO,CAACqB,GAAG,CAACF;gBACjB,IAAI,CAACnB,OAAO,CAACsB,MAAM,CAACH;YACxB;QACJ;;AACJ"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './common';\nexport * from './contexts';\nexport * from './event-bus';\nexport * from './get-value-for-environment';\nexport * from './history-manager';\nexport * from './loader';\nexport * from './register';\n\nexport type { JSON, JSONPrimitive, Serializable } from './types';\n"],"names":[],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,aAAa;AAC3B,cAAc,cAAc;AAC5B,cAAc,8BAA8B;AAC5C,cAAc,oBAAoB;AAClC,cAAc,WAAW;AACzB,cAAc,aAAa"}
|
package/dist/loader.js
CHANGED
|
@@ -1,44 +1,56 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import { Suspense, forwardRef, lazy, useEffect, useImperativeHandle, useMemo, useRef
|
|
2
|
+
import { Suspense, forwardRef, lazy, useEffect, useImperativeHandle, useMemo, useRef } from 'react';
|
|
3
3
|
import { ErrorBoundary } from '@servicetitan/error-boundary';
|
|
4
4
|
import { Log } from '@servicetitan/log-service';
|
|
5
5
|
import { useOptionalDependencies } from '@servicetitan/react-ioc';
|
|
6
|
-
import { EXPOSED_DEPENDENCIES_TOKEN, EXPOSED_INSTANCE_DEPENDENCIES_TOKEN, useCancelation
|
|
6
|
+
import { EXPOSED_DEPENDENCIES_TOKEN, EXPOSED_INSTANCE_DEPENDENCIES_TOKEN, useCancelation } from './common';
|
|
7
7
|
import { Delayed } from './delayed';
|
|
8
8
|
import { EventBus, EVENT_BUS_TOKEN } from './event-bus';
|
|
9
9
|
import { EXPOSED_DEPENDENCIES, EXPOSED_INSTANCE_DEPENDENCIES } from './globals';
|
|
10
|
-
import { TtlCache, getBundleInfo, getLDServiceToken, validateBundleInfo, loadScripts, webComponent
|
|
11
|
-
export const Loader = forwardRef((props, ref)
|
|
12
|
-
var _a, _b;
|
|
10
|
+
import { TtlCache, getBundleInfo, getLDServiceToken, validateBundleInfo, loadScripts, webComponent } from './utils';
|
|
11
|
+
export const Loader = /*#__PURE__*/ forwardRef((props, ref)=>{
|
|
13
12
|
const { cache = true, basename, fallbackSrc, onRequestError, retries, src } = props;
|
|
14
13
|
const { loadingFallback, loadingFallbackDelayed = true } = props;
|
|
15
14
|
const bus = useEventBus();
|
|
16
15
|
const [logService, exposedDependencies = EXPOSED_DEPENDENCIES, eventBus = bus] = useOptionalDependencies(Log, EXPOSED_DEPENDENCIES_TOKEN, EVENT_BUS_TOKEN);
|
|
17
16
|
let [exposedInstanceDependencies = EXPOSED_INSTANCE_DEPENDENCIES] = useOptionalDependencies(EXPOSED_INSTANCE_DEPENDENCIES_TOKEN);
|
|
18
|
-
|
|
17
|
+
var _getLDServiceToken;
|
|
18
|
+
const [ldService] = useOptionalDependencies((_getLDServiceToken = getLDServiceToken()) !== null && _getLDServiceToken !== void 0 ? _getLDServiceToken : Symbol());
|
|
19
19
|
const cancelation = useCancelation();
|
|
20
|
-
const LoadingFallback = useMemo(()
|
|
20
|
+
const LoadingFallback = useMemo(()=>{
|
|
21
21
|
const message = `Loading${isLocalHost(src) ? ` ${src}` : ''}...`;
|
|
22
|
-
return getFallback(loadingFallback, message, {
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
return getFallback(loadingFallback, message, {
|
|
23
|
+
delayed: loadingFallbackDelayed
|
|
24
|
+
});
|
|
25
|
+
}, [
|
|
26
|
+
loadingFallback,
|
|
27
|
+
loadingFallbackDelayed,
|
|
28
|
+
src
|
|
29
|
+
]);
|
|
30
|
+
const ErrorFallback = useMemo(()=>{
|
|
25
31
|
const message = `Something went wrong${isLocalHost(src) ? ` loading ${src}` : ''}`;
|
|
26
32
|
return getFallback(props.errorFallback, message);
|
|
27
|
-
}, [
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
cancelation,
|
|
33
|
-
exposedDependencies,
|
|
33
|
+
}, [
|
|
34
|
+
props.errorFallback,
|
|
35
|
+
src
|
|
36
|
+
]);
|
|
37
|
+
exposedInstanceDependencies = useMemo(()=>ensureLDService(exposedInstanceDependencies, ldService), [
|
|
34
38
|
exposedInstanceDependencies,
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
ldService
|
|
40
|
+
]);
|
|
41
|
+
const Loader = useMemo(()=>lazyLoader({
|
|
42
|
+
basename,
|
|
43
|
+
cache,
|
|
44
|
+
cancelation,
|
|
45
|
+
exposedDependencies,
|
|
46
|
+
exposedInstanceDependencies,
|
|
47
|
+
eventBus,
|
|
48
|
+
fallbackSrc,
|
|
49
|
+
logService,
|
|
50
|
+
onRequestError,
|
|
51
|
+
retries,
|
|
52
|
+
src
|
|
53
|
+
}), [
|
|
42
54
|
basename,
|
|
43
55
|
cache,
|
|
44
56
|
cancelation,
|
|
@@ -49,28 +61,46 @@ export const Loader = forwardRef((props, ref) => {
|
|
|
49
61
|
onRequestError,
|
|
50
62
|
fallbackSrc,
|
|
51
63
|
retries,
|
|
52
|
-
src
|
|
64
|
+
src
|
|
65
|
+
]);
|
|
66
|
+
useImperativeHandle(ref, ()=>eventBus, [
|
|
67
|
+
eventBus
|
|
53
68
|
]);
|
|
54
|
-
|
|
55
|
-
return
|
|
69
|
+
var _props_data;
|
|
70
|
+
return /*#__PURE__*/ _jsx(ErrorBoundary, {
|
|
71
|
+
moduleName: src,
|
|
72
|
+
fallback: ErrorFallback,
|
|
73
|
+
children: /*#__PURE__*/ _jsx(Suspense, {
|
|
74
|
+
fallback: /*#__PURE__*/ _jsx(LoadingFallback, {}),
|
|
75
|
+
children: /*#__PURE__*/ _jsx(Loader, {
|
|
76
|
+
data: (_props_data = props.data) !== null && _props_data !== void 0 ? _props_data : {},
|
|
77
|
+
className: props.className,
|
|
78
|
+
LoadingFallback: LoadingFallback
|
|
79
|
+
})
|
|
80
|
+
})
|
|
81
|
+
});
|
|
56
82
|
});
|
|
57
83
|
function lazyLoader(props) {
|
|
58
84
|
const { cancelation } = props;
|
|
59
85
|
const LazyWebComponent = lazyWebComponent(props);
|
|
60
|
-
return (props)
|
|
61
|
-
useEffect(()
|
|
62
|
-
return ()
|
|
86
|
+
return (props)=>{
|
|
87
|
+
useEffect(()=>{
|
|
88
|
+
return ()=>{
|
|
63
89
|
cancelation.abort();
|
|
64
90
|
};
|
|
65
91
|
}, []);
|
|
66
|
-
return
|
|
92
|
+
return /*#__PURE__*/ _jsx(LazyWebComponent, {
|
|
93
|
+
data: props.data,
|
|
94
|
+
className: props.className,
|
|
95
|
+
LoadingFallback: props.LoadingFallback
|
|
96
|
+
});
|
|
67
97
|
};
|
|
68
98
|
}
|
|
69
99
|
function lazyWebComponent(props) {
|
|
70
|
-
const { basename, cancelation, exposedDependencies, exposedInstanceDependencies, eventBus, fallbackSrc, logService, onRequestError, retries, src
|
|
100
|
+
const { basename, cancelation, exposedDependencies, exposedInstanceDependencies, eventBus, fallbackSrc, logService, onRequestError, retries, src } = props;
|
|
71
101
|
let { cache } = props;
|
|
72
|
-
return lazy(async ()
|
|
73
|
-
var
|
|
102
|
+
return /*#__PURE__*/ lazy(async ()=>{
|
|
103
|
+
var _exposedInstanceDependencies_launchDarkly;
|
|
74
104
|
let bundleInfo = cache ? bundleCache.get(src) : undefined;
|
|
75
105
|
if (!bundleInfo) {
|
|
76
106
|
try {
|
|
@@ -81,13 +111,12 @@ function lazyWebComponent(props) {
|
|
|
81
111
|
exposedInstanceDependencies,
|
|
82
112
|
signal: cancelation.signal,
|
|
83
113
|
retries,
|
|
84
|
-
onRequestError
|
|
114
|
+
onRequestError
|
|
85
115
|
});
|
|
86
|
-
}
|
|
87
|
-
catch (e) {
|
|
116
|
+
} catch (e) {
|
|
88
117
|
if (cancelation.signal.aborted) {
|
|
89
118
|
return {
|
|
90
|
-
default: ()
|
|
119
|
+
default: ()=>null
|
|
91
120
|
};
|
|
92
121
|
}
|
|
93
122
|
throw e;
|
|
@@ -102,13 +131,11 @@ function lazyWebComponent(props) {
|
|
|
102
131
|
exposedDependencies,
|
|
103
132
|
exposedInstanceDependencies,
|
|
104
133
|
logService,
|
|
105
|
-
packageUrl: src
|
|
134
|
+
packageUrl: src
|
|
106
135
|
});
|
|
107
136
|
}
|
|
108
137
|
await loadScripts(bundleInfo);
|
|
109
|
-
const ldService = bundleInfo.mfeHasCompatibleLaunchDarklyVersion
|
|
110
|
-
? (_a = exposedInstanceDependencies === null || exposedInstanceDependencies === void 0 ? void 0 : exposedInstanceDependencies.launchDarkly) === null || _a === void 0 ? void 0 : _a.ldService
|
|
111
|
-
: undefined;
|
|
138
|
+
const ldService = bundleInfo.mfeHasCompatibleLaunchDarklyVersion ? exposedInstanceDependencies === null || exposedInstanceDependencies === void 0 ? void 0 : (_exposedInstanceDependencies_launchDarkly = exposedInstanceDependencies.launchDarkly) === null || _exposedInstanceDependencies_launchDarkly === void 0 ? void 0 : _exposedInstanceDependencies_launchDarkly.ldService : undefined;
|
|
112
139
|
return {
|
|
113
140
|
default: webComponent({
|
|
114
141
|
basename,
|
|
@@ -117,22 +144,35 @@ function lazyWebComponent(props) {
|
|
|
117
144
|
exposedDependencies,
|
|
118
145
|
exposedInstanceDependencies,
|
|
119
146
|
ldService,
|
|
120
|
-
logService
|
|
121
|
-
})
|
|
147
|
+
logService
|
|
148
|
+
})
|
|
122
149
|
};
|
|
123
150
|
});
|
|
124
151
|
}
|
|
125
152
|
function getFallback(node, message, { delayed = false } = {}) {
|
|
126
|
-
const fallbackNode = node !== undefined ? node : _jsx("h2", {
|
|
127
|
-
|
|
153
|
+
const fallbackNode = node !== undefined ? node : /*#__PURE__*/ _jsx("h2", {
|
|
154
|
+
children: message
|
|
155
|
+
});
|
|
156
|
+
return delayed ? ()=>/*#__PURE__*/ _jsx(Delayed, {
|
|
157
|
+
children: fallbackNode
|
|
158
|
+
}) : ()=>fallbackNode;
|
|
128
159
|
}
|
|
129
160
|
function isLocalHost(source) {
|
|
130
|
-
return [
|
|
161
|
+
return [
|
|
162
|
+
'localhost',
|
|
163
|
+
'127.0.0.1'
|
|
164
|
+
].some((host)=>source.indexOf(host) >= 0);
|
|
131
165
|
}
|
|
132
166
|
function ensureLDService(exposedInstanceDependencies, ldService) {
|
|
133
167
|
const launchDarkly = exposedInstanceDependencies === null || exposedInstanceDependencies === void 0 ? void 0 : exposedInstanceDependencies.launchDarkly;
|
|
134
168
|
if ((launchDarkly === null || launchDarkly === void 0 ? void 0 : launchDarkly.version) && !launchDarkly.ldService && ldService) {
|
|
135
|
-
return {
|
|
169
|
+
return {
|
|
170
|
+
...exposedInstanceDependencies,
|
|
171
|
+
launchDarkly: {
|
|
172
|
+
...launchDarkly,
|
|
173
|
+
ldService
|
|
174
|
+
}
|
|
175
|
+
};
|
|
136
176
|
}
|
|
137
177
|
return exposedInstanceDependencies;
|
|
138
178
|
}
|
|
@@ -140,5 +180,8 @@ function useEventBus() {
|
|
|
140
180
|
return useRef(new EventBus()).current;
|
|
141
181
|
}
|
|
142
182
|
const MINUTE = 1000 * 60;
|
|
143
|
-
const bundleCache = new TtlCache({
|
|
183
|
+
const bundleCache = new TtlCache({
|
|
184
|
+
ttlMs: 15 * MINUTE
|
|
185
|
+
});
|
|
186
|
+
|
|
144
187
|
//# sourceMappingURL=loader.js.map
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/loader.tsx"],"sourcesContent":["import {\n ReactElement,\n ReactNode,\n Suspense,\n forwardRef,\n lazy,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n} from 'react';\nimport { ErrorBoundary } from '@servicetitan/error-boundary';\nimport { type LDService } from '@servicetitan/launchdarkly-service';\nimport { Log } from '@servicetitan/log-service';\nimport { useOptionalDependencies } from '@servicetitan/react-ioc';\n\nimport {\n EXPOSED_DEPENDENCIES_TOKEN,\n EXPOSED_INSTANCE_DEPENDENCIES_TOKEN,\n ExposedDependencies,\n ExposedInstanceDependencies,\n GetJsonError,\n useCancelation,\n} from './common';\nimport { MFEContextData } from './contexts/mfe-data-context';\nimport { Delayed } from './delayed';\nimport { EventBus, EVENT_BUS_TOKEN } from './event-bus';\nimport { EXPOSED_DEPENDENCIES, EXPOSED_INSTANCE_DEPENDENCIES } from './globals';\nimport {\n BundleInfo,\n TtlCache,\n getBundleInfo,\n getLDServiceToken,\n validateBundleInfo,\n loadScripts,\n webComponent,\n} from './utils';\n\nexport type LoaderRef = EventBus;\n\nexport type FallbackNode = NonNullable<ReactNode> | null;\n\nexport interface LoaderProps<T> {\n src: string;\n fallbackSrc?: string;\n /** Values in the object will be stringified and then parsed before being delivered to the MFE via props or context. */\n data?: MFEContextData<T>;\n basename?: string;\n loadingFallback?: FallbackNode;\n loadingFallbackDelayed?: boolean;\n errorFallback?: FallbackNode;\n className?: string;\n retries?: number;\n cache?: boolean | number;\n onRequestError?(error: GetJsonError): boolean;\n}\n\nexport type LoaderDataProps = Pick<LoaderProps<{}>, 'data' | 'className'> & {\n LoadingFallback: () => JSX.Element;\n};\n\nexport const Loader = forwardRef<LoaderRef, LoaderProps<{}>>((props, ref) => {\n const { cache = true, basename, fallbackSrc, onRequestError, retries, src } = props;\n const { loadingFallback, loadingFallbackDelayed = true } = props;\n\n const bus = useEventBus();\n const [logService, exposedDependencies = EXPOSED_DEPENDENCIES, eventBus = bus] =\n useOptionalDependencies(Log, EXPOSED_DEPENDENCIES_TOKEN, EVENT_BUS_TOKEN);\n let [exposedInstanceDependencies = EXPOSED_INSTANCE_DEPENDENCIES] = useOptionalDependencies(\n EXPOSED_INSTANCE_DEPENDENCIES_TOKEN\n );\n const [ldService] = useOptionalDependencies(getLDServiceToken() ?? Symbol());\n const cancelation = useCancelation();\n\n const LoadingFallback = useMemo(() => {\n const message = `Loading${isLocalHost(src) ? ` ${src}` : ''}...`;\n return getFallback(loadingFallback, message, { delayed: loadingFallbackDelayed });\n }, [loadingFallback, loadingFallbackDelayed, src]);\n\n const ErrorFallback = useMemo(() => {\n const message = `Something went wrong${isLocalHost(src) ? ` loading ${src}` : ''}`;\n return getFallback(props.errorFallback, message);\n }, [props.errorFallback, src]);\n\n exposedInstanceDependencies = useMemo(\n () => ensureLDService(exposedInstanceDependencies, ldService),\n [exposedInstanceDependencies, ldService]\n );\n\n const Loader = useMemo(\n () =>\n lazyLoader({\n basename,\n cache,\n cancelation,\n exposedDependencies,\n exposedInstanceDependencies,\n eventBus,\n fallbackSrc,\n logService,\n onRequestError,\n retries,\n src,\n }),\n [\n basename,\n cache,\n cancelation,\n exposedDependencies,\n exposedInstanceDependencies,\n eventBus,\n logService,\n onRequestError,\n fallbackSrc,\n retries,\n src,\n ]\n );\n\n useImperativeHandle(ref, () => eventBus, [eventBus]);\n\n return (\n <ErrorBoundary moduleName={src} fallback={ErrorFallback}>\n <Suspense fallback={<LoadingFallback />}>\n <Loader\n data={props.data ?? {}}\n className={props.className}\n LoadingFallback={LoadingFallback}\n />\n </Suspense>\n </ErrorBoundary>\n );\n});\n\ntype LazyLoaderProps = LoaderProps<any> & {\n cancelation: AbortController;\n exposedDependencies?: ExposedDependencies;\n exposedInstanceDependencies?: ExposedInstanceDependencies;\n eventBus: EventBus;\n logService?: Log;\n};\n\nfunction lazyLoader(props: LazyLoaderProps) {\n const { cancelation } = props;\n\n const LazyWebComponent = lazyWebComponent(props);\n\n return (props: LoaderDataProps) => {\n useEffect(() => {\n return () => {\n cancelation.abort();\n };\n }, []);\n\n return (\n <LazyWebComponent\n data={props.data}\n className={props.className}\n LoadingFallback={props.LoadingFallback}\n />\n );\n };\n}\n\nfunction lazyWebComponent(props: LazyLoaderProps) {\n const {\n basename,\n cancelation,\n exposedDependencies,\n exposedInstanceDependencies,\n eventBus,\n fallbackSrc,\n logService,\n onRequestError,\n retries,\n src,\n } = props;\n\n let { cache } = props;\n\n return lazy<(_: LoaderDataProps) => JSX.Element | null>(async () => {\n let bundleInfo: BundleInfo | undefined = cache ? bundleCache.get(src) : undefined;\n if (!bundleInfo) {\n try {\n bundleInfo = await getBundleInfo({\n mainPackageUrl: src,\n fallbackPackageUrl: fallbackSrc,\n exposedDependencies,\n exposedInstanceDependencies,\n signal: cancelation.signal,\n retries,\n onRequestError,\n });\n } catch (e) {\n if (cancelation.signal.aborted) {\n return {\n default: () => null,\n };\n }\n\n throw e;\n }\n\n if (cache === true && !bundleInfo.mfeHasUniqueChunkNamespace) {\n cache = -1;\n }\n\n if (cache) {\n bundleCache.set(src, bundleInfo, typeof cache === 'number' ? cache : undefined);\n }\n\n validateBundleInfo(bundleInfo, {\n exposedDependencies,\n exposedInstanceDependencies,\n logService,\n packageUrl: src,\n });\n }\n\n await loadScripts(bundleInfo);\n\n const ldService = bundleInfo.mfeHasCompatibleLaunchDarklyVersion\n ? exposedInstanceDependencies?.launchDarkly?.ldService\n : undefined;\n\n return {\n default: webComponent({\n basename,\n bundleInfo,\n eventBus,\n exposedDependencies,\n exposedInstanceDependencies,\n ldService,\n logService,\n }),\n };\n });\n}\n\nfunction getFallback(\n node: FallbackNode | undefined,\n message: string,\n { delayed = false }: { delayed?: boolean } = {}\n) {\n const fallbackNode = node !== undefined ? (node as ReactElement) : <h2>{message}</h2>;\n return delayed ? () => <Delayed>{fallbackNode}</Delayed> : () => fallbackNode;\n}\n\nfunction isLocalHost(source: string) {\n return ['localhost', '127.0.0.1'].some(host => source.indexOf(host) >= 0);\n}\n\nfunction ensureLDService(\n exposedInstanceDependencies?: ExposedInstanceDependencies,\n ldService?: LDService\n) {\n const launchDarkly = exposedInstanceDependencies?.launchDarkly;\n if (launchDarkly?.version && !launchDarkly.ldService && ldService) {\n return { ...exposedInstanceDependencies, launchDarkly: { ...launchDarkly, ldService } };\n }\n return exposedInstanceDependencies;\n}\n\nfunction useEventBus() {\n return useRef(new EventBus()).current;\n}\n\nconst MINUTE = 1000 * 60;\nconst bundleCache = new TtlCache<BundleInfo>({ ttlMs: 15 * MINUTE });\n"],"names":["Suspense","forwardRef","lazy","useEffect","useImperativeHandle","useMemo","useRef","ErrorBoundary","Log","useOptionalDependencies","EXPOSED_DEPENDENCIES_TOKEN","EXPOSED_INSTANCE_DEPENDENCIES_TOKEN","useCancelation","Delayed","EventBus","EVENT_BUS_TOKEN","EXPOSED_DEPENDENCIES","EXPOSED_INSTANCE_DEPENDENCIES","TtlCache","getBundleInfo","getLDServiceToken","validateBundleInfo","loadScripts","webComponent","Loader","props","ref","cache","basename","fallbackSrc","onRequestError","retries","src","loadingFallback","loadingFallbackDelayed","bus","useEventBus","logService","exposedDependencies","eventBus","exposedInstanceDependencies","ldService","Symbol","cancelation","LoadingFallback","message","isLocalHost","getFallback","delayed","ErrorFallback","errorFallback","ensureLDService","lazyLoader","moduleName","fallback","data","className","LazyWebComponent","lazyWebComponent","abort","bundleInfo","bundleCache","get","undefined","mainPackageUrl","fallbackPackageUrl","signal","e","aborted","default","mfeHasUniqueChunkNamespace","set","packageUrl","mfeHasCompatibleLaunchDarklyVersion","launchDarkly","node","fallbackNode","h2","source","some","host","indexOf","version","current","MINUTE","ttlMs"],"mappings":"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"}
|