@module-federation/data-prefetch 0.22.0 → 0.23.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/plugin.cjs.cjs +3 -0
- package/dist/plugin.cjs.cjs.map +1 -1
- package/dist/plugin.esm.js +3 -0
- package/dist/plugin.esm.js.map +1 -1
- package/package.json +3 -3
package/dist/plugin.cjs.cjs
CHANGED
|
@@ -14,6 +14,9 @@ const prefetchPlugin = () => ({
|
|
|
14
14
|
name: 'data-prefetch-runtime-plugin',
|
|
15
15
|
initContainer(options) {
|
|
16
16
|
const { remoteSnapshot, remoteInfo, id, origin } = options;
|
|
17
|
+
if (!id) {
|
|
18
|
+
return options;
|
|
19
|
+
}
|
|
17
20
|
const snapshot = remoteSnapshot;
|
|
18
21
|
const { name } = remoteInfo;
|
|
19
22
|
const prefetchOptions = {
|
package/dist/plugin.cjs.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.cjs.cjs","sources":["../src/plugin.ts"],"sourcesContent":["import { __awaiter } from \"tslib\";\nimport { getResourceUrl } from '@module-federation/sdk';\nimport { getSignalFromManifest } from './common/runtime-utils';\nimport { MFDataPrefetch } from './prefetch';\nimport logger from './logger';\nimport { SHARED_STRATEGY } from './constant';\nconst loadingArray = [];\nlet sharedFlag = SHARED_STRATEGY;\nexport const prefetchPlugin = () => ({\n name: 'data-prefetch-runtime-plugin',\n initContainer(options) {\n const { remoteSnapshot, remoteInfo, id, origin } = options;\n const snapshot = remoteSnapshot;\n const { name } = remoteInfo;\n const prefetchOptions = {\n name,\n remote: remoteInfo,\n origin,\n remoteSnapshot: snapshot,\n };\n const signal = getSignalFromManifest(snapshot);\n if (!signal) {\n return options;\n }\n if (sharedFlag !== SHARED_STRATEGY) {\n throw new Error(`[Module Federation Data Prefetch]: If you want to use data prefetch, the shared strategy must be 'loaded-first'`);\n }\n const instance = MFDataPrefetch.getInstance(name) || new MFDataPrefetch(prefetchOptions);\n let prefetchUrl;\n if (snapshot.prefetchEntry) {\n prefetchUrl = getResourceUrl(snapshot, snapshot.prefetchEntry);\n }\n const exist = loadingArray.find((loading) => loading.id === id);\n if (exist) {\n return options;\n }\n const promise = instance.loadEntry(prefetchUrl).then(() => __awaiter(this, void 0, void 0, function* () {\n const projectExports = instance.getProjectExports();\n if (projectExports instanceof Promise) {\n yield projectExports;\n }\n return Promise.resolve().then(() => {\n const exports = instance.getExposeExports(id);\n logger.info(`1. Start Prefetch initContainer: ${id} - ${performance.now()}`);\n const result = Object.keys(exports).map((k) => {\n const value = instance.prefetch({\n id,\n functionId: k,\n });\n const functionId = k;\n return {\n value,\n functionId,\n };\n });\n return result;\n });\n }));\n loadingArray.push({\n id,\n promise,\n });\n return options;\n },\n afterResolve(options) {\n const { remoteSnapshot, remoteInfo, id, origin } = options;\n const snapshot = remoteSnapshot;\n const { name } = remoteInfo;\n const prefetchOptions = {\n name,\n remote: remoteInfo,\n origin,\n remoteSnapshot: snapshot,\n };\n const signal = getSignalFromManifest(snapshot);\n if (!signal) {\n return options;\n }\n const inited = loadingArray.some((info) => info.id === id);\n if (!inited) {\n return options;\n }\n if (sharedFlag !== SHARED_STRATEGY) {\n throw new Error(`[Module Federation Data Prefetch]: If you want to use data prefetch, the shared strategy must be 'loaded-first'`);\n }\n const instance = MFDataPrefetch.getInstance(name) || new MFDataPrefetch(prefetchOptions);\n let prefetchUrl;\n if (snapshot.prefetchEntry) {\n prefetchUrl = getResourceUrl(snapshot, snapshot.prefetchEntry);\n }\n const index = loadingArray.findIndex((loading) => loading.id === id);\n if (index !== -1) {\n loadingArray.splice(index, 1);\n }\n const promise = instance.loadEntry(prefetchUrl).then(() => __awaiter(this, void 0, void 0, function* () {\n const projectExports = instance.getProjectExports();\n if (projectExports instanceof Promise) {\n yield projectExports;\n }\n return Promise.resolve().then(() => {\n const exports = instance.getExposeExports(id);\n logger.info(`1. Start Prefetch afterResolve: ${id} - ${performance.now()}`);\n const result = Object.keys(exports).map((k) => {\n const value = instance.prefetch({\n id,\n functionId: k,\n });\n const functionId = k;\n return {\n value,\n functionId,\n };\n });\n return result;\n });\n }));\n loadingArray.push({\n id,\n promise,\n });\n return options;\n },\n onLoad(options) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const { remote, id } = options;\n const { name } = remote;\n const promise = (_a = loadingArray.find((loading) => loading.id === id)) === null || _a === void 0 ? void 0 : _a.promise;\n if (promise) {\n const prefetch = yield promise;\n const prefetchValue = prefetch.map((result) => result.value);\n yield Promise.all(prefetchValue);\n const instance = MFDataPrefetch.getInstance(name);\n prefetch.forEach((result) => {\n const { value, functionId } = result;\n instance.memorize(id + functionId, value);\n });\n }\n return options;\n });\n },\n beforeLoadShare(options) {\n const shareInfo = options.shareInfo;\n sharedFlag = (shareInfo === null || shareInfo === void 0 ? void 0 : shareInfo.strategy) || sharedFlag;\n return options;\n },\n});\nexport default prefetchPlugin;\n"],"names":["SHARED_STRATEGY","getSignalFromManifest","MFDataPrefetch","getResourceUrl","__awaiter","logger","index","prefetch"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.cjs.cjs","sources":["../src/plugin.ts"],"sourcesContent":["import { __awaiter } from \"tslib\";\nimport { getResourceUrl } from '@module-federation/sdk';\nimport { getSignalFromManifest } from './common/runtime-utils';\nimport { MFDataPrefetch } from './prefetch';\nimport logger from './logger';\nimport { SHARED_STRATEGY } from './constant';\nconst loadingArray = [];\nlet sharedFlag = SHARED_STRATEGY;\nexport const prefetchPlugin = () => ({\n name: 'data-prefetch-runtime-plugin',\n initContainer(options) {\n const { remoteSnapshot, remoteInfo, id, origin } = options;\n if (!id) {\n return options;\n }\n const snapshot = remoteSnapshot;\n const { name } = remoteInfo;\n const prefetchOptions = {\n name,\n remote: remoteInfo,\n origin,\n remoteSnapshot: snapshot,\n };\n const signal = getSignalFromManifest(snapshot);\n if (!signal) {\n return options;\n }\n if (sharedFlag !== SHARED_STRATEGY) {\n throw new Error(`[Module Federation Data Prefetch]: If you want to use data prefetch, the shared strategy must be 'loaded-first'`);\n }\n const instance = MFDataPrefetch.getInstance(name) || new MFDataPrefetch(prefetchOptions);\n let prefetchUrl;\n if (snapshot.prefetchEntry) {\n prefetchUrl = getResourceUrl(snapshot, snapshot.prefetchEntry);\n }\n const exist = loadingArray.find((loading) => loading.id === id);\n if (exist) {\n return options;\n }\n const promise = instance.loadEntry(prefetchUrl).then(() => __awaiter(this, void 0, void 0, function* () {\n const projectExports = instance.getProjectExports();\n if (projectExports instanceof Promise) {\n yield projectExports;\n }\n return Promise.resolve().then(() => {\n const exports = instance.getExposeExports(id);\n logger.info(`1. Start Prefetch initContainer: ${id} - ${performance.now()}`);\n const result = Object.keys(exports).map((k) => {\n const value = instance.prefetch({\n id,\n functionId: k,\n });\n const functionId = k;\n return {\n value,\n functionId,\n };\n });\n return result;\n });\n }));\n loadingArray.push({\n id,\n promise,\n });\n return options;\n },\n afterResolve(options) {\n const { remoteSnapshot, remoteInfo, id, origin } = options;\n const snapshot = remoteSnapshot;\n const { name } = remoteInfo;\n const prefetchOptions = {\n name,\n remote: remoteInfo,\n origin,\n remoteSnapshot: snapshot,\n };\n const signal = getSignalFromManifest(snapshot);\n if (!signal) {\n return options;\n }\n const inited = loadingArray.some((info) => info.id === id);\n if (!inited) {\n return options;\n }\n if (sharedFlag !== SHARED_STRATEGY) {\n throw new Error(`[Module Federation Data Prefetch]: If you want to use data prefetch, the shared strategy must be 'loaded-first'`);\n }\n const instance = MFDataPrefetch.getInstance(name) || new MFDataPrefetch(prefetchOptions);\n let prefetchUrl;\n if (snapshot.prefetchEntry) {\n prefetchUrl = getResourceUrl(snapshot, snapshot.prefetchEntry);\n }\n const index = loadingArray.findIndex((loading) => loading.id === id);\n if (index !== -1) {\n loadingArray.splice(index, 1);\n }\n const promise = instance.loadEntry(prefetchUrl).then(() => __awaiter(this, void 0, void 0, function* () {\n const projectExports = instance.getProjectExports();\n if (projectExports instanceof Promise) {\n yield projectExports;\n }\n return Promise.resolve().then(() => {\n const exports = instance.getExposeExports(id);\n logger.info(`1. Start Prefetch afterResolve: ${id} - ${performance.now()}`);\n const result = Object.keys(exports).map((k) => {\n const value = instance.prefetch({\n id,\n functionId: k,\n });\n const functionId = k;\n return {\n value,\n functionId,\n };\n });\n return result;\n });\n }));\n loadingArray.push({\n id,\n promise,\n });\n return options;\n },\n onLoad(options) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const { remote, id } = options;\n const { name } = remote;\n const promise = (_a = loadingArray.find((loading) => loading.id === id)) === null || _a === void 0 ? void 0 : _a.promise;\n if (promise) {\n const prefetch = yield promise;\n const prefetchValue = prefetch.map((result) => result.value);\n yield Promise.all(prefetchValue);\n const instance = MFDataPrefetch.getInstance(name);\n prefetch.forEach((result) => {\n const { value, functionId } = result;\n instance.memorize(id + functionId, value);\n });\n }\n return options;\n });\n },\n beforeLoadShare(options) {\n const shareInfo = options.shareInfo;\n sharedFlag = (shareInfo === null || shareInfo === void 0 ? void 0 : shareInfo.strategy) || sharedFlag;\n return options;\n },\n});\nexport default prefetchPlugin;\n"],"names":["SHARED_STRATEGY","getSignalFromManifest","MFDataPrefetch","getResourceUrl","__awaiter","logger","index","prefetch"],"mappings":"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"}
|
package/dist/plugin.esm.js
CHANGED
|
@@ -10,6 +10,9 @@ const prefetchPlugin = () => ({
|
|
|
10
10
|
name: 'data-prefetch-runtime-plugin',
|
|
11
11
|
initContainer(options) {
|
|
12
12
|
const { remoteSnapshot, remoteInfo, id, origin } = options;
|
|
13
|
+
if (!id) {
|
|
14
|
+
return options;
|
|
15
|
+
}
|
|
13
16
|
const snapshot = remoteSnapshot;
|
|
14
17
|
const { name } = remoteInfo;
|
|
15
18
|
const prefetchOptions = {
|
package/dist/plugin.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"sourcesContent":["import { __awaiter } from \"tslib\";\nimport { getResourceUrl } from '@module-federation/sdk';\nimport { getSignalFromManifest } from './common/runtime-utils';\nimport { MFDataPrefetch } from './prefetch';\nimport logger from './logger';\nimport { SHARED_STRATEGY } from './constant';\nconst loadingArray = [];\nlet sharedFlag = SHARED_STRATEGY;\nexport const prefetchPlugin = () => ({\n name: 'data-prefetch-runtime-plugin',\n initContainer(options) {\n const { remoteSnapshot, remoteInfo, id, origin } = options;\n const snapshot = remoteSnapshot;\n const { name } = remoteInfo;\n const prefetchOptions = {\n name,\n remote: remoteInfo,\n origin,\n remoteSnapshot: snapshot,\n };\n const signal = getSignalFromManifest(snapshot);\n if (!signal) {\n return options;\n }\n if (sharedFlag !== SHARED_STRATEGY) {\n throw new Error(`[Module Federation Data Prefetch]: If you want to use data prefetch, the shared strategy must be 'loaded-first'`);\n }\n const instance = MFDataPrefetch.getInstance(name) || new MFDataPrefetch(prefetchOptions);\n let prefetchUrl;\n if (snapshot.prefetchEntry) {\n prefetchUrl = getResourceUrl(snapshot, snapshot.prefetchEntry);\n }\n const exist = loadingArray.find((loading) => loading.id === id);\n if (exist) {\n return options;\n }\n const promise = instance.loadEntry(prefetchUrl).then(() => __awaiter(this, void 0, void 0, function* () {\n const projectExports = instance.getProjectExports();\n if (projectExports instanceof Promise) {\n yield projectExports;\n }\n return Promise.resolve().then(() => {\n const exports = instance.getExposeExports(id);\n logger.info(`1. Start Prefetch initContainer: ${id} - ${performance.now()}`);\n const result = Object.keys(exports).map((k) => {\n const value = instance.prefetch({\n id,\n functionId: k,\n });\n const functionId = k;\n return {\n value,\n functionId,\n };\n });\n return result;\n });\n }));\n loadingArray.push({\n id,\n promise,\n });\n return options;\n },\n afterResolve(options) {\n const { remoteSnapshot, remoteInfo, id, origin } = options;\n const snapshot = remoteSnapshot;\n const { name } = remoteInfo;\n const prefetchOptions = {\n name,\n remote: remoteInfo,\n origin,\n remoteSnapshot: snapshot,\n };\n const signal = getSignalFromManifest(snapshot);\n if (!signal) {\n return options;\n }\n const inited = loadingArray.some((info) => info.id === id);\n if (!inited) {\n return options;\n }\n if (sharedFlag !== SHARED_STRATEGY) {\n throw new Error(`[Module Federation Data Prefetch]: If you want to use data prefetch, the shared strategy must be 'loaded-first'`);\n }\n const instance = MFDataPrefetch.getInstance(name) || new MFDataPrefetch(prefetchOptions);\n let prefetchUrl;\n if (snapshot.prefetchEntry) {\n prefetchUrl = getResourceUrl(snapshot, snapshot.prefetchEntry);\n }\n const index = loadingArray.findIndex((loading) => loading.id === id);\n if (index !== -1) {\n loadingArray.splice(index, 1);\n }\n const promise = instance.loadEntry(prefetchUrl).then(() => __awaiter(this, void 0, void 0, function* () {\n const projectExports = instance.getProjectExports();\n if (projectExports instanceof Promise) {\n yield projectExports;\n }\n return Promise.resolve().then(() => {\n const exports = instance.getExposeExports(id);\n logger.info(`1. Start Prefetch afterResolve: ${id} - ${performance.now()}`);\n const result = Object.keys(exports).map((k) => {\n const value = instance.prefetch({\n id,\n functionId: k,\n });\n const functionId = k;\n return {\n value,\n functionId,\n };\n });\n return result;\n });\n }));\n loadingArray.push({\n id,\n promise,\n });\n return options;\n },\n onLoad(options) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const { remote, id } = options;\n const { name } = remote;\n const promise = (_a = loadingArray.find((loading) => loading.id === id)) === null || _a === void 0 ? void 0 : _a.promise;\n if (promise) {\n const prefetch = yield promise;\n const prefetchValue = prefetch.map((result) => result.value);\n yield Promise.all(prefetchValue);\n const instance = MFDataPrefetch.getInstance(name);\n prefetch.forEach((result) => {\n const { value, functionId } = result;\n instance.memorize(id + functionId, value);\n });\n }\n return options;\n });\n },\n beforeLoadShare(options) {\n const shareInfo = options.shareInfo;\n sharedFlag = (shareInfo === null || shareInfo === void 0 ? void 0 : shareInfo.strategy) || sharedFlag;\n return options;\n },\n});\nexport default prefetchPlugin;\n"],"names":[],"mappings":";;;;;;AAMA,MAAM,YAAY,GAAG,EAAE;AACvB,IAAI,UAAU,GAAG,eAAe;AACpB,MAAC,cAAc,GAAG,OAAO;AACrC,IAAI,IAAI,EAAE,8BAA8B;AACxC,IAAI,aAAa,CAAC,OAAO,EAAE;AAC3B,QAAQ,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO;AAClE,QAAQ,MAAM,QAAQ,GAAG,cAAc;AACvC,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU;AACnC,QAAQ,MAAM,eAAe,GAAG;AAChC,YAAY,IAAI;AAChB,YAAY,MAAM,EAAE,UAAU;AAC9B,YAAY,MAAM;AAClB,YAAY,cAAc,EAAE,QAAQ;AACpC,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC;AACtD,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,UAAU,KAAK,eAAe,EAAE;AAC5C,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,+GAA+G,CAAC,CAAC;AAC9I;AACA,QAAQ,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,eAAe,CAAC;AAChG,QAAQ,IAAI,WAAW;AACvB,QAAQ,IAAI,QAAQ,CAAC,aAAa,EAAE;AACpC,YAAY,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC;AAC1E;AACA,QAAQ,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;AACvE,QAAQ,IAAI,KAAK,EAAE;AACnB,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAChH,YAAY,MAAM,cAAc,GAAG,QAAQ,CAAC,iBAAiB,EAAE;AAC/D,YAAY,IAAI,cAAc,YAAY,OAAO,EAAE;AACnD,gBAAgB,MAAM,cAAc;AACpC;AACA,YAAY,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM;AAChD,gBAAgB,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;AAC7D,gBAAgB,MAAM,CAAC,IAAI,CAAC,CAAC,iCAAiC,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5F,gBAAgB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC/D,oBAAoB,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC;AACpD,wBAAwB,EAAE;AAC1B,wBAAwB,UAAU,EAAE,CAAC;AACrC,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,UAAU,GAAG,CAAC;AACxC,oBAAoB,OAAO;AAC3B,wBAAwB,KAAK;AAC7B,wBAAwB,UAAU;AAClC,qBAAqB;AACrB,iBAAiB,CAAC;AAClB,gBAAgB,OAAO,MAAM;AAC7B,aAAa,CAAC;AACd,SAAS,CAAC,CAAC;AACX,QAAQ,YAAY,CAAC,IAAI,CAAC;AAC1B,YAAY,EAAE;AACd,YAAY,OAAO;AACnB,SAAS,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,IAAI,YAAY,CAAC,OAAO,EAAE;AAC1B,QAAQ,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO;AAClE,QAAQ,MAAM,QAAQ,GAAG,cAAc;AACvC,QAAQ,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU;AACnC,QAAQ,MAAM,eAAe,GAAG;AAChC,YAAY,IAAI;AAChB,YAAY,MAAM,EAAE,UAAU;AAC9B,YAAY,MAAM;AAClB,YAAY,cAAc,EAAE,QAAQ;AACpC,SAAS;AACT,QAAQ,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC;AACtD,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;AAClE,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,OAAO,OAAO;AAC1B;AACA,QAAQ,IAAI,UAAU,KAAK,eAAe,EAAE;AAC5C,YAAY,MAAM,IAAI,KAAK,CAAC,CAAC,+GAA+G,CAAC,CAAC;AAC9I;AACA,QAAQ,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,cAAc,CAAC,eAAe,CAAC;AAChG,QAAQ,IAAI,WAAW;AACvB,QAAQ,IAAI,QAAQ,CAAC,aAAa,EAAE;AACpC,YAAY,WAAW,GAAG,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC;AAC1E;AACA,QAAQ,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;AAC5E,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE;AAC1B,YAAY,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AACzC;AACA,QAAQ,MAAM,OAAO,GAAG,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAChH,YAAY,MAAM,cAAc,GAAG,QAAQ,CAAC,iBAAiB,EAAE;AAC/D,YAAY,IAAI,cAAc,YAAY,OAAO,EAAE;AACnD,gBAAgB,MAAM,cAAc;AACpC;AACA,YAAY,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM;AAChD,gBAAgB,MAAM,OAAO,GAAG,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;AAC7D,gBAAgB,MAAM,CAAC,IAAI,CAAC,CAAC,gCAAgC,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC3F,gBAAgB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AAC/D,oBAAoB,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC;AACpD,wBAAwB,EAAE;AAC1B,wBAAwB,UAAU,EAAE,CAAC;AACrC,qBAAqB,CAAC;AACtB,oBAAoB,MAAM,UAAU,GAAG,CAAC;AACxC,oBAAoB,OAAO;AAC3B,wBAAwB,KAAK;AAC7B,wBAAwB,UAAU;AAClC,qBAAqB;AACrB,iBAAiB,CAAC;AAClB,gBAAgB,OAAO,MAAM;AAC7B,aAAa,CAAC;AACd,SAAS,CAAC,CAAC;AACX,QAAQ,YAAY,CAAC,IAAI,CAAC;AAC1B,YAAY,EAAE;AACd,YAAY,OAAO;AACnB,SAAS,CAAC;AACV,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,IAAI,MAAM,CAAC,OAAO,EAAE;AACpB,QAAQ,OAAO,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa;AAC5D,YAAY,IAAI,EAAE;AAClB,YAAY,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO;AAC1C,YAAY,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM;AACnC,YAAY,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC,OAAO;AACpI,YAAY,IAAI,OAAO,EAAE;AACzB,gBAAgB,MAAM,QAAQ,GAAG,MAAM,OAAO;AAC9C,gBAAgB,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,CAAC;AAC5E,gBAAgB,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;AAChD,gBAAgB,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC;AACjE,gBAAgB,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK;AAC7C,oBAAoB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM;AACxD,oBAAoB,QAAQ,CAAC,QAAQ,CAAC,EAAE,GAAG,UAAU,EAAE,KAAK,CAAC;AAC7D,iBAAiB,CAAC;AAClB;AACA,YAAY,OAAO,OAAO;AAC1B,SAAS,CAAC;AACV,KAAK;AACL,IAAI,eAAe,CAAC,OAAO,EAAE;AAC7B,QAAQ,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS;AAC3C,QAAQ,UAAU,GAAG,CAAC,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,QAAQ,KAAK,UAAU;AAC7G,QAAQ,OAAO,OAAO;AACtB,KAAK;AACL,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"plugin.esm.js","sources":["../src/plugin.ts"],"sourcesContent":["import { __awaiter } from \"tslib\";\nimport { getResourceUrl } from '@module-federation/sdk';\nimport { getSignalFromManifest } from './common/runtime-utils';\nimport { MFDataPrefetch } from './prefetch';\nimport logger from './logger';\nimport { SHARED_STRATEGY } from './constant';\nconst loadingArray = [];\nlet sharedFlag = SHARED_STRATEGY;\nexport const prefetchPlugin = () => ({\n name: 'data-prefetch-runtime-plugin',\n initContainer(options) {\n const { remoteSnapshot, remoteInfo, id, origin } = options;\n if (!id) {\n return options;\n }\n const snapshot = remoteSnapshot;\n const { name } = remoteInfo;\n const prefetchOptions = {\n name,\n remote: remoteInfo,\n origin,\n remoteSnapshot: snapshot,\n };\n const signal = getSignalFromManifest(snapshot);\n if (!signal) {\n return options;\n }\n if (sharedFlag !== SHARED_STRATEGY) {\n throw new Error(`[Module Federation Data Prefetch]: If you want to use data prefetch, the shared strategy must be 'loaded-first'`);\n }\n const instance = MFDataPrefetch.getInstance(name) || new MFDataPrefetch(prefetchOptions);\n let prefetchUrl;\n if (snapshot.prefetchEntry) {\n prefetchUrl = getResourceUrl(snapshot, snapshot.prefetchEntry);\n }\n const exist = loadingArray.find((loading) => loading.id === id);\n if (exist) {\n return options;\n }\n const promise = instance.loadEntry(prefetchUrl).then(() => __awaiter(this, void 0, void 0, function* () {\n const projectExports = instance.getProjectExports();\n if (projectExports instanceof Promise) {\n yield projectExports;\n }\n return Promise.resolve().then(() => {\n const exports = instance.getExposeExports(id);\n logger.info(`1. Start Prefetch initContainer: ${id} - ${performance.now()}`);\n const result = Object.keys(exports).map((k) => {\n const value = instance.prefetch({\n id,\n functionId: k,\n });\n const functionId = k;\n return {\n value,\n functionId,\n };\n });\n return result;\n });\n }));\n loadingArray.push({\n id,\n promise,\n });\n return options;\n },\n afterResolve(options) {\n const { remoteSnapshot, remoteInfo, id, origin } = options;\n const snapshot = remoteSnapshot;\n const { name } = remoteInfo;\n const prefetchOptions = {\n name,\n remote: remoteInfo,\n origin,\n remoteSnapshot: snapshot,\n };\n const signal = getSignalFromManifest(snapshot);\n if (!signal) {\n return options;\n }\n const inited = loadingArray.some((info) => info.id === id);\n if (!inited) {\n return options;\n }\n if (sharedFlag !== SHARED_STRATEGY) {\n throw new Error(`[Module Federation Data Prefetch]: If you want to use data prefetch, the shared strategy must be 'loaded-first'`);\n }\n const instance = MFDataPrefetch.getInstance(name) || new MFDataPrefetch(prefetchOptions);\n let prefetchUrl;\n if (snapshot.prefetchEntry) {\n prefetchUrl = getResourceUrl(snapshot, snapshot.prefetchEntry);\n }\n const index = loadingArray.findIndex((loading) => loading.id === id);\n if (index !== -1) {\n loadingArray.splice(index, 1);\n }\n const promise = instance.loadEntry(prefetchUrl).then(() => __awaiter(this, void 0, void 0, function* () {\n const projectExports = instance.getProjectExports();\n if (projectExports instanceof Promise) {\n yield projectExports;\n }\n return Promise.resolve().then(() => {\n const exports = instance.getExposeExports(id);\n logger.info(`1. Start Prefetch afterResolve: ${id} - ${performance.now()}`);\n const result = Object.keys(exports).map((k) => {\n const value = instance.prefetch({\n id,\n functionId: k,\n });\n const functionId = k;\n return {\n value,\n functionId,\n };\n });\n return result;\n });\n }));\n loadingArray.push({\n id,\n promise,\n });\n return options;\n },\n onLoad(options) {\n return __awaiter(this, void 0, void 0, function* () {\n var _a;\n const { remote, id } = options;\n const { name } = remote;\n const promise = (_a = loadingArray.find((loading) => loading.id === id)) === null || _a === void 0 ? void 0 : _a.promise;\n if (promise) {\n const prefetch = yield promise;\n const prefetchValue = prefetch.map((result) => result.value);\n yield Promise.all(prefetchValue);\n const instance = MFDataPrefetch.getInstance(name);\n prefetch.forEach((result) => {\n const { value, functionId } = result;\n instance.memorize(id + functionId, value);\n });\n }\n return options;\n });\n },\n beforeLoadShare(options) {\n const shareInfo = options.shareInfo;\n sharedFlag = (shareInfo === null || shareInfo === void 0 ? void 0 : shareInfo.strategy) || sharedFlag;\n return options;\n },\n});\nexport default prefetchPlugin;\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@module-federation/data-prefetch",
|
|
3
3
|
"description": "Module Federation Data Prefetch",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.23.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "nieyan <nyqykk@foxmail.com>",
|
|
7
7
|
"homepage": "https://github.com/module-federation/core",
|
|
@@ -89,8 +89,8 @@
|
|
|
89
89
|
},
|
|
90
90
|
"dependencies": {
|
|
91
91
|
"fs-extra": "9.1.0",
|
|
92
|
-
"@module-federation/runtime": "0.
|
|
93
|
-
"@module-federation/sdk": "0.
|
|
92
|
+
"@module-federation/runtime": "0.23.0",
|
|
93
|
+
"@module-federation/sdk": "0.23.0"
|
|
94
94
|
},
|
|
95
95
|
"scripts": {
|
|
96
96
|
"test": "jest"
|