@servicetitan/web-components 12.8.8-patch.2 → 12.8.11
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/common.d.ts +10 -0
- package/dist/common.d.ts.map +1 -1
- package/dist/common.js +56 -1
- package/dist/common.js.map +1 -1
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +23 -28
- package/dist/loader.js.map +1 -1
- package/package.json +5 -5
- package/src/common.ts +49 -0
- package/src/loader.tsx +29 -30
- package/src/register.tsx +1 -1
package/dist/common.d.ts
CHANGED
|
@@ -10,6 +10,15 @@ export interface IWebComponent {
|
|
|
10
10
|
provide(entries: Entries): void;
|
|
11
11
|
}
|
|
12
12
|
export declare function isCompatible(hostVersion: string, packageVersion: string): boolean;
|
|
13
|
+
interface GetJsonOptions extends RequestInit {
|
|
14
|
+
retries?: number;
|
|
15
|
+
retryDelay?: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function getJson<T = any>(url: string, { retries, retryDelay, ...config }?: GetJsonOptions): Promise<{
|
|
18
|
+
data: T;
|
|
19
|
+
headers: Headers;
|
|
20
|
+
}>;
|
|
21
|
+
export declare function useCancelation(): AbortController;
|
|
13
22
|
export declare type EventHandler = () => void;
|
|
14
23
|
export declare class EventBus {
|
|
15
24
|
private emitter;
|
|
@@ -18,4 +27,5 @@ export declare class EventBus {
|
|
|
18
27
|
emit: (type: string) => void;
|
|
19
28
|
}
|
|
20
29
|
export declare function useEventBus(): EventBus;
|
|
30
|
+
export {};
|
|
21
31
|
//# sourceMappingURL=common.d.ts.map
|
package/dist/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAEhD,eAAO,MAAM,cAAc,uDAAwC,CAAC;AAEpE,MAAM,WAAW,OAAO;IACpB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACnC;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAkCvE;AAED,oBAAY,YAAY,GAAG,MAAM,IAAI,CAAC;AAEtC,qBAAa,QAAQ;IACjB,OAAO,CAAC,OAAO,CAAU;IAEzB,EAAE,SAAU,MAAM,WAAW,YAAY,UAEvC;IAEF,GAAG,SAAU,MAAM,WAAW,YAAY,UAExC;IAEF,IAAI,SAAU,MAAM,UAElB;CACL;AAED,wBAAgB,WAAW,aAE1B"}
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAEhD,eAAO,MAAM,cAAc,uDAAwC,CAAC;AAEpE,MAAM,WAAW,OAAO;IACpB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACnC;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAkCvE;AAED,UAAU,cAAe,SAAQ,WAAW;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,OAAO,CAAC,CAAC,GAAG,GAAG,EACjC,GAAG,EAAE,MAAM,EACX,EAAE,OAAW,EAAE,UAAiB,EAAE,GAAG,MAAM,EAAE,GAAE,cAAmB,GACnE,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAmCxC;AAED,wBAAgB,cAAc,oBAE7B;AAED,oBAAY,YAAY,GAAG,MAAM,IAAI,CAAC;AAEtC,qBAAa,QAAQ;IACjB,OAAO,CAAC,OAAO,CAAU;IAEzB,EAAE,SAAU,MAAM,WAAW,YAAY,UAEvC;IAEF,GAAG,SAAU,MAAM,WAAW,YAAY,UAExC;IAEF,IAAI,SAAU,MAAM,UAElB;CACL;AAED,wBAAgB,WAAW,aAE1B"}
|
package/dist/common.js
CHANGED
|
@@ -1,9 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
12
|
+
var t = {};
|
|
13
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
14
|
+
t[p] = s[p];
|
|
15
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
16
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
17
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
18
|
+
t[p[i]] = s[p[i]];
|
|
19
|
+
}
|
|
20
|
+
return t;
|
|
21
|
+
};
|
|
2
22
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
23
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
24
|
};
|
|
5
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.useEventBus = exports.EventBus = exports.isCompatible = exports.BASENAME_TOKEN = void 0;
|
|
26
|
+
exports.useEventBus = exports.EventBus = exports.useCancelation = exports.getJson = exports.isCompatible = exports.BASENAME_TOKEN = void 0;
|
|
7
27
|
const semver_1 = __importDefault(require("semver"));
|
|
8
28
|
const mitt_1 = __importDefault(require("mitt"));
|
|
9
29
|
const react_1 = require("react");
|
|
@@ -38,6 +58,41 @@ function isCompatible(hostVersion, packageVersion) {
|
|
|
38
58
|
return false;
|
|
39
59
|
}
|
|
40
60
|
exports.isCompatible = isCompatible;
|
|
61
|
+
function getJson(url, _a = {}) {
|
|
62
|
+
var { retries = 5, retryDelay = 1000 } = _a, config = __rest(_a, ["retries", "retryDelay"]);
|
|
63
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
64
|
+
let response;
|
|
65
|
+
try {
|
|
66
|
+
response = yield fetch(url, config);
|
|
67
|
+
}
|
|
68
|
+
catch (_b) {
|
|
69
|
+
if (retries > 0) {
|
|
70
|
+
return new Promise((resolve, reject) => {
|
|
71
|
+
const { signal } = config;
|
|
72
|
+
const timeoutId = window.setTimeout(() => {
|
|
73
|
+
getJson(url, Object.assign(Object.assign({}, config), { retries: retries - 1, retryDelay: retryDelay * 4 })).then(resolve, reject);
|
|
74
|
+
}, retryDelay);
|
|
75
|
+
signal === null || signal === void 0 ? void 0 : signal.addEventListener('abort', () => window.clearTimeout(timeoutId));
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
throw new Error(`Failed to fetch: "${url}".`);
|
|
79
|
+
}
|
|
80
|
+
if (!response.ok) {
|
|
81
|
+
let message = `Requesting "${url}" failed with status code ${response.status}.`;
|
|
82
|
+
try {
|
|
83
|
+
message += ` Details: ${yield response.text()}.`;
|
|
84
|
+
}
|
|
85
|
+
catch (_c) { } // eslint-disable-line no-empty
|
|
86
|
+
throw new Error(message);
|
|
87
|
+
}
|
|
88
|
+
return { data: yield response.json(), headers: response.headers };
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
exports.getJson = getJson;
|
|
92
|
+
function useCancelation() {
|
|
93
|
+
return react_1.useRef(new AbortController()).current;
|
|
94
|
+
}
|
|
95
|
+
exports.useCancelation = useCancelation;
|
|
41
96
|
class EventBus {
|
|
42
97
|
constructor() {
|
|
43
98
|
Object.defineProperty(this, "emitter", {
|
package/dist/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,CAAC,MAAM,CAAC;IACX,MAAM,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5F;AA0DD,MAAM,WAAW,SAAS;IACtB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACtD,aAAa,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,MAAM,+EA2JlB,CAAC"}
|
package/dist/loader.js
CHANGED
|
@@ -18,26 +18,6 @@ const error_boundary_1 = require("@servicetitan/error-boundary");
|
|
|
18
18
|
const log_service_1 = require("@servicetitan/log-service");
|
|
19
19
|
const react_ioc_1 = require("@servicetitan/react-ioc");
|
|
20
20
|
const common_1 = require("./common");
|
|
21
|
-
function get(url, config) {
|
|
22
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
let response;
|
|
24
|
-
try {
|
|
25
|
-
response = yield fetch(url, config);
|
|
26
|
-
}
|
|
27
|
-
catch (_a) {
|
|
28
|
-
throw new Error(`Failed to fetch: "${url}".`);
|
|
29
|
-
}
|
|
30
|
-
if (!response.ok) {
|
|
31
|
-
let message = `Requesting "${url}" failed with status code ${response.status}.`;
|
|
32
|
-
try {
|
|
33
|
-
message += ` Details: ${yield response.text()}.`;
|
|
34
|
-
}
|
|
35
|
-
catch (_b) { } // eslint-disable-line no-empty
|
|
36
|
-
throw new Error(message);
|
|
37
|
-
}
|
|
38
|
-
return { data: yield response.json(), headers: response.headers };
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
21
|
function omitPackageVersion(packageUrl) {
|
|
42
22
|
const chunks = packageUrl.split('@');
|
|
43
23
|
if (chunks.length > 2) {
|
|
@@ -45,13 +25,13 @@ function omitPackageVersion(packageUrl) {
|
|
|
45
25
|
}
|
|
46
26
|
return packageUrl;
|
|
47
27
|
}
|
|
48
|
-
function getBundleInfo(packageUrl) {
|
|
28
|
+
function getBundleInfo(packageUrl, signal) {
|
|
49
29
|
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
-
const { data: { dependencies, name, version }, headers, } = yield
|
|
30
|
+
const { data: { dependencies, name, version }, headers, } = yield common_1.getJson(`${packageUrl}/package.json`, { cache: 'no-store', signal });
|
|
51
31
|
const exactPackageUrl = headers.get('X-Delivered-By') === 'unpkg'
|
|
52
32
|
? `${omitPackageVersion(packageUrl)}@${version}`
|
|
53
33
|
: packageUrl;
|
|
54
|
-
const { data: metadata } = yield
|
|
34
|
+
const { data: metadata } = yield common_1.getJson(`${exactPackageUrl}/dist/metadata.json`, { signal });
|
|
55
35
|
const mismatch = Object.entries(EXPOSED_DEPENDENCIES).reduce((result, [dependency, { version: hostVersion }]) => {
|
|
56
36
|
const packageVersion = dependencies[dependency];
|
|
57
37
|
if (packageVersion && !common_1.isCompatible(hostVersion, packageVersion)) {
|
|
@@ -82,11 +62,11 @@ exports.Loader = react_1.default.forwardRef(({ src, data = {}, basename, loading
|
|
|
82
62
|
const dataAttrs = react_1.default.useMemo(() => Object.fromEntries(Object.entries(data).map(([key, value]) => [
|
|
83
63
|
'data-' + key.replace(/[A-Z]/g, letter => '-' + letter.toLowerCase()),
|
|
84
64
|
value,
|
|
85
|
-
])),
|
|
86
|
-
|
|
87
|
-
[...Object.entries(data).map(v => v.join())]);
|
|
65
|
+
])), [...Object.entries(data).map(v => v.join())] // eslint-disable-line react-hooks/exhaustive-deps
|
|
66
|
+
);
|
|
88
67
|
const Loader = react_1.default.useMemo(() => {
|
|
89
68
|
const Component = react_1.default.forwardRef((_0, ref) => {
|
|
69
|
+
const cancelation = common_1.useCancelation();
|
|
90
70
|
const eventBus = common_1.useEventBus();
|
|
91
71
|
react_1.default.useImperativeHandle(ref, () => ({
|
|
92
72
|
emit(type) {
|
|
@@ -96,9 +76,24 @@ exports.Loader = react_1.default.forwardRef(({ src, data = {}, basename, loading
|
|
|
96
76
|
);
|
|
97
77
|
react_1.default.useEffect(() => {
|
|
98
78
|
setIsLoading(true);
|
|
99
|
-
|
|
79
|
+
return () => {
|
|
80
|
+
cancelation.abort();
|
|
81
|
+
};
|
|
82
|
+
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
|
100
83
|
const Lazy = react_1.default.useMemo(() => react_1.default.lazy(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
101
|
-
|
|
84
|
+
let bundleInfo;
|
|
85
|
+
try {
|
|
86
|
+
bundleInfo = yield getBundleInfo(src, cancelation.signal);
|
|
87
|
+
}
|
|
88
|
+
catch (e) {
|
|
89
|
+
if (cancelation.signal.aborted) {
|
|
90
|
+
return {
|
|
91
|
+
default: () => null,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
throw e;
|
|
95
|
+
}
|
|
96
|
+
const { url, WebComponent, mismatch } = bundleInfo;
|
|
102
97
|
if (mismatch) {
|
|
103
98
|
logService === null || logService === void 0 ? void 0 : logService.warning({
|
|
104
99
|
category: 'MicroFrontends.DependenciesMismatch',
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0B;AAE1B,iEAA6D;AAC7D,2DAAgD;AAChD,uDAAkE;AAElE,
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/web-components",
|
|
3
|
-
"version": "12.8.
|
|
3
|
+
"version": "12.8.11",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -19,9 +19,9 @@
|
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@servicetitan/design-system": "~9.2.1",
|
|
22
|
-
"@servicetitan/error-boundary": "^12.8.
|
|
23
|
-
"@servicetitan/log-service": "^12.8.
|
|
24
|
-
"@servicetitan/react-ioc": "^12.8.
|
|
22
|
+
"@servicetitan/error-boundary": "^12.8.11",
|
|
23
|
+
"@servicetitan/log-service": "^12.8.11",
|
|
24
|
+
"@servicetitan/react-ioc": "^12.8.11",
|
|
25
25
|
"@types/react": "~17.0.9",
|
|
26
26
|
"@types/react-dom": "~17.0.6",
|
|
27
27
|
"@types/semver": "~7.3.6",
|
|
@@ -42,5 +42,5 @@
|
|
|
42
42
|
"cli": {
|
|
43
43
|
"webpack": false
|
|
44
44
|
},
|
|
45
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "9ff574b28f2d078e87772a71403fc3f18c25dd65"
|
|
46
46
|
}
|
package/src/common.ts
CHANGED
|
@@ -56,6 +56,55 @@ export function isCompatible(hostVersion: string, packageVersion: string) {
|
|
|
56
56
|
return false;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
+
interface GetJsonOptions extends RequestInit {
|
|
60
|
+
retries?: number;
|
|
61
|
+
retryDelay?: number;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export async function getJson<T = any>(
|
|
65
|
+
url: string,
|
|
66
|
+
{ retries = 5, retryDelay = 1000, ...config }: GetJsonOptions = {}
|
|
67
|
+
): Promise<{ data: T; headers: Headers }> {
|
|
68
|
+
let response: Response;
|
|
69
|
+
try {
|
|
70
|
+
response = await fetch(url, config);
|
|
71
|
+
} catch {
|
|
72
|
+
if (retries > 0) {
|
|
73
|
+
return new Promise((resolve, reject) => {
|
|
74
|
+
const { signal } = config;
|
|
75
|
+
|
|
76
|
+
const timeoutId = window.setTimeout(() => {
|
|
77
|
+
getJson(url, {
|
|
78
|
+
...config,
|
|
79
|
+
retries: retries - 1,
|
|
80
|
+
retryDelay: retryDelay * 4,
|
|
81
|
+
}).then(resolve, reject);
|
|
82
|
+
}, retryDelay);
|
|
83
|
+
|
|
84
|
+
signal?.addEventListener('abort', () => window.clearTimeout(timeoutId));
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
throw new Error(`Failed to fetch: "${url}".`);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (!response.ok) {
|
|
92
|
+
let message = `Requesting "${url}" failed with status code ${response.status}.`;
|
|
93
|
+
|
|
94
|
+
try {
|
|
95
|
+
message += ` Details: ${await response.text()}.`;
|
|
96
|
+
} catch {} // eslint-disable-line no-empty
|
|
97
|
+
|
|
98
|
+
throw new Error(message);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return { data: await response.json(), headers: response.headers };
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export function useCancelation() {
|
|
105
|
+
return useRef(new AbortController()).current;
|
|
106
|
+
}
|
|
107
|
+
|
|
59
108
|
export type EventHandler = () => void;
|
|
60
109
|
|
|
61
110
|
export class EventBus {
|
package/src/loader.tsx
CHANGED
|
@@ -4,33 +4,14 @@ import { ErrorBoundary } from '@servicetitan/error-boundary';
|
|
|
4
4
|
import { Log } from '@servicetitan/log-service';
|
|
5
5
|
import { useOptionalDependencies } from '@servicetitan/react-ioc';
|
|
6
6
|
|
|
7
|
-
import { useEventBus,
|
|
7
|
+
import { useCancelation, useEventBus, getJson, isCompatible, IWebComponent } from './common';
|
|
8
|
+
|
|
9
|
+
type Awaited<T> = T extends PromiseLike<infer U> ? Awaited<U> : T;
|
|
8
10
|
|
|
9
11
|
declare global {
|
|
10
12
|
export const EXPOSED_DEPENDENCIES: Record<string, { version: string; variable: string }>;
|
|
11
13
|
}
|
|
12
14
|
|
|
13
|
-
async function get(url: string, config?: RequestInit) {
|
|
14
|
-
let response: Response;
|
|
15
|
-
try {
|
|
16
|
-
response = await fetch(url, config);
|
|
17
|
-
} catch {
|
|
18
|
-
throw new Error(`Failed to fetch: "${url}".`);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
if (!response.ok) {
|
|
22
|
-
let message = `Requesting "${url}" failed with status code ${response.status}.`;
|
|
23
|
-
|
|
24
|
-
try {
|
|
25
|
-
message += ` Details: ${await response.text()}.`;
|
|
26
|
-
} catch {} // eslint-disable-line no-empty
|
|
27
|
-
|
|
28
|
-
throw new Error(message);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return { data: await response.json(), headers: response.headers };
|
|
32
|
-
}
|
|
33
|
-
|
|
34
15
|
function omitPackageVersion(packageUrl: string) {
|
|
35
16
|
const chunks = packageUrl.split('@');
|
|
36
17
|
|
|
@@ -41,18 +22,18 @@ function omitPackageVersion(packageUrl: string) {
|
|
|
41
22
|
return packageUrl;
|
|
42
23
|
}
|
|
43
24
|
|
|
44
|
-
async function getBundleInfo(packageUrl: string) {
|
|
25
|
+
async function getBundleInfo(packageUrl: string, signal?: AbortSignal) {
|
|
45
26
|
const {
|
|
46
27
|
data: { dependencies, name, version },
|
|
47
28
|
headers,
|
|
48
|
-
} = await
|
|
29
|
+
} = await getJson(`${packageUrl}/package.json`, { cache: 'no-store', signal });
|
|
49
30
|
|
|
50
31
|
const exactPackageUrl =
|
|
51
32
|
headers.get('X-Delivered-By') === 'unpkg'
|
|
52
33
|
? `${omitPackageVersion(packageUrl)}@${version}`
|
|
53
34
|
: packageUrl;
|
|
54
35
|
|
|
55
|
-
const { data: metadata } = await
|
|
36
|
+
const { data: metadata } = await getJson(`${exactPackageUrl}/dist/metadata.json`, { signal });
|
|
56
37
|
|
|
57
38
|
const mismatch = Object.entries(EXPOSED_DEPENDENCIES).reduce(
|
|
58
39
|
(result, [dependency, { version: hostVersion }]) => {
|
|
@@ -114,12 +95,13 @@ export const Loader = React.forwardRef<LoaderRef, LoaderProps>(
|
|
|
114
95
|
value,
|
|
115
96
|
])
|
|
116
97
|
),
|
|
117
|
-
|
|
118
|
-
[...Object.entries(data).map(v => v.join())]
|
|
98
|
+
|
|
99
|
+
[...Object.entries(data).map(v => v.join())] // eslint-disable-line react-hooks/exhaustive-deps
|
|
119
100
|
);
|
|
120
101
|
|
|
121
102
|
const Loader = React.useMemo(() => {
|
|
122
103
|
const Component = React.forwardRef<LoaderRef>((_0, ref) => {
|
|
104
|
+
const cancelation = useCancelation();
|
|
123
105
|
const eventBus = useEventBus();
|
|
124
106
|
|
|
125
107
|
React.useImperativeHandle(
|
|
@@ -134,12 +116,29 @@ export const Loader = React.forwardRef<LoaderRef, LoaderProps>(
|
|
|
134
116
|
|
|
135
117
|
React.useEffect(() => {
|
|
136
118
|
setIsLoading(true);
|
|
137
|
-
|
|
119
|
+
|
|
120
|
+
return () => {
|
|
121
|
+
cancelation.abort();
|
|
122
|
+
};
|
|
123
|
+
}, []); // eslint-disable-line react-hooks/exhaustive-deps
|
|
138
124
|
|
|
139
125
|
const Lazy = React.useMemo(
|
|
140
126
|
() =>
|
|
141
|
-
React.lazy(async () => {
|
|
142
|
-
|
|
127
|
+
React.lazy<() => JSX.Element | null>(async () => {
|
|
128
|
+
let bundleInfo: Awaited<ReturnType<typeof getBundleInfo>>;
|
|
129
|
+
try {
|
|
130
|
+
bundleInfo = await getBundleInfo(src, cancelation.signal);
|
|
131
|
+
} catch (e) {
|
|
132
|
+
if (cancelation.signal.aborted) {
|
|
133
|
+
return {
|
|
134
|
+
default: () => null,
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
throw e;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const { url, WebComponent, mismatch } = bundleInfo;
|
|
143
142
|
|
|
144
143
|
if (mismatch) {
|
|
145
144
|
logService?.warning({
|
package/src/register.tsx
CHANGED
|
@@ -6,7 +6,7 @@ import { DefaultPortalContext } from '@servicetitan/design-system';
|
|
|
6
6
|
|
|
7
7
|
import { IsWebComponentContext } from './is-web-component-context';
|
|
8
8
|
import { OptionalValueProvider } from './optional-value-provider';
|
|
9
|
-
import { EventBus, IWebComponent,
|
|
9
|
+
import { Entries, EventBus, IWebComponent, BASENAME_TOKEN } from './common';
|
|
10
10
|
|
|
11
11
|
declare global {
|
|
12
12
|
export const WEB_COMPONENT_NAME: string;
|