@qiankunjs/shared 0.0.1-alpha.5 → 0.0.1-rc.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/cjs/assets-transpilers/link.js +32 -21
- package/dist/cjs/assets-transpilers/link.js.map +1 -1
- package/dist/cjs/assets-transpilers/script.d.ts +5 -4
- package/dist/cjs/assets-transpilers/script.js +9 -8
- package/dist/cjs/assets-transpilers/script.js.map +1 -1
- package/dist/cjs/assets-transpilers/types.d.ts +8 -0
- package/dist/cjs/assets-transpilers/types.js +13 -0
- package/dist/cjs/assets-transpilers/types.js.map +1 -1
- package/dist/cjs/common.d.ts +0 -2
- package/dist/cjs/common.js.map +1 -1
- package/dist/cjs/error/QiankunError.d.ts +3 -0
- package/dist/cjs/error/QiankunError.js +23 -0
- package/dist/cjs/error/QiankunError.js.map +1 -0
- package/dist/cjs/error/index.d.ts +1 -0
- package/dist/cjs/error/index.js +13 -0
- package/dist/cjs/error/index.js.map +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.js +11 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/assets-transpilers/link.js +32 -21
- package/dist/esm/assets-transpilers/link.js.map +1 -1
- package/dist/esm/assets-transpilers/script.d.ts +5 -4
- package/dist/esm/assets-transpilers/script.js +9 -8
- package/dist/esm/assets-transpilers/script.js.map +1 -1
- package/dist/esm/assets-transpilers/types.d.ts +8 -0
- package/dist/esm/assets-transpilers/types.js +12 -1
- package/dist/esm/assets-transpilers/types.js.map +1 -1
- package/dist/esm/common.d.ts +0 -2
- package/dist/esm/common.js.map +1 -1
- package/dist/esm/error/QiankunError.d.ts +3 -0
- package/dist/esm/error/QiankunError.js +15 -0
- package/dist/esm/error/QiankunError.js.map +1 -0
- package/dist/esm/error/index.d.ts +1 -0
- package/dist/esm/error/index.js +2 -0
- package/dist/esm/error/index.js.map +1 -0
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -2
- package/src/assets-transpilers/link.ts +37 -26
- package/src/assets-transpilers/script.ts +13 -12
- package/src/assets-transpilers/types.ts +12 -1
- package/src/common.ts +0 -3
- package/src/error/QiankunError.ts +5 -0
- package/src/error/index.ts +1 -0
- package/src/index.ts +1 -0
- package/dist/cjs/assets-transpilers/utils.d.ts +0 -7
- package/dist/cjs/assets-transpilers/utils.js +0 -59
- package/dist/cjs/assets-transpilers/utils.js.map +0 -1
- package/dist/esm/assets-transpilers/utils.d.ts +0 -7
- package/dist/esm/assets-transpilers/utils.js +0 -52
- package/dist/esm/assets-transpilers/utils.js.map +0 -1
- package/src/assets-transpilers/utils.ts +0 -69
|
@@ -8,6 +8,7 @@ exports.default = transpileLink;
|
|
|
8
8
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
9
9
|
var _utils = require("../utils");
|
|
10
10
|
var _script = require("./script");
|
|
11
|
+
var _types = require("./types");
|
|
11
12
|
/**
|
|
12
13
|
* @author Kuitos
|
|
13
14
|
* @since 2023-04-26
|
|
@@ -23,7 +24,7 @@ var preTranspile = function preTranspile(link, baseURI, opts) {
|
|
|
23
24
|
var matchedAssets = moduleResolver === null || moduleResolver === void 0 ? void 0 : moduleResolver(linkHref);
|
|
24
25
|
if (matchedAssets) {
|
|
25
26
|
return {
|
|
26
|
-
mode:
|
|
27
|
+
mode: _types.Mode.CACHE_FROM_SANDBOX,
|
|
27
28
|
result: (0, _objectSpread2.default)({
|
|
28
29
|
src: linkHref
|
|
29
30
|
}, matchedAssets)
|
|
@@ -32,7 +33,7 @@ var preTranspile = function preTranspile(link, baseURI, opts) {
|
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
return {
|
|
35
|
-
mode:
|
|
36
|
+
mode: _types.Mode.NONE
|
|
36
37
|
};
|
|
37
38
|
};
|
|
38
39
|
|
|
@@ -63,16 +64,22 @@ var postProcessPreloadLink = function postProcessPreloadLink(link, baseURI, opts
|
|
|
63
64
|
}, baseURI, opts),
|
|
64
65
|
mode = _preTranspileScript.mode,
|
|
65
66
|
result = _preTranspileScript.result;
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
67
|
+
switch (mode) {
|
|
68
|
+
case _types.Mode.REMOTE_FROM_SANDBOX:
|
|
69
|
+
{
|
|
70
|
+
link.as = 'fetch';
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
case _types.Mode.CACHE_FROM_SANDBOX:
|
|
74
|
+
{
|
|
75
|
+
var url = result.url;
|
|
76
|
+
var objectURL = URL.createObjectURL(new Blob(["// ".concat(href, " is reusing the execution result of ").concat(url)], {
|
|
77
|
+
type: 'text/javascript'
|
|
78
|
+
}));
|
|
79
|
+
link.href = objectURL;
|
|
80
|
+
revokeAfterLoaded(objectURL, link);
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
76
83
|
}
|
|
77
84
|
break;
|
|
78
85
|
}
|
|
@@ -83,13 +90,17 @@ var postProcessPreloadLink = function postProcessPreloadLink(link, baseURI, opts
|
|
|
83
90
|
}, baseURI, opts),
|
|
84
91
|
_mode = _preTranspile.mode,
|
|
85
92
|
_result = _preTranspile.result;
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
+
switch (_mode) {
|
|
94
|
+
case _types.Mode.CACHE_FROM_SANDBOX:
|
|
95
|
+
{
|
|
96
|
+
var _url = _result.url;
|
|
97
|
+
var _objectURL = URL.createObjectURL(new Blob(["// ".concat(href, " is reusing the execution result of ").concat(_url)], {
|
|
98
|
+
type: 'text/css'
|
|
99
|
+
}));
|
|
100
|
+
link.href = _objectURL;
|
|
101
|
+
revokeAfterLoaded(_objectURL, link);
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
93
104
|
}
|
|
94
105
|
break;
|
|
95
106
|
}
|
|
@@ -105,7 +116,7 @@ function transpileLink(link, baseURI, opts) {
|
|
|
105
116
|
mode = _preTranspile2.mode,
|
|
106
117
|
result = _preTranspile2.result;
|
|
107
118
|
switch (mode) {
|
|
108
|
-
case
|
|
119
|
+
case _types.Mode.CACHE_FROM_SANDBOX:
|
|
109
120
|
{
|
|
110
121
|
var src = result.src,
|
|
111
122
|
version = result.version,
|
|
@@ -117,7 +128,7 @@ function transpileLink(link, baseURI, opts) {
|
|
|
117
128
|
}));
|
|
118
129
|
return link;
|
|
119
130
|
}
|
|
120
|
-
case
|
|
131
|
+
case _types.Mode.NONE:
|
|
121
132
|
default:
|
|
122
133
|
{
|
|
123
134
|
if (hrefAttribute) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_utils","require","_script","preTranspile","link","baseURI","opts","sandbox","moduleResolver","href","linkHref","getEntireUrl","matchedAssets","mode","result","_objectSpread2","default","src","postProcessPreloadLink","as","revokeAfterLoaded","objectURL","revoke","URL","revokeObjectURL","addEventListener","once","_preTranspileScript","preTranspileScript","url","createObjectURL","Blob","concat","type","_preTranspile","transpileLink","hrefAttribute","getAttribute","_preTranspile2","undefined","version","dataset","rel"],"sources":["../../../src/assets-transpilers/link.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-04-26\n */\nimport type { MatchResult } from '../module-resolver';\nimport { getEntireUrl } from '../utils';\nimport { preTranspile as preTranspileScript } from './script';\nimport type { AssetsTranspilerOpts, BaseTranspilerOpts } from './types';\n\ntype PreTranspileResult
|
|
1
|
+
{"version":3,"names":["_utils","require","_script","_types","preTranspile","link","baseURI","opts","sandbox","moduleResolver","href","linkHref","getEntireUrl","matchedAssets","mode","Mode","CACHE_FROM_SANDBOX","result","_objectSpread2","default","src","NONE","postProcessPreloadLink","as","revokeAfterLoaded","objectURL","revoke","URL","revokeObjectURL","addEventListener","once","_preTranspileScript","preTranspileScript","REMOTE_FROM_SANDBOX","url","createObjectURL","Blob","concat","type","_preTranspile","transpileLink","hrefAttribute","getAttribute","_preTranspile2","undefined","version","dataset","rel"],"sources":["../../../src/assets-transpilers/link.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-04-26\n */\nimport type { MatchResult } from '../module-resolver';\nimport { getEntireUrl } from '../utils';\nimport { preTranspile as preTranspileScript } from './script';\nimport type { AssetsTranspilerOpts, BaseTranspilerOpts } from './types';\nimport { Mode } from './types';\n\ntype PreTranspileResult =\n | { mode: Mode.CACHE_FROM_SANDBOX; result: { src: string } & MatchResult }\n | { mode: Mode.NONE; result?: never };\nconst preTranspile = (\n link: Partial<Pick<HTMLLinkElement, 'href'>>,\n baseURI: string,\n opts: BaseTranspilerOpts,\n): PreTranspileResult => {\n const { sandbox, moduleResolver } = opts;\n const { href } = link;\n\n if (sandbox) {\n if (href) {\n const linkHref = getEntireUrl(href, baseURI);\n\n const matchedAssets = moduleResolver?.(linkHref);\n if (matchedAssets) {\n return {\n mode: Mode.CACHE_FROM_SANDBOX,\n result: { src: linkHref, ...matchedAssets },\n };\n }\n }\n }\n\n return {\n mode: Mode.NONE,\n };\n};\n\n/**\n * While the assets are transpiling in sandbox, it means they will be evaluated with manual fetching,\n * thus we need to set the attribute `as` to fetch instead of script or style to avoid preload cache missing.\n * see https://stackoverflow.com/questions/52635660/can-link-rel-preload-be-made-to-work-with-fetch/63814972#63814972\n */\nconst postProcessPreloadLink = (link: HTMLLinkElement, baseURI: string, opts: AssetsTranspilerOpts): void => {\n const { as, href } = link;\n\n const revokeAfterLoaded = (objectURL: string, link: HTMLLinkElement) => {\n const revoke = () => URL.revokeObjectURL(objectURL);\n link.addEventListener('load', revoke, { once: true });\n link.addEventListener('error', revoke, { once: true });\n };\n\n switch (as) {\n case 'script': {\n const { mode, result } = preTranspileScript({ src: href }, baseURI, opts);\n\n switch (mode) {\n case Mode.REMOTE_FROM_SANDBOX: {\n link.as = 'fetch';\n break;\n }\n\n case Mode.CACHE_FROM_SANDBOX: {\n const { url } = result;\n const objectURL = URL.createObjectURL(\n new Blob([`// ${href} is reusing the execution result of ${url}`], {\n type: 'text/javascript',\n }),\n );\n link.href = objectURL;\n revokeAfterLoaded(objectURL, link);\n\n break;\n }\n }\n\n break;\n }\n\n case 'style': {\n const { mode, result } = preTranspile({ href }, baseURI, opts);\n\n switch (mode) {\n case Mode.CACHE_FROM_SANDBOX: {\n const { url } = result;\n const objectURL = URL.createObjectURL(\n new Blob([`// ${href} is reusing the execution result of ${url}`], {\n type: 'text/css',\n }),\n );\n link.href = objectURL;\n revokeAfterLoaded(objectURL, link);\n break;\n }\n }\n\n break;\n }\n\n default:\n break;\n }\n};\n\nexport default function transpileLink(\n link: HTMLLinkElement,\n baseURI: string,\n opts: AssetsTranspilerOpts,\n): HTMLLinkElement {\n const hrefAttribute = link.getAttribute('href');\n const { mode, result } = preTranspile(\n {\n href: hrefAttribute || undefined,\n },\n baseURI,\n opts,\n );\n\n switch (mode) {\n case Mode.CACHE_FROM_SANDBOX: {\n const { src, version, url } = result;\n link.dataset.href = src;\n link.dataset.version = version;\n link.href = URL.createObjectURL(\n new Blob([`// ${src} is reusing the execution result of ${url}`], {\n type: 'text/css',\n }),\n );\n\n return link;\n }\n\n case Mode.NONE:\n default: {\n if (hrefAttribute) {\n link.href = getEntireUrl(hrefAttribute, baseURI);\n\n if (link.rel === 'preload') {\n postProcessPreloadLink(link, baseURI, opts);\n }\n\n return link;\n }\n\n return link;\n }\n }\n}\n"],"mappings":";;;;;;;;AAKA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AARA;AACA;AACA;AACA;;AAUA,IAAMG,YAAY,GAAG,SAAfA,YAAYA,CAChBC,IAA4C,EAC5CC,OAAe,EACfC,IAAwB,EACD;EACvB,IAAQC,OAAO,GAAqBD,IAAI,CAAhCC,OAAO;IAAEC,cAAc,GAAKF,IAAI,CAAvBE,cAAc;EAC/B,IAAQC,IAAI,GAAKL,IAAI,CAAbK,IAAI;EAEZ,IAAIF,OAAO,EAAE;IACX,IAAIE,IAAI,EAAE;MACR,IAAMC,QAAQ,GAAG,IAAAC,mBAAY,EAACF,IAAI,EAAEJ,OAAO,CAAC;MAE5C,IAAMO,aAAa,GAAGJ,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAGE,QAAQ,CAAC;MAChD,IAAIE,aAAa,EAAE;QACjB,OAAO;UACLC,IAAI,EAAEC,WAAI,CAACC,kBAAkB;UAC7BC,MAAM,MAAAC,cAAA,CAAAC,OAAA;YAAIC,GAAG,EAAET;UAAQ,GAAKE,aAAa;QAC3C,CAAC;MACH;IACF;EACF;EAEA,OAAO;IACLC,IAAI,EAAEC,WAAI,CAACM;EACb,CAAC;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAIjB,IAAqB,EAAEC,OAAe,EAAEC,IAA0B,EAAW;EAC3G,IAAQgB,EAAE,GAAWlB,IAAI,CAAjBkB,EAAE;IAAEb,IAAI,GAAKL,IAAI,CAAbK,IAAI;EAEhB,IAAMc,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,SAAiB,EAAEpB,IAAqB,EAAK;IACtE,IAAMqB,MAAM,GAAG,SAATA,MAAMA,CAAA;MAAA,OAASC,GAAG,CAACC,eAAe,CAACH,SAAS,CAAC;IAAA;IACnDpB,IAAI,CAACwB,gBAAgB,CAAC,MAAM,EAAEH,MAAM,EAAE;MAAEI,IAAI,EAAE;IAAK,CAAC,CAAC;IACrDzB,IAAI,CAACwB,gBAAgB,CAAC,OAAO,EAAEH,MAAM,EAAE;MAAEI,IAAI,EAAE;IAAK,CAAC,CAAC;EACxD,CAAC;EAED,QAAQP,EAAE;IACR,KAAK,QAAQ;MAAE;QACb,IAAAQ,mBAAA,GAAyB,IAAAC,oBAAkB,EAAC;YAAEZ,GAAG,EAAEV;UAAK,CAAC,EAAEJ,OAAO,EAAEC,IAAI,CAAC;UAAjEO,IAAI,GAAAiB,mBAAA,CAAJjB,IAAI;UAAEG,MAAM,GAAAc,mBAAA,CAANd,MAAM;QAEpB,QAAQH,IAAI;UACV,KAAKC,WAAI,CAACkB,mBAAmB;YAAE;cAC7B5B,IAAI,CAACkB,EAAE,GAAG,OAAO;cACjB;YACF;UAEA,KAAKR,WAAI,CAACC,kBAAkB;YAAE;cAC5B,IAAQkB,GAAG,GAAKjB,MAAM,CAAdiB,GAAG;cACX,IAAMT,SAAS,GAAGE,GAAG,CAACQ,eAAe,CACnC,IAAIC,IAAI,CAAC,OAAAC,MAAA,CAAO3B,IAAI,0CAAA2B,MAAA,CAAuCH,GAAG,EAAG,EAAE;gBACjEI,IAAI,EAAE;cACR,CAAC,CACH,CAAC;cACDjC,IAAI,CAACK,IAAI,GAAGe,SAAS;cACrBD,iBAAiB,CAACC,SAAS,EAAEpB,IAAI,CAAC;cAElC;YACF;QACF;QAEA;MACF;IAEA,KAAK,OAAO;MAAE;QACZ,IAAAkC,aAAA,GAAyBnC,YAAY,CAAC;YAAEM,IAAI,EAAJA;UAAK,CAAC,EAAEJ,OAAO,EAAEC,IAAI,CAAC;UAAtDO,KAAI,GAAAyB,aAAA,CAAJzB,IAAI;UAAEG,OAAM,GAAAsB,aAAA,CAANtB,MAAM;QAEpB,QAAQH,KAAI;UACV,KAAKC,WAAI,CAACC,kBAAkB;YAAE;cAC5B,IAAQkB,IAAG,GAAKjB,OAAM,CAAdiB,GAAG;cACX,IAAMT,UAAS,GAAGE,GAAG,CAACQ,eAAe,CACnC,IAAIC,IAAI,CAAC,OAAAC,MAAA,CAAO3B,IAAI,0CAAA2B,MAAA,CAAuCH,IAAG,EAAG,EAAE;gBACjEI,IAAI,EAAE;cACR,CAAC,CACH,CAAC;cACDjC,IAAI,CAACK,IAAI,GAAGe,UAAS;cACrBD,iBAAiB,CAACC,UAAS,EAAEpB,IAAI,CAAC;cAClC;YACF;QACF;QAEA;MACF;IAEA;MACE;EACJ;AACF,CAAC;AAEc,SAASmC,aAAaA,CACnCnC,IAAqB,EACrBC,OAAe,EACfC,IAA0B,EACT;EACjB,IAAMkC,aAAa,GAAGpC,IAAI,CAACqC,YAAY,CAAC,MAAM,CAAC;EAC/C,IAAAC,cAAA,GAAyBvC,YAAY,CACnC;MACEM,IAAI,EAAE+B,aAAa,IAAIG;IACzB,CAAC,EACDtC,OAAO,EACPC,IACF,CAAC;IANOO,IAAI,GAAA6B,cAAA,CAAJ7B,IAAI;IAAEG,MAAM,GAAA0B,cAAA,CAAN1B,MAAM;EAQpB,QAAQH,IAAI;IACV,KAAKC,WAAI,CAACC,kBAAkB;MAAE;QAC5B,IAAQI,GAAG,GAAmBH,MAAM,CAA5BG,GAAG;UAAEyB,OAAO,GAAU5B,MAAM,CAAvB4B,OAAO;UAAEX,GAAG,GAAKjB,MAAM,CAAdiB,GAAG;QACzB7B,IAAI,CAACyC,OAAO,CAACpC,IAAI,GAAGU,GAAG;QACvBf,IAAI,CAACyC,OAAO,CAACD,OAAO,GAAGA,OAAO;QAC9BxC,IAAI,CAACK,IAAI,GAAGiB,GAAG,CAACQ,eAAe,CAC7B,IAAIC,IAAI,CAAC,OAAAC,MAAA,CAAOjB,GAAG,0CAAAiB,MAAA,CAAuCH,GAAG,EAAG,EAAE;UAChEI,IAAI,EAAE;QACR,CAAC,CACH,CAAC;QAED,OAAOjC,IAAI;MACb;IAEA,KAAKU,WAAI,CAACM,IAAI;IACd;MAAS;QACP,IAAIoB,aAAa,EAAE;UACjBpC,IAAI,CAACK,IAAI,GAAG,IAAAE,mBAAY,EAAC6B,aAAa,EAAEnC,OAAO,CAAC;UAEhD,IAAID,IAAI,CAAC0C,GAAG,KAAK,SAAS,EAAE;YAC1BzB,sBAAsB,CAACjB,IAAI,EAAEC,OAAO,EAAEC,IAAI,CAAC;UAC7C;UAEA,OAAOF,IAAI;QACb;QAEA,OAAOA,IAAI;MACb;EACF;AACF"}
|
|
@@ -4,23 +4,24 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { MatchResult } from '../module-resolver';
|
|
6
6
|
import type { AssetsTranspilerOpts } from './types';
|
|
7
|
+
import { Mode } from './types';
|
|
7
8
|
type PreTranspileResult = {
|
|
8
|
-
mode:
|
|
9
|
+
mode: Mode.REMOTE_FROM_SANDBOX;
|
|
9
10
|
result: {
|
|
10
11
|
src: string;
|
|
11
12
|
};
|
|
12
13
|
} | {
|
|
13
|
-
mode:
|
|
14
|
+
mode: Mode.CACHE_FROM_SANDBOX;
|
|
14
15
|
result: {
|
|
15
16
|
src: string;
|
|
16
17
|
} & MatchResult;
|
|
17
18
|
} | {
|
|
18
|
-
mode:
|
|
19
|
+
mode: Mode.INLINE_FROM_SANDBOX;
|
|
19
20
|
result: {
|
|
20
21
|
code: string;
|
|
21
22
|
};
|
|
22
23
|
} | {
|
|
23
|
-
mode:
|
|
24
|
+
mode: Mode.NONE;
|
|
24
25
|
result?: never;
|
|
25
26
|
};
|
|
26
27
|
export declare const preTranspile: (script: Partial<Pick<HTMLScriptElement, 'src' | 'type' | 'textContent'>>, baseURI: string, opts: AssetsTranspilerOpts) => PreTranspileResult;
|
|
@@ -8,6 +8,7 @@ exports.default = transpileScript;
|
|
|
8
8
|
exports.preTranspile = void 0;
|
|
9
9
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
10
10
|
var _utils = require("../utils");
|
|
11
|
+
var _types = require("./types");
|
|
11
12
|
/**
|
|
12
13
|
* @author Kuitos
|
|
13
14
|
* @since 2023-03-16
|
|
@@ -38,14 +39,14 @@ var preTranspile = function preTranspile(script, baseURI, opts) {
|
|
|
38
39
|
var matchedScript = moduleResolver === null || moduleResolver === void 0 ? void 0 : moduleResolver(entireUrl);
|
|
39
40
|
if (matchedScript) {
|
|
40
41
|
return {
|
|
41
|
-
mode:
|
|
42
|
+
mode: _types.Mode.CACHE_FROM_SANDBOX,
|
|
42
43
|
result: (0, _objectSpread2.default)({
|
|
43
44
|
src: entireUrl
|
|
44
45
|
}, matchedScript)
|
|
45
46
|
};
|
|
46
47
|
}
|
|
47
48
|
return {
|
|
48
|
-
mode:
|
|
49
|
+
mode: _types.Mode.REMOTE_FROM_SANDBOX,
|
|
49
50
|
result: {
|
|
50
51
|
src: entireUrl
|
|
51
52
|
}
|
|
@@ -57,7 +58,7 @@ var preTranspile = function preTranspile(script, baseURI, opts) {
|
|
|
57
58
|
var code = scriptNode.textContent;
|
|
58
59
|
if (code) {
|
|
59
60
|
return {
|
|
60
|
-
mode:
|
|
61
|
+
mode: _types.Mode.INLINE_FROM_SANDBOX,
|
|
61
62
|
result: {
|
|
62
63
|
code: code
|
|
63
64
|
}
|
|
@@ -66,7 +67,7 @@ var preTranspile = function preTranspile(script, baseURI, opts) {
|
|
|
66
67
|
}
|
|
67
68
|
}
|
|
68
69
|
return {
|
|
69
|
-
mode:
|
|
70
|
+
mode: _types.Mode.NONE
|
|
70
71
|
};
|
|
71
72
|
};
|
|
72
73
|
exports.preTranspile = preTranspile;
|
|
@@ -84,7 +85,7 @@ function transpileScript(script, baseURI, opts) {
|
|
|
84
85
|
mode = _preTranspile.mode,
|
|
85
86
|
result = _preTranspile.result;
|
|
86
87
|
switch (mode) {
|
|
87
|
-
case
|
|
88
|
+
case _types.Mode.REMOTE_FROM_SANDBOX:
|
|
88
89
|
{
|
|
89
90
|
var src = result.src;
|
|
90
91
|
|
|
@@ -112,7 +113,7 @@ function transpileScript(script, baseURI, opts) {
|
|
|
112
113
|
});
|
|
113
114
|
return script;
|
|
114
115
|
}
|
|
115
|
-
case
|
|
116
|
+
case _types.Mode.INLINE_FROM_SANDBOX:
|
|
116
117
|
{
|
|
117
118
|
var rawNode = opts.rawNode;
|
|
118
119
|
var scriptNode = script.textContent ? script : rawNode.childNodes[0];
|
|
@@ -122,7 +123,7 @@ function transpileScript(script, baseURI, opts) {
|
|
|
122
123
|
script.dataset.consumed = 'true';
|
|
123
124
|
return script;
|
|
124
125
|
}
|
|
125
|
-
case
|
|
126
|
+
case _types.Mode.CACHE_FROM_SANDBOX:
|
|
126
127
|
{
|
|
127
128
|
var url = result.url,
|
|
128
129
|
version = result.version,
|
|
@@ -141,7 +142,7 @@ function transpileScript(script, baseURI, opts) {
|
|
|
141
142
|
}));
|
|
142
143
|
return script;
|
|
143
144
|
}
|
|
144
|
-
case
|
|
145
|
+
case _types.Mode.NONE:
|
|
145
146
|
default:
|
|
146
147
|
{
|
|
147
148
|
if (srcAttribute) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_utils","require","isValidJavaScriptType","type","handleTypes","indexOf","getCredentials","crossOrigin","undefined","preTranspile","script","baseURI","opts","sandbox","moduleResolver","src","entireUrl","getEntireUrl","matchedScript","mode","result","_objectSpread2","default","rawNode","scriptNode","textContent","childNodes","code","exports","transpileScript","srcAttribute","getAttribute","fetch","_preTranspile","removeAttribute","dataset","syncMode","hasAttribute","priority","credentials","then","res","text","codeFactory","makeEvaluateFactory","fetchPriority","URL","createObjectURL","Blob","consumed","url","version","concat"],"sources":["../../../src/assets-transpilers/script.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-03-16\n */\n\nimport type { MatchResult } from '../module-resolver';\nimport { getEntireUrl } from '../utils';\nimport type { AssetsTranspilerOpts } from './types';\n\nconst isValidJavaScriptType = (type?: string): boolean => {\n const handleTypes = [\n 'text/javascript',\n 'module',\n 'application/javascript',\n 'text/ecmascript',\n 'application/ecmascript',\n ];\n return !type || handleTypes.indexOf(type) !== -1;\n};\n\nconst getCredentials = (crossOrigin: string | null): RequestInit['credentials'] | undefined => {\n switch (crossOrigin) {\n case 'anonymous':\n return 'same-origin';\n case 'use-credentials':\n return 'include';\n default:\n return undefined;\n }\n};\n\ntype PreTranspileResult =\n | { mode: 'remote'; result: { src: string } }\n | { mode: 'cache'; result: { src: string } & MatchResult }\n | { mode: 'inline'; result: { code: string } }\n | { mode: 'none'; result?: never };\n\nexport const preTranspile = (\n script: Partial<Pick<HTMLScriptElement, 'src' | 'type' | 'textContent'>>,\n baseURI: string,\n opts: AssetsTranspilerOpts,\n): PreTranspileResult => {\n const { sandbox, moduleResolver } = opts;\n\n const { src, type } = script;\n\n if (sandbox) {\n if (src) {\n const entireUrl = getEntireUrl(src, baseURI);\n const matchedScript = moduleResolver?.(entireUrl);\n if (matchedScript) {\n return {\n mode: 'cache',\n result: { src: entireUrl, ...matchedScript },\n };\n }\n\n return {\n mode: 'remote',\n result: { src: entireUrl },\n };\n }\n\n if (isValidJavaScriptType(type)) {\n const rawNode = opts.rawNode as HTMLScriptElement;\n const scriptNode = script.textContent ? script : rawNode.childNodes[0];\n\n const code = scriptNode.textContent;\n if (code) {\n return {\n mode: 'inline',\n result: {\n code,\n },\n };\n }\n }\n }\n\n return { mode: 'none' };\n};\n\nexport default function transpileScript(\n script: HTMLScriptElement,\n baseURI: string,\n opts: AssetsTranspilerOpts,\n): HTMLScriptElement {\n // Can't use script.src directly, because it will be resolved to absolute path by browser with Node.baseURI\n // Such as <script src=\"./foo.js\"></script> will be resolved to http://localhost:8000/foo.js while read script.src\n const srcAttribute = script.getAttribute('src');\n const { sandbox, fetch } = opts;\n\n const { mode, result } = preTranspile(\n {\n src: srcAttribute || undefined,\n type: script.type,\n textContent: script.textContent,\n },\n baseURI,\n opts,\n );\n\n switch (mode) {\n case 'remote': {\n const { src } = result;\n\n // We must remove script src to avoid self execution as we need to fetch the script content and transpile it\n script.removeAttribute('src');\n script.dataset.src = src;\n\n const syncMode = !script.hasAttribute('async');\n const priority: Priority = syncMode ? 'high' : 'low';\n const credentials = getCredentials(script.crossOrigin);\n\n void fetch(src, { credentials, priority })\n .then((res) => res.text())\n .then((code) => {\n const codeFactory = sandbox!.makeEvaluateFactory(code, src);\n\n // HTMLScriptElement default fetchPriority is 'auto', we should set it to 'high' to make it execute earlier while it's not async script\n if (syncMode) {\n script.fetchPriority = 'high';\n }\n\n script.src = URL.createObjectURL(new Blob([codeFactory], { type: 'text/javascript' }));\n });\n\n return script;\n }\n\n case 'inline': {\n const rawNode = opts.rawNode as HTMLScriptElement;\n const scriptNode = script.textContent ? script : rawNode.childNodes[0];\n const { code } = result;\n\n scriptNode.textContent = sandbox!.makeEvaluateFactory(code, baseURI);\n // mark the script have consumed\n script.dataset.consumed = 'true';\n\n return script;\n }\n\n case 'cache': {\n const { url, version, src } = result;\n\n script.dataset.src = src;\n script.dataset.version = version;\n\n const syncMode = !script.getAttribute('async');\n // HTMLScriptElement default fetchPriority is 'auto', we should set it to 'high' to make it execute earlier while it's not async script\n if (syncMode) {\n script.fetchPriority = 'high';\n }\n\n // When the script hits the dependency reuse logic, the current script is not executed, and an empty script is returned directly\n script.src = URL.createObjectURL(\n new Blob([`// ${src} is reusing the execution result of ${url}`], {\n type: 'text/javascript',\n }),\n );\n\n return script;\n }\n\n case 'none':\n default: {\n if (srcAttribute) {\n script.src = getEntireUrl(srcAttribute, baseURI);\n return script;\n }\n\n return script;\n }\n }\n\n // TODO find entry exports\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_utils","require","_types","isValidJavaScriptType","type","handleTypes","indexOf","getCredentials","crossOrigin","undefined","preTranspile","script","baseURI","opts","sandbox","moduleResolver","src","entireUrl","getEntireUrl","matchedScript","mode","Mode","CACHE_FROM_SANDBOX","result","_objectSpread2","default","REMOTE_FROM_SANDBOX","rawNode","scriptNode","textContent","childNodes","code","INLINE_FROM_SANDBOX","NONE","exports","transpileScript","srcAttribute","getAttribute","fetch","_preTranspile","removeAttribute","dataset","syncMode","hasAttribute","priority","credentials","then","res","text","codeFactory","makeEvaluateFactory","fetchPriority","URL","createObjectURL","Blob","consumed","url","version","concat"],"sources":["../../../src/assets-transpilers/script.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-03-16\n */\n\nimport type { MatchResult } from '../module-resolver';\nimport { getEntireUrl } from '../utils';\nimport type { AssetsTranspilerOpts } from './types';\nimport { Mode } from './types';\n\nconst isValidJavaScriptType = (type?: string): boolean => {\n const handleTypes = [\n 'text/javascript',\n 'module',\n 'application/javascript',\n 'text/ecmascript',\n 'application/ecmascript',\n ];\n return !type || handleTypes.indexOf(type) !== -1;\n};\n\nconst getCredentials = (crossOrigin: string | null): RequestInit['credentials'] | undefined => {\n switch (crossOrigin) {\n case 'anonymous':\n return 'same-origin';\n case 'use-credentials':\n return 'include';\n default:\n return undefined;\n }\n};\n\ntype PreTranspileResult =\n | { mode: Mode.REMOTE_FROM_SANDBOX; result: { src: string } }\n | { mode: Mode.CACHE_FROM_SANDBOX; result: { src: string } & MatchResult }\n | { mode: Mode.INLINE_FROM_SANDBOX; result: { code: string } }\n | { mode: Mode.NONE; result?: never };\n\nexport const preTranspile = (\n script: Partial<Pick<HTMLScriptElement, 'src' | 'type' | 'textContent'>>,\n baseURI: string,\n opts: AssetsTranspilerOpts,\n): PreTranspileResult => {\n const { sandbox, moduleResolver } = opts;\n\n const { src, type } = script;\n\n if (sandbox) {\n if (src) {\n const entireUrl = getEntireUrl(src, baseURI);\n const matchedScript = moduleResolver?.(entireUrl);\n if (matchedScript) {\n return {\n mode: Mode.CACHE_FROM_SANDBOX,\n result: { src: entireUrl, ...matchedScript },\n };\n }\n\n return {\n mode: Mode.REMOTE_FROM_SANDBOX,\n result: { src: entireUrl },\n };\n }\n\n if (isValidJavaScriptType(type)) {\n const rawNode = opts.rawNode as HTMLScriptElement;\n const scriptNode = script.textContent ? script : rawNode.childNodes[0];\n\n const code = scriptNode.textContent;\n if (code) {\n return {\n mode: Mode.INLINE_FROM_SANDBOX,\n result: {\n code,\n },\n };\n }\n }\n }\n\n return { mode: Mode.NONE };\n};\n\nexport default function transpileScript(\n script: HTMLScriptElement,\n baseURI: string,\n opts: AssetsTranspilerOpts,\n): HTMLScriptElement {\n // Can't use script.src directly, because it will be resolved to absolute path by browser with Node.baseURI\n // Such as <script src=\"./foo.js\"></script> will be resolved to http://localhost:8000/foo.js while read script.src\n const srcAttribute = script.getAttribute('src');\n const { sandbox, fetch } = opts;\n\n const { mode, result } = preTranspile(\n {\n src: srcAttribute || undefined,\n type: script.type,\n textContent: script.textContent,\n },\n baseURI,\n opts,\n );\n\n switch (mode) {\n case Mode.REMOTE_FROM_SANDBOX: {\n const { src } = result;\n\n // We must remove script src to avoid self execution as we need to fetch the script content and transpile it\n script.removeAttribute('src');\n script.dataset.src = src;\n\n const syncMode = !script.hasAttribute('async');\n const priority: Priority = syncMode ? 'high' : 'low';\n const credentials = getCredentials(script.crossOrigin);\n\n void fetch(src, { credentials, priority })\n .then((res) => res.text())\n .then((code) => {\n const codeFactory = sandbox!.makeEvaluateFactory(code, src);\n\n // HTMLScriptElement default fetchPriority is 'auto', we should set it to 'high' to make it execute earlier while it's not async script\n if (syncMode) {\n script.fetchPriority = 'high';\n }\n\n script.src = URL.createObjectURL(new Blob([codeFactory], { type: 'text/javascript' }));\n });\n\n return script;\n }\n\n case Mode.INLINE_FROM_SANDBOX: {\n const rawNode = opts.rawNode as HTMLScriptElement;\n const scriptNode = script.textContent ? script : rawNode.childNodes[0];\n const { code } = result;\n\n scriptNode.textContent = sandbox!.makeEvaluateFactory(code, baseURI);\n // mark the script have consumed\n script.dataset.consumed = 'true';\n\n return script;\n }\n\n case Mode.CACHE_FROM_SANDBOX: {\n const { url, version, src } = result;\n\n script.dataset.src = src;\n script.dataset.version = version;\n\n const syncMode = !script.getAttribute('async');\n // HTMLScriptElement default fetchPriority is 'auto', we should set it to 'high' to make it execute earlier while it's not async script\n if (syncMode) {\n script.fetchPriority = 'high';\n }\n\n // When the script hits the dependency reuse logic, the current script is not executed, and an empty script is returned directly\n script.src = URL.createObjectURL(\n new Blob([`// ${src} is reusing the execution result of ${url}`], {\n type: 'text/javascript',\n }),\n );\n\n return script;\n }\n\n case Mode.NONE:\n default: {\n if (srcAttribute) {\n script.src = getEntireUrl(srcAttribute, baseURI);\n return script;\n }\n\n return script;\n }\n }\n\n // TODO find entry exports\n}\n"],"mappings":";;;;;;;;;AAMA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAD,OAAA;AARA;AACA;AACA;AACA;;AAOA,IAAME,qBAAqB,GAAG,SAAxBA,qBAAqBA,CAAIC,IAAa,EAAc;EACxD,IAAMC,WAAW,GAAG,CAClB,iBAAiB,EACjB,QAAQ,EACR,wBAAwB,EACxB,iBAAiB,EACjB,wBAAwB,CACzB;EACD,OAAO,CAACD,IAAI,IAAIC,WAAW,CAACC,OAAO,CAACF,IAAI,CAAC,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,IAAMG,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,WAA0B,EAA6C;EAC7F,QAAQA,WAAW;IACjB,KAAK,WAAW;MACd,OAAO,aAAa;IACtB,KAAK,iBAAiB;MACpB,OAAO,SAAS;IAClB;MACE,OAAOC,SAAS;EACpB;AACF,CAAC;AAQM,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CACvBC,MAAwE,EACxEC,OAAe,EACfC,IAA0B,EACH;EACvB,IAAQC,OAAO,GAAqBD,IAAI,CAAhCC,OAAO;IAAEC,cAAc,GAAKF,IAAI,CAAvBE,cAAc;EAE/B,IAAQC,GAAG,GAAWL,MAAM,CAApBK,GAAG;IAAEZ,IAAI,GAAKO,MAAM,CAAfP,IAAI;EAEjB,IAAIU,OAAO,EAAE;IACX,IAAIE,GAAG,EAAE;MACP,IAAMC,SAAS,GAAG,IAAAC,mBAAY,EAACF,GAAG,EAAEJ,OAAO,CAAC;MAC5C,IAAMO,aAAa,GAAGJ,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAGE,SAAS,CAAC;MACjD,IAAIE,aAAa,EAAE;QACjB,OAAO;UACLC,IAAI,EAAEC,WAAI,CAACC,kBAAkB;UAC7BC,MAAM,MAAAC,cAAA,CAAAC,OAAA;YAAIT,GAAG,EAAEC;UAAS,GAAKE,aAAa;QAC5C,CAAC;MACH;MAEA,OAAO;QACLC,IAAI,EAAEC,WAAI,CAACK,mBAAmB;QAC9BH,MAAM,EAAE;UAAEP,GAAG,EAAEC;QAAU;MAC3B,CAAC;IACH;IAEA,IAAId,qBAAqB,CAACC,IAAI,CAAC,EAAE;MAC/B,IAAMuB,OAAO,GAAGd,IAAI,CAACc,OAA4B;MACjD,IAAMC,UAAU,GAAGjB,MAAM,CAACkB,WAAW,GAAGlB,MAAM,GAAGgB,OAAO,CAACG,UAAU,CAAC,CAAC,CAAC;MAEtE,IAAMC,IAAI,GAAGH,UAAU,CAACC,WAAW;MACnC,IAAIE,IAAI,EAAE;QACR,OAAO;UACLX,IAAI,EAAEC,WAAI,CAACW,mBAAmB;UAC9BT,MAAM,EAAE;YACNQ,IAAI,EAAJA;UACF;QACF,CAAC;MACH;IACF;EACF;EAEA,OAAO;IAAEX,IAAI,EAAEC,WAAI,CAACY;EAAK,CAAC;AAC5B,CAAC;AAACC,OAAA,CAAAxB,YAAA,GAAAA,YAAA;AAEa,SAASyB,eAAeA,CACrCxB,MAAyB,EACzBC,OAAe,EACfC,IAA0B,EACP;EACnB;EACA;EACA,IAAMuB,YAAY,GAAGzB,MAAM,CAAC0B,YAAY,CAAC,KAAK,CAAC;EAC/C,IAAQvB,OAAO,GAAYD,IAAI,CAAvBC,OAAO;IAAEwB,KAAK,GAAKzB,IAAI,CAAdyB,KAAK;EAEtB,IAAAC,aAAA,GAAyB7B,YAAY,CACnC;MACEM,GAAG,EAAEoB,YAAY,IAAI3B,SAAS;MAC9BL,IAAI,EAAEO,MAAM,CAACP,IAAI;MACjByB,WAAW,EAAElB,MAAM,CAACkB;IACtB,CAAC,EACDjB,OAAO,EACPC,IACF,CAAC;IAROO,IAAI,GAAAmB,aAAA,CAAJnB,IAAI;IAAEG,MAAM,GAAAgB,aAAA,CAANhB,MAAM;EAUpB,QAAQH,IAAI;IACV,KAAKC,WAAI,CAACK,mBAAmB;MAAE;QAC7B,IAAQV,GAAG,GAAKO,MAAM,CAAdP,GAAG;;QAEX;QACAL,MAAM,CAAC6B,eAAe,CAAC,KAAK,CAAC;QAC7B7B,MAAM,CAAC8B,OAAO,CAACzB,GAAG,GAAGA,GAAG;QAExB,IAAM0B,QAAQ,GAAG,CAAC/B,MAAM,CAACgC,YAAY,CAAC,OAAO,CAAC;QAC9C,IAAMC,QAAkB,GAAGF,QAAQ,GAAG,MAAM,GAAG,KAAK;QACpD,IAAMG,WAAW,GAAGtC,cAAc,CAACI,MAAM,CAACH,WAAW,CAAC;QAEtD,KAAK8B,KAAK,CAACtB,GAAG,EAAE;UAAE6B,WAAW,EAAXA,WAAW;UAAED,QAAQ,EAARA;QAAS,CAAC,CAAC,CACvCE,IAAI,CAAC,UAACC,GAAG;UAAA,OAAKA,GAAG,CAACC,IAAI,CAAC,CAAC;QAAA,EAAC,CACzBF,IAAI,CAAC,UAACf,IAAI,EAAK;UACd,IAAMkB,WAAW,GAAGnC,OAAO,CAAEoC,mBAAmB,CAACnB,IAAI,EAAEf,GAAG,CAAC;;UAE3D;UACA,IAAI0B,QAAQ,EAAE;YACZ/B,MAAM,CAACwC,aAAa,GAAG,MAAM;UAC/B;UAEAxC,MAAM,CAACK,GAAG,GAAGoC,GAAG,CAACC,eAAe,CAAC,IAAIC,IAAI,CAAC,CAACL,WAAW,CAAC,EAAE;YAAE7C,IAAI,EAAE;UAAkB,CAAC,CAAC,CAAC;QACxF,CAAC,CAAC;QAEJ,OAAOO,MAAM;MACf;IAEA,KAAKU,WAAI,CAACW,mBAAmB;MAAE;QAC7B,IAAML,OAAO,GAAGd,IAAI,CAACc,OAA4B;QACjD,IAAMC,UAAU,GAAGjB,MAAM,CAACkB,WAAW,GAAGlB,MAAM,GAAGgB,OAAO,CAACG,UAAU,CAAC,CAAC,CAAC;QACtE,IAAQC,IAAI,GAAKR,MAAM,CAAfQ,IAAI;QAEZH,UAAU,CAACC,WAAW,GAAGf,OAAO,CAAEoC,mBAAmB,CAACnB,IAAI,EAAEnB,OAAO,CAAC;QACpE;QACAD,MAAM,CAAC8B,OAAO,CAACc,QAAQ,GAAG,MAAM;QAEhC,OAAO5C,MAAM;MACf;IAEA,KAAKU,WAAI,CAACC,kBAAkB;MAAE;QAC5B,IAAQkC,GAAG,GAAmBjC,MAAM,CAA5BiC,GAAG;UAAEC,OAAO,GAAUlC,MAAM,CAAvBkC,OAAO;UAAEzC,IAAG,GAAKO,MAAM,CAAdP,GAAG;QAEzBL,MAAM,CAAC8B,OAAO,CAACzB,GAAG,GAAGA,IAAG;QACxBL,MAAM,CAAC8B,OAAO,CAACgB,OAAO,GAAGA,OAAO;QAEhC,IAAMf,SAAQ,GAAG,CAAC/B,MAAM,CAAC0B,YAAY,CAAC,OAAO,CAAC;QAC9C;QACA,IAAIK,SAAQ,EAAE;UACZ/B,MAAM,CAACwC,aAAa,GAAG,MAAM;QAC/B;;QAEA;QACAxC,MAAM,CAACK,GAAG,GAAGoC,GAAG,CAACC,eAAe,CAC9B,IAAIC,IAAI,CAAC,OAAAI,MAAA,CAAO1C,IAAG,0CAAA0C,MAAA,CAAuCF,GAAG,EAAG,EAAE;UAChEpD,IAAI,EAAE;QACR,CAAC,CACH,CAAC;QAED,OAAOO,MAAM;MACf;IAEA,KAAKU,WAAI,CAACY,IAAI;IACd;MAAS;QACP,IAAIG,YAAY,EAAE;UAChBzB,MAAM,CAACK,GAAG,GAAG,IAAAE,mBAAY,EAACkB,YAAY,EAAExB,OAAO,CAAC;UAChD,OAAOD,MAAM;QACf;QAEA,OAAOA,MAAM;MACf;EACF;;EAEA;AACF"}
|
|
@@ -2,11 +2,19 @@
|
|
|
2
2
|
* @author Kuitos
|
|
3
3
|
* @since 2023-08-26
|
|
4
4
|
*/
|
|
5
|
+
import type { Sandbox } from '@qiankunjs/sandbox';
|
|
5
6
|
import type { BaseLoaderOpts } from '../common';
|
|
6
7
|
import type { MatchResult } from '../module-resolver';
|
|
7
8
|
export type BaseTranspilerOpts = BaseLoaderOpts & {
|
|
8
9
|
moduleResolver?: (url: string) => MatchResult | undefined;
|
|
10
|
+
sandbox?: Sandbox;
|
|
9
11
|
};
|
|
10
12
|
export type AssetsTranspilerOpts = BaseTranspilerOpts & {
|
|
11
13
|
rawNode: Node;
|
|
12
14
|
};
|
|
15
|
+
export declare enum Mode {
|
|
16
|
+
REMOTE_FROM_SANDBOX = "REMOTE_FROM_SANDBOX",
|
|
17
|
+
CACHE_FROM_SANDBOX = "CACHE_IN_SANDBOX",
|
|
18
|
+
INLINE_FROM_SANDBOX = "INLINE_FROM_SANDBOX",
|
|
19
|
+
NONE = "NONE"
|
|
20
|
+
}
|
|
@@ -3,4 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.Mode = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* @author Kuitos
|
|
9
|
+
* @since 2023-08-26
|
|
10
|
+
*/
|
|
11
|
+
var Mode = /*#__PURE__*/function (Mode) {
|
|
12
|
+
Mode["REMOTE_FROM_SANDBOX"] = "REMOTE_FROM_SANDBOX";
|
|
13
|
+
Mode["CACHE_FROM_SANDBOX"] = "CACHE_IN_SANDBOX";
|
|
14
|
+
Mode["INLINE_FROM_SANDBOX"] = "INLINE_FROM_SANDBOX";
|
|
15
|
+
Mode["NONE"] = "NONE";
|
|
16
|
+
return Mode;
|
|
17
|
+
}({});
|
|
18
|
+
exports.Mode = Mode;
|
|
6
19
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../../src/assets-transpilers/types.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-08-26\n */\nimport type { BaseLoaderOpts } from '../common';\n\nimport type { MatchResult } from '../module-resolver';\n\nexport type BaseTranspilerOpts = BaseLoaderOpts & {
|
|
1
|
+
{"version":3,"names":["Mode","exports"],"sources":["../../../src/assets-transpilers/types.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-08-26\n */\nimport type { Sandbox } from '@qiankunjs/sandbox';\nimport type { BaseLoaderOpts } from '../common';\n\nimport type { MatchResult } from '../module-resolver';\n\nexport type BaseTranspilerOpts = BaseLoaderOpts & {\n moduleResolver?: (url: string) => MatchResult | undefined;\n sandbox?: Sandbox;\n};\n\nexport type AssetsTranspilerOpts = BaseTranspilerOpts & { rawNode: Node };\n\nexport enum Mode {\n REMOTE_FROM_SANDBOX = 'REMOTE_FROM_SANDBOX',\n CACHE_FROM_SANDBOX = 'CACHE_IN_SANDBOX',\n INLINE_FROM_SANDBOX = 'INLINE_FROM_SANDBOX',\n NONE = 'NONE',\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AAHA,IAgBYA,IAAI,0BAAJA,IAAI;EAAJA,IAAI;EAAJA,IAAI;EAAJA,IAAI;EAAJA,IAAI;EAAA,OAAJA,IAAI;AAAA;AAAAC,OAAA,CAAAD,IAAA,GAAAA,IAAA"}
|
package/dist/cjs/common.d.ts
CHANGED
package/dist/cjs/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../src/common.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/common.ts"],"sourcesContent":["export type BaseLoaderOpts = {\n fetch: typeof window.fetch;\n};\n"],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.QiankunError = void 0;
|
|
8
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
11
|
+
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
12
|
+
var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
|
|
13
|
+
var QiankunError = /*#__PURE__*/function (_Error) {
|
|
14
|
+
(0, _inherits2.default)(QiankunError, _Error);
|
|
15
|
+
var _super = (0, _createSuper2.default)(QiankunError);
|
|
16
|
+
function QiankunError(message) {
|
|
17
|
+
(0, _classCallCheck2.default)(this, QiankunError);
|
|
18
|
+
return _super.call(this, "[qiankun]: ".concat(message));
|
|
19
|
+
}
|
|
20
|
+
return (0, _createClass2.default)(QiankunError);
|
|
21
|
+
}( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
|
|
22
|
+
exports.QiankunError = QiankunError;
|
|
23
|
+
//# sourceMappingURL=QiankunError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["QiankunError","_Error","_inherits2","default","_super","_createSuper2","message","_classCallCheck2","call","concat","_createClass2","_wrapNativeSuper2","Error","exports"],"sources":["../../../src/error/QiankunError.ts"],"sourcesContent":["export class QiankunError extends Error {\n constructor(message: string) {\n super(`[qiankun]: ${message}`);\n }\n}\n"],"mappings":";;;;;;;;;;;;IAAaA,YAAY,0BAAAC,MAAA;EAAA,IAAAC,UAAA,CAAAC,OAAA,EAAAH,YAAA,EAAAC,MAAA;EAAA,IAAAG,MAAA,OAAAC,aAAA,CAAAF,OAAA,EAAAH,YAAA;EACvB,SAAAA,aAAYM,OAAe,EAAE;IAAA,IAAAC,gBAAA,CAAAJ,OAAA,QAAAH,YAAA;IAAA,OAAAI,MAAA,CAAAI,IAAA,qBAAAC,MAAA,CACPH,OAAO;EAC7B;EAAC,WAAAI,aAAA,CAAAP,OAAA,EAAAH,YAAA;AAAA,oBAAAW,iBAAA,CAAAR,OAAA,EAH+BS,KAAK;AAAAC,OAAA,CAAAb,YAAA,GAAAA,YAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { QiankunError } from './QiankunError';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "QiankunError", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _QiankunError.QiankunError;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
var _QiankunError = require("./QiankunError");
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_QiankunError","require"],"sources":["../../../src/error/index.ts"],"sourcesContent":["export { QiankunError } from './QiankunError';\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA"}
|
package/dist/cjs/index.d.ts
CHANGED
package/dist/cjs/index.js
CHANGED
|
@@ -47,4 +47,15 @@ Object.keys(_common).forEach(function (key) {
|
|
|
47
47
|
}
|
|
48
48
|
});
|
|
49
49
|
});
|
|
50
|
+
var _error = require("./error");
|
|
51
|
+
Object.keys(_error).forEach(function (key) {
|
|
52
|
+
if (key === "default" || key === "__esModule") return;
|
|
53
|
+
if (key in exports && exports[key] === _error[key]) return;
|
|
54
|
+
Object.defineProperty(exports, key, {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function get() {
|
|
57
|
+
return _error[key];
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
});
|
|
50
61
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_assetsTranspilers","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_utils","_moduleResolver","_common"],"sources":["../../src/index.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-05-06\n */\nexport * from './assets-transpilers';\nexport * from './utils';\nexport * from './module-resolver';\nexport * from './common';\n"],"mappings":";;;;;AAIA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,kBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,MAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,MAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,MAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,MAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,eAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,eAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,eAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,eAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,OAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,OAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,OAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAG,OAAA,CAAAP,GAAA;IAAA;EAAA;AAAA"}
|
|
1
|
+
{"version":3,"names":["_assetsTranspilers","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_utils","_moduleResolver","_common","_error"],"sources":["../../src/index.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-05-06\n */\nexport * from './assets-transpilers';\nexport * from './utils';\nexport * from './module-resolver';\nexport * from './common';\nexport * from './error';\n"],"mappings":";;;;;AAIA,IAAAA,kBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,kBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,kBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,kBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,MAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,MAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,MAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAC,MAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,eAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,eAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,eAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAE,eAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,OAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,OAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,OAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAG,OAAA,CAAAP,GAAA;IAAA;EAAA;AAAA;AACA,IAAAQ,MAAA,GAAAZ,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAU,MAAA,EAAAT,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAQ,MAAA,CAAAR,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAI,MAAA,CAAAR,GAAA;IAAA;EAAA;AAAA"}
|
|
@@ -6,6 +6,7 @@ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
|
6
6
|
|
|
7
7
|
import { getEntireUrl } from "../utils";
|
|
8
8
|
import { preTranspile as preTranspileScript } from "./script";
|
|
9
|
+
import { Mode } from "./types";
|
|
9
10
|
var preTranspile = function preTranspile(link, baseURI, opts) {
|
|
10
11
|
var sandbox = opts.sandbox,
|
|
11
12
|
moduleResolver = opts.moduleResolver;
|
|
@@ -16,7 +17,7 @@ var preTranspile = function preTranspile(link, baseURI, opts) {
|
|
|
16
17
|
var matchedAssets = moduleResolver === null || moduleResolver === void 0 ? void 0 : moduleResolver(linkHref);
|
|
17
18
|
if (matchedAssets) {
|
|
18
19
|
return {
|
|
19
|
-
mode:
|
|
20
|
+
mode: Mode.CACHE_FROM_SANDBOX,
|
|
20
21
|
result: _objectSpread({
|
|
21
22
|
src: linkHref
|
|
22
23
|
}, matchedAssets)
|
|
@@ -25,7 +26,7 @@ var preTranspile = function preTranspile(link, baseURI, opts) {
|
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
return {
|
|
28
|
-
mode:
|
|
29
|
+
mode: Mode.NONE
|
|
29
30
|
};
|
|
30
31
|
};
|
|
31
32
|
|
|
@@ -56,16 +57,22 @@ var postProcessPreloadLink = function postProcessPreloadLink(link, baseURI, opts
|
|
|
56
57
|
}, baseURI, opts),
|
|
57
58
|
mode = _preTranspileScript.mode,
|
|
58
59
|
result = _preTranspileScript.result;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
60
|
+
switch (mode) {
|
|
61
|
+
case Mode.REMOTE_FROM_SANDBOX:
|
|
62
|
+
{
|
|
63
|
+
link.as = 'fetch';
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
case Mode.CACHE_FROM_SANDBOX:
|
|
67
|
+
{
|
|
68
|
+
var url = result.url;
|
|
69
|
+
var objectURL = URL.createObjectURL(new Blob(["// ".concat(href, " is reusing the execution result of ").concat(url)], {
|
|
70
|
+
type: 'text/javascript'
|
|
71
|
+
}));
|
|
72
|
+
link.href = objectURL;
|
|
73
|
+
revokeAfterLoaded(objectURL, link);
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
69
76
|
}
|
|
70
77
|
break;
|
|
71
78
|
}
|
|
@@ -76,13 +83,17 @@ var postProcessPreloadLink = function postProcessPreloadLink(link, baseURI, opts
|
|
|
76
83
|
}, baseURI, opts),
|
|
77
84
|
_mode = _preTranspile.mode,
|
|
78
85
|
_result = _preTranspile.result;
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
+
switch (_mode) {
|
|
87
|
+
case Mode.CACHE_FROM_SANDBOX:
|
|
88
|
+
{
|
|
89
|
+
var _url = _result.url;
|
|
90
|
+
var _objectURL = URL.createObjectURL(new Blob(["// ".concat(href, " is reusing the execution result of ").concat(_url)], {
|
|
91
|
+
type: 'text/css'
|
|
92
|
+
}));
|
|
93
|
+
link.href = _objectURL;
|
|
94
|
+
revokeAfterLoaded(_objectURL, link);
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
86
97
|
}
|
|
87
98
|
break;
|
|
88
99
|
}
|
|
@@ -98,7 +109,7 @@ export default function transpileLink(link, baseURI, opts) {
|
|
|
98
109
|
mode = _preTranspile2.mode,
|
|
99
110
|
result = _preTranspile2.result;
|
|
100
111
|
switch (mode) {
|
|
101
|
-
case
|
|
112
|
+
case Mode.CACHE_FROM_SANDBOX:
|
|
102
113
|
{
|
|
103
114
|
var src = result.src,
|
|
104
115
|
version = result.version,
|
|
@@ -110,7 +121,7 @@ export default function transpileLink(link, baseURI, opts) {
|
|
|
110
121
|
}));
|
|
111
122
|
return link;
|
|
112
123
|
}
|
|
113
|
-
case
|
|
124
|
+
case Mode.NONE:
|
|
114
125
|
default:
|
|
115
126
|
{
|
|
116
127
|
if (hrefAttribute) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["getEntireUrl","preTranspile","preTranspileScript","link","baseURI","opts","sandbox","moduleResolver","href","linkHref","matchedAssets","mode","result","_objectSpread","src","postProcessPreloadLink","as","revokeAfterLoaded","objectURL","revoke","URL","revokeObjectURL","addEventListener","once","_preTranspileScript","url","createObjectURL","Blob","concat","type","_preTranspile","transpileLink","hrefAttribute","getAttribute","_preTranspile2","undefined","version","dataset","rel"],"sources":["../../../src/assets-transpilers/link.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-04-26\n */\nimport type { MatchResult } from '../module-resolver';\nimport { getEntireUrl } from '../utils';\nimport { preTranspile as preTranspileScript } from './script';\nimport type { AssetsTranspilerOpts, BaseTranspilerOpts } from './types';\n\ntype PreTranspileResult
|
|
1
|
+
{"version":3,"names":["getEntireUrl","preTranspile","preTranspileScript","Mode","link","baseURI","opts","sandbox","moduleResolver","href","linkHref","matchedAssets","mode","CACHE_FROM_SANDBOX","result","_objectSpread","src","NONE","postProcessPreloadLink","as","revokeAfterLoaded","objectURL","revoke","URL","revokeObjectURL","addEventListener","once","_preTranspileScript","REMOTE_FROM_SANDBOX","url","createObjectURL","Blob","concat","type","_preTranspile","transpileLink","hrefAttribute","getAttribute","_preTranspile2","undefined","version","dataset","rel"],"sources":["../../../src/assets-transpilers/link.ts"],"sourcesContent":["/**\n * @author Kuitos\n * @since 2023-04-26\n */\nimport type { MatchResult } from '../module-resolver';\nimport { getEntireUrl } from '../utils';\nimport { preTranspile as preTranspileScript } from './script';\nimport type { AssetsTranspilerOpts, BaseTranspilerOpts } from './types';\nimport { Mode } from './types';\n\ntype PreTranspileResult =\n | { mode: Mode.CACHE_FROM_SANDBOX; result: { src: string } & MatchResult }\n | { mode: Mode.NONE; result?: never };\nconst preTranspile = (\n link: Partial<Pick<HTMLLinkElement, 'href'>>,\n baseURI: string,\n opts: BaseTranspilerOpts,\n): PreTranspileResult => {\n const { sandbox, moduleResolver } = opts;\n const { href } = link;\n\n if (sandbox) {\n if (href) {\n const linkHref = getEntireUrl(href, baseURI);\n\n const matchedAssets = moduleResolver?.(linkHref);\n if (matchedAssets) {\n return {\n mode: Mode.CACHE_FROM_SANDBOX,\n result: { src: linkHref, ...matchedAssets },\n };\n }\n }\n }\n\n return {\n mode: Mode.NONE,\n };\n};\n\n/**\n * While the assets are transpiling in sandbox, it means they will be evaluated with manual fetching,\n * thus we need to set the attribute `as` to fetch instead of script or style to avoid preload cache missing.\n * see https://stackoverflow.com/questions/52635660/can-link-rel-preload-be-made-to-work-with-fetch/63814972#63814972\n */\nconst postProcessPreloadLink = (link: HTMLLinkElement, baseURI: string, opts: AssetsTranspilerOpts): void => {\n const { as, href } = link;\n\n const revokeAfterLoaded = (objectURL: string, link: HTMLLinkElement) => {\n const revoke = () => URL.revokeObjectURL(objectURL);\n link.addEventListener('load', revoke, { once: true });\n link.addEventListener('error', revoke, { once: true });\n };\n\n switch (as) {\n case 'script': {\n const { mode, result } = preTranspileScript({ src: href }, baseURI, opts);\n\n switch (mode) {\n case Mode.REMOTE_FROM_SANDBOX: {\n link.as = 'fetch';\n break;\n }\n\n case Mode.CACHE_FROM_SANDBOX: {\n const { url } = result;\n const objectURL = URL.createObjectURL(\n new Blob([`// ${href} is reusing the execution result of ${url}`], {\n type: 'text/javascript',\n }),\n );\n link.href = objectURL;\n revokeAfterLoaded(objectURL, link);\n\n break;\n }\n }\n\n break;\n }\n\n case 'style': {\n const { mode, result } = preTranspile({ href }, baseURI, opts);\n\n switch (mode) {\n case Mode.CACHE_FROM_SANDBOX: {\n const { url } = result;\n const objectURL = URL.createObjectURL(\n new Blob([`// ${href} is reusing the execution result of ${url}`], {\n type: 'text/css',\n }),\n );\n link.href = objectURL;\n revokeAfterLoaded(objectURL, link);\n break;\n }\n }\n\n break;\n }\n\n default:\n break;\n }\n};\n\nexport default function transpileLink(\n link: HTMLLinkElement,\n baseURI: string,\n opts: AssetsTranspilerOpts,\n): HTMLLinkElement {\n const hrefAttribute = link.getAttribute('href');\n const { mode, result } = preTranspile(\n {\n href: hrefAttribute || undefined,\n },\n baseURI,\n opts,\n );\n\n switch (mode) {\n case Mode.CACHE_FROM_SANDBOX: {\n const { src, version, url } = result;\n link.dataset.href = src;\n link.dataset.version = version;\n link.href = URL.createObjectURL(\n new Blob([`// ${src} is reusing the execution result of ${url}`], {\n type: 'text/css',\n }),\n );\n\n return link;\n }\n\n case Mode.NONE:\n default: {\n if (hrefAttribute) {\n link.href = getEntireUrl(hrefAttribute, baseURI);\n\n if (link.rel === 'preload') {\n postProcessPreloadLink(link, baseURI, opts);\n }\n\n return link;\n }\n\n return link;\n }\n }\n}\n"],"mappings":"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"}
|