@module-federation/data-prefetch 0.18.3 → 0.19.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.
Files changed (41) hide show
  1. package/dist/babel.cjs.cjs +1 -0
  2. package/dist/babel.cjs.cjs.map +1 -0
  3. package/dist/babel.esm.js +1 -0
  4. package/dist/babel.esm.js.map +1 -0
  5. package/dist/cli.cjs.cjs +1 -0
  6. package/dist/cli.cjs.cjs.map +1 -0
  7. package/dist/cli.esm.js +1 -0
  8. package/dist/cli.esm.js.map +1 -0
  9. package/dist/constant.cjs.cjs +1 -0
  10. package/dist/constant.cjs.cjs.map +1 -0
  11. package/dist/constant.esm.js +1 -0
  12. package/dist/constant.esm.js.map +1 -0
  13. package/dist/index.cjs.cjs +1 -0
  14. package/dist/index.cjs.cjs.map +1 -0
  15. package/dist/index.cjs2.cjs +1 -0
  16. package/dist/index.cjs2.cjs.map +1 -0
  17. package/dist/index.esm.js +1 -0
  18. package/dist/index.esm.js.map +1 -0
  19. package/dist/index.esm2.js +1 -0
  20. package/dist/index.esm2.js.map +1 -0
  21. package/dist/plugin.cjs.cjs +1 -0
  22. package/dist/plugin.cjs.cjs.map +1 -0
  23. package/dist/plugin.esm.js +1 -0
  24. package/dist/plugin.esm.js.map +1 -0
  25. package/dist/prefetch.cjs.cjs +1 -0
  26. package/dist/prefetch.cjs.cjs.map +1 -0
  27. package/dist/prefetch.esm.js +1 -0
  28. package/dist/prefetch.esm.js.map +1 -0
  29. package/dist/react.cjs.cjs +1 -0
  30. package/dist/react.cjs.cjs.map +1 -0
  31. package/dist/react.esm.js +1 -0
  32. package/dist/react.esm.js.map +1 -0
  33. package/dist/runtime-utils.cjs.cjs +1 -0
  34. package/dist/runtime-utils.cjs.cjs.map +1 -0
  35. package/dist/runtime-utils.esm.js +1 -0
  36. package/dist/runtime-utils.esm.js.map +1 -0
  37. package/dist/universal.cjs.cjs +1 -0
  38. package/dist/universal.cjs.cjs.map +1 -0
  39. package/dist/universal.esm.js +1 -0
  40. package/dist/universal.esm.js.map +1 -0
  41. package/package.json +4 -4
@@ -43,3 +43,4 @@ var babel = ((babel, options)=>{
43
43
  });
44
44
 
45
45
  module.exports = babel;
46
+ //# sourceMappingURL=babel.cjs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"babel.cjs.cjs","sources":["../src/cli/babel.ts"],"sourcesContent":["import path from 'path';\nconst attribute = 'id';\nconst hookId = 'usePrefetch';\nconst importPackage = '@module-federation/data-prefetch/react';\nexport default (babel, options) => {\n const t = babel.types;\n let shouldHandle = false;\n let scope = '';\n const { name, exposes } = options;\n if (!exposes) {\n return {};\n }\n const exposesKey = Object.keys(exposes);\n const processedExposes = exposesKey.map((expose) => ({\n key: expose.replace('.', ''),\n value: path.resolve(typeof exposes[expose] === 'string'\n ?\n exposes[expose]\n :\n exposes[expose].import),\n }));\n return {\n visitor: {\n ImportDeclaration(nodePath, state) {\n const source = nodePath.node.source.value;\n const { specifiers } = nodePath.node;\n const { filename } = state.file.opts;\n if (source === importPackage) {\n shouldHandle = specifiers.some((specifier) => specifier.imported &&\n specifier.imported.name === hookId &&\n processedExposes.find((expose) => expose.value === filename && (scope = expose.key)));\n }\n },\n CallExpression(nodePath) {\n if (shouldHandle &&\n t.isIdentifier(nodePath.node.callee, { name: hookId }) &&\n nodePath.node.arguments.length > 0) {\n const objectExpression = nodePath.node.arguments[0];\n if (objectExpression &&\n t.isObjectExpression(objectExpression) &&\n !objectExpression.properties.find((p) => p.key.name === attribute)) {\n objectExpression.properties.push(t.objectProperty(t.identifier(attribute), t.stringLiteral(name + scope)));\n }\n }\n },\n },\n };\n};\n"],"names":["attribute","hookId","importPackage","babel","options","t","types","shouldHandle","scope","name","exposes","exposesKey","Object","keys","processedExposes","map","expose","key","replace","value","path","resolve","import","visitor","ImportDeclaration","nodePath","state","source","node","specifiers","filename","file","opts","some","specifier","imported","find","CallExpression","isIdentifier","callee","arguments","length","objectExpression","isObjectExpression","properties","p","push","objectProperty","identifier","stringLiteral"],"mappings":";;;;AACA,MAAMA,SAAY,GAAA,IAAA;AAClB,MAAMC,MAAS,GAAA,aAAA;AACf,MAAMC,aAAgB,GAAA,wCAAA;AACtB,YAAe,CAAA,CAACC,KAAOC,EAAAA,OAAAA,GAAAA;IACnB,MAAMC,CAAAA,GAAIF,MAAMG,KAAK;AACrB,IAAA,IAAIC,YAAe,GAAA,KAAA;AACnB,IAAA,IAAIC,KAAQ,GAAA,EAAA;AACZ,IAAA,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAE,GAAGN,OAAAA;AAC1B,IAAA,IAAI,CAACM,OAAS,EAAA;AACV,QAAA,OAAO,EAAC;AACZ;IACA,MAAMC,UAAAA,GAAaC,MAAOC,CAAAA,IAAI,CAACH,OAAAA,CAAAA;AAC/B,IAAA,MAAMI,mBAAmBH,UAAWI,CAAAA,GAAG,CAAC,CAACC,UAAY;YACjDC,GAAKD,EAAAA,MAAAA,CAAOE,OAAO,CAAC,GAAK,EAAA,EAAA,CAAA;AACzBC,YAAAA,KAAAA,EAAOC,KAAKC,OAAO,CAAC,OAAOX,OAAO,CAACM,MAAO,CAAA,KAAK,QAEvCN,GAAAA,OAAO,CAACM,MAAO,CAAA,GAEfN,OAAO,CAACM,MAAAA,CAAO,CAACM,MAAM;SAClC,CAAA,CAAA;IACA,OAAO;QACHC,OAAS,EAAA;YACLC,iBAAkBC,CAAAA,CAAAA,QAAQ,EAAEC,KAAK,EAAA;AAC7B,gBAAA,MAAMC,SAASF,QAASG,CAAAA,IAAI,CAACD,MAAM,CAACR,KAAK;AACzC,gBAAA,MAAM,EAAEU,UAAU,EAAE,GAAGJ,SAASG,IAAI;AACpC,gBAAA,MAAM,EAAEE,QAAQ,EAAE,GAAGJ,KAAMK,CAAAA,IAAI,CAACC,IAAI;AACpC,gBAAA,IAAIL,WAAWzB,aAAe,EAAA;oBAC1BK,YAAesB,GAAAA,UAAAA,CAAWI,IAAI,CAAC,CAACC,SAAAA,GAAcA,SAAUC,CAAAA,QAAQ,IAC5DD,SAAAA,CAAUC,QAAQ,CAAC1B,IAAI,KAAKR,MAC5Ba,IAAAA,gBAAAA,CAAiBsB,IAAI,CAAC,CAACpB,MAAAA,GAAWA,MAAOG,CAAAA,KAAK,KAAKW,QAAAA,KAAatB,KAAAA,GAAQQ,MAAOC,CAAAA,GAAG,CAAD,CAAA,CAAA;AACzF;AACJ,aAAA;AACAoB,YAAAA,cAAAA,CAAAA,CAAeZ,QAAQ,EAAA;gBACnB,IAAIlB,YAAAA,IACAF,EAAEiC,YAAY,CAACb,SAASG,IAAI,CAACW,MAAM,EAAE;oBAAE9B,IAAMR,EAAAA;AAAO,iBAAA,CAAA,IACpDwB,SAASG,IAAI,CAACY,SAAS,CAACC,MAAM,GAAG,CAAG,EAAA;AACpC,oBAAA,MAAMC,mBAAmBjB,QAASG,CAAAA,IAAI,CAACY,SAAS,CAAC,CAAE,CAAA;AACnD,oBAAA,IAAIE,oBACArC,CAAEsC,CAAAA,kBAAkB,CAACD,gBACrB,CAAA,IAAA,CAACA,iBAAiBE,UAAU,CAACR,IAAI,CAAC,CAACS,CAAMA,GAAAA,CAAAA,CAAE5B,GAAG,CAACR,IAAI,KAAKT,SAAY,CAAA,EAAA;AACpE0C,wBAAAA,gBAAAA,CAAiBE,UAAU,CAACE,IAAI,CAACzC,EAAE0C,cAAc,CAAC1C,CAAE2C,CAAAA,UAAU,CAAChD,SAAAA,CAAAA,EAAYK,CAAE4C,CAAAA,aAAa,CAACxC,IAAOD,GAAAA,KAAAA,CAAAA,CAAAA,CAAAA;AACtG;AACJ;AACJ;AACJ;AACJ,KAAA;AACJ,CAAA;;;;"}
package/dist/babel.esm.js CHANGED
@@ -41,3 +41,4 @@ var babel = ((babel, options)=>{
41
41
  });
42
42
 
43
43
  export { babel as default };
44
+ //# sourceMappingURL=babel.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"babel.esm.js","sources":["../src/cli/babel.ts"],"sourcesContent":["import path from 'path';\nconst attribute = 'id';\nconst hookId = 'usePrefetch';\nconst importPackage = '@module-federation/data-prefetch/react';\nexport default (babel, options) => {\n const t = babel.types;\n let shouldHandle = false;\n let scope = '';\n const { name, exposes } = options;\n if (!exposes) {\n return {};\n }\n const exposesKey = Object.keys(exposes);\n const processedExposes = exposesKey.map((expose) => ({\n key: expose.replace('.', ''),\n value: path.resolve(typeof exposes[expose] === 'string'\n ?\n exposes[expose]\n :\n exposes[expose].import),\n }));\n return {\n visitor: {\n ImportDeclaration(nodePath, state) {\n const source = nodePath.node.source.value;\n const { specifiers } = nodePath.node;\n const { filename } = state.file.opts;\n if (source === importPackage) {\n shouldHandle = specifiers.some((specifier) => specifier.imported &&\n specifier.imported.name === hookId &&\n processedExposes.find((expose) => expose.value === filename && (scope = expose.key)));\n }\n },\n CallExpression(nodePath) {\n if (shouldHandle &&\n t.isIdentifier(nodePath.node.callee, { name: hookId }) &&\n nodePath.node.arguments.length > 0) {\n const objectExpression = nodePath.node.arguments[0];\n if (objectExpression &&\n t.isObjectExpression(objectExpression) &&\n !objectExpression.properties.find((p) => p.key.name === attribute)) {\n objectExpression.properties.push(t.objectProperty(t.identifier(attribute), t.stringLiteral(name + scope)));\n }\n }\n },\n },\n };\n};\n"],"names":["attribute","hookId","importPackage","babel","options","t","types","shouldHandle","scope","name","exposes","exposesKey","Object","keys","processedExposes","map","expose","key","replace","value","path","resolve","import","visitor","ImportDeclaration","nodePath","state","source","node","specifiers","filename","file","opts","some","specifier","imported","find","CallExpression","isIdentifier","callee","arguments","length","objectExpression","isObjectExpression","properties","p","push","objectProperty","identifier","stringLiteral"],"mappings":";;AACA,MAAMA,SAAY,GAAA,IAAA;AAClB,MAAMC,MAAS,GAAA,aAAA;AACf,MAAMC,aAAgB,GAAA,wCAAA;AACtB,YAAe,CAAA,CAACC,KAAOC,EAAAA,OAAAA,GAAAA;IACnB,MAAMC,CAAAA,GAAIF,MAAMG,KAAK;AACrB,IAAA,IAAIC,YAAe,GAAA,KAAA;AACnB,IAAA,IAAIC,KAAQ,GAAA,EAAA;AACZ,IAAA,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAE,GAAGN,OAAAA;AAC1B,IAAA,IAAI,CAACM,OAAS,EAAA;AACV,QAAA,OAAO,EAAC;AACZ;IACA,MAAMC,UAAAA,GAAaC,MAAOC,CAAAA,IAAI,CAACH,OAAAA,CAAAA;AAC/B,IAAA,MAAMI,mBAAmBH,UAAWI,CAAAA,GAAG,CAAC,CAACC,UAAY;YACjDC,GAAKD,EAAAA,MAAAA,CAAOE,OAAO,CAAC,GAAK,EAAA,EAAA,CAAA;AACzBC,YAAAA,KAAAA,EAAOC,KAAKC,OAAO,CAAC,OAAOX,OAAO,CAACM,MAAO,CAAA,KAAK,QAEvCN,GAAAA,OAAO,CAACM,MAAO,CAAA,GAEfN,OAAO,CAACM,MAAAA,CAAO,CAACM,MAAM;SAClC,CAAA,CAAA;IACA,OAAO;QACHC,OAAS,EAAA;YACLC,iBAAkBC,CAAAA,CAAAA,QAAQ,EAAEC,KAAK,EAAA;AAC7B,gBAAA,MAAMC,SAASF,QAASG,CAAAA,IAAI,CAACD,MAAM,CAACR,KAAK;AACzC,gBAAA,MAAM,EAAEU,UAAU,EAAE,GAAGJ,SAASG,IAAI;AACpC,gBAAA,MAAM,EAAEE,QAAQ,EAAE,GAAGJ,KAAMK,CAAAA,IAAI,CAACC,IAAI;AACpC,gBAAA,IAAIL,WAAWzB,aAAe,EAAA;oBAC1BK,YAAesB,GAAAA,UAAAA,CAAWI,IAAI,CAAC,CAACC,SAAAA,GAAcA,SAAUC,CAAAA,QAAQ,IAC5DD,SAAAA,CAAUC,QAAQ,CAAC1B,IAAI,KAAKR,MAC5Ba,IAAAA,gBAAAA,CAAiBsB,IAAI,CAAC,CAACpB,MAAAA,GAAWA,MAAOG,CAAAA,KAAK,KAAKW,QAAAA,KAAatB,KAAAA,GAAQQ,MAAOC,CAAAA,GAAG,CAAD,CAAA,CAAA;AACzF;AACJ,aAAA;AACAoB,YAAAA,cAAAA,CAAAA,CAAeZ,QAAQ,EAAA;gBACnB,IAAIlB,YAAAA,IACAF,EAAEiC,YAAY,CAACb,SAASG,IAAI,CAACW,MAAM,EAAE;oBAAE9B,IAAMR,EAAAA;AAAO,iBAAA,CAAA,IACpDwB,SAASG,IAAI,CAACY,SAAS,CAACC,MAAM,GAAG,CAAG,EAAA;AACpC,oBAAA,MAAMC,mBAAmBjB,QAASG,CAAAA,IAAI,CAACY,SAAS,CAAC,CAAE,CAAA;AACnD,oBAAA,IAAIE,oBACArC,CAAEsC,CAAAA,kBAAkB,CAACD,gBACrB,CAAA,IAAA,CAACA,iBAAiBE,UAAU,CAACR,IAAI,CAAC,CAACS,CAAMA,GAAAA,CAAAA,CAAE5B,GAAG,CAACR,IAAI,KAAKT,SAAY,CAAA,EAAA;AACpE0C,wBAAAA,gBAAAA,CAAiBE,UAAU,CAACE,IAAI,CAACzC,EAAE0C,cAAc,CAAC1C,CAAE2C,CAAAA,UAAU,CAAChD,SAAAA,CAAAA,EAAYK,CAAE4C,CAAAA,aAAa,CAACxC,IAAOD,GAAAA,KAAAA,CAAAA,CAAAA,CAAAA;AACtG;AACJ;AACJ;AACJ;AACJ,KAAA;AACJ,CAAA;;;;"}
package/dist/cli.cjs.cjs CHANGED
@@ -151,3 +151,4 @@ class PrefetchPlugin {
151
151
 
152
152
  exports.PrefetchPlugin = PrefetchPlugin;
153
153
  exports.getFederationGlobalScope = getFederationGlobalScope;
154
+ //# sourceMappingURL=cli.cjs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.cjs.cjs","sources":["../src/common/constant.ts","../src/common/node-utils.ts","../src/cli/index.ts"],"sourcesContent":["export const TEMP_DIR = '.mf';\n","import path from 'path';\nimport fs from 'fs-extra';\nexport const fileExistsWithCaseSync = (filepath) => {\n const dir = path.dirname(filepath);\n if (filepath === '/' || filepath === '.') {\n return true;\n }\n const filenames = fs.readdirSync(dir);\n if (filenames.indexOf(path.basename(filepath)) === -1) {\n return false;\n }\n return fileExistsWithCaseSync(dir);\n};\nexport const fixPrefetchPath = (exposePath) => {\n const pathExt = ['.js', '.ts'];\n const extReg = /\\.(ts|js|tsx|jsx)$/;\n if (extReg.test(exposePath)) {\n return pathExt.map((ext) => exposePath.replace(extReg, `.prefetch${ext}`));\n }\n else {\n return pathExt.map((ext) => exposePath + `.prefetch${ext}`);\n }\n};\n","import path from 'path';\nimport fs from 'fs-extra';\nimport { encodeName, MFPrefetchCommon, } from '@module-federation/sdk';\nimport { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\nimport { TEMP_DIR } from '../common/constant';\nimport { fileExistsWithCaseSync, fixPrefetchPath } from '../common/node-utils';\nimport { getPrefetchId } from '../common/runtime-utils';\nimport { SHARED_STRATEGY } from '../constant';\nconst { RuntimeGlobals, Template } = require(normalizeWebpackPath('webpack'));\nexport function getFederationGlobalScope(runtimeGlobals) {\n return `${runtimeGlobals.require || '__webpack_require__'}.federation`;\n}\nexport class PrefetchPlugin {\n constructor(options) {\n this.options = options;\n this._reWriteExports = '';\n }\n apply(compiler) {\n var _a;\n const { name, exposes } = this.options;\n if (!exposes) {\n return;\n }\n if (!compiler.options.context) {\n throw new Error('compiler.options.context is not defined');\n }\n const { runtimePlugins } = this.options;\n if (!Array.isArray(runtimePlugins)) {\n this.options.runtimePlugins = [];\n }\n const runtimePath = path.resolve(__dirname, './plugin.esm.js');\n if (!((_a = this.options.runtimePlugins) === null || _a === void 0 ? void 0 : _a.includes(runtimePath))) {\n this.options.runtimePlugins.push(runtimePath);\n }\n if (this.options.shareStrategy !== SHARED_STRATEGY) {\n this.options.shareStrategy = SHARED_STRATEGY;\n console.warn(`[Module Federation Data Prefetch]: Your shared strategy is set to '${SHARED_STRATEGY}', this is a necessary condition for data prefetch`);\n }\n const encodedName = encodeName(name);\n const asyncEntryPath = path.resolve(compiler.options.context, `node_modules/${TEMP_DIR}/${encodedName}/bootstrap.js`);\n if (fs.existsSync(asyncEntryPath)) {\n fs.unlinkSync(asyncEntryPath);\n }\n if (!this.options.dataPrefetch) {\n return;\n }\n const prefetchs = [];\n const exposeAlias = Object.keys(exposes);\n exposeAlias.forEach((alias) => {\n let exposePath;\n const exposeValue = exposes[alias];\n if (typeof exposeValue === 'string') {\n exposePath = exposeValue;\n }\n else {\n exposePath = exposeValue.import[0];\n }\n const targetPaths = fixPrefetchPath(exposePath);\n for (const pathItem of targetPaths) {\n const absolutePath = path.resolve(compiler.options.context, pathItem);\n if (fileExistsWithCaseSync(absolutePath)) {\n prefetchs.push(pathItem);\n const absoluteAlias = alias.replace('.', '');\n this._reWriteExports += `export * as ${getPrefetchId(`${name}${absoluteAlias}`)} from '${absolutePath}';\\n`;\n break;\n }\n }\n });\n if (!this._reWriteExports) {\n return;\n }\n const tempDirRealPath = path.resolve(compiler.options.context, 'node_modules', TEMP_DIR);\n if (!fs.existsSync(tempDirRealPath)) {\n fs.mkdirSync(tempDirRealPath);\n }\n if (!fs.existsSync(`${tempDirRealPath}/${encodedName}`)) {\n fs.mkdirSync(`${tempDirRealPath}/${encodedName}`);\n }\n fs.writeFileSync(asyncEntryPath, this._reWriteExports);\n new compiler.webpack.DefinePlugin({\n FederationDataPrefetch: JSON.stringify(asyncEntryPath),\n }).apply(compiler);\n }\n static addRuntime(compiler, options) {\n const encodedName = encodeName(options.name);\n if (!compiler.options.context) {\n throw new Error('compiler.options.context is not defined');\n }\n const prefetchEntry = path.resolve(compiler.options.context, `node_modules/.mf/${encodedName}/bootstrap.js`);\n const federationGlobal = getFederationGlobalScope(RuntimeGlobals || {});\n return Template.asString([\n fs.existsSync(prefetchEntry)\n ? Template.indent([\n 'function injectPrefetch() {',\n Template.indent([\n `globalThis.__FEDERATION__ = globalThis.__FEDERATION__ || {};`,\n `globalThis.__FEDERATION__['${MFPrefetchCommon.globalKey}'] = globalThis.__FEDERATION__['${MFPrefetchCommon.globalKey}'] || {`,\n `entryLoading: {},`,\n `instance: new Map(),`,\n `__PREFETCH_EXPORTS__: {},`,\n `};`,\n `globalThis.__FEDERATION__['${MFPrefetchCommon.globalKey}']['${MFPrefetchCommon.exportsKey}'] = globalThis.__FEDERATION__['${MFPrefetchCommon.globalKey}']['${MFPrefetchCommon.exportsKey}'] || {};`,\n `globalThis.__FEDERATION__['${MFPrefetchCommon.globalKey}']['${MFPrefetchCommon.exportsKey}']['${options.name}'] = function(){ return import('${prefetchEntry}');}`,\n ]),\n '}',\n `${federationGlobal}.prefetch = injectPrefetch`,\n ])\n : '',\n Template.indent([\n `if(!${federationGlobal}.isMFRemote && ${federationGlobal}.prefetch){`,\n `${federationGlobal}.prefetch()`,\n '}',\n ]),\n ]);\n }\n static setRemoteIdentifier() {\n const federationGlobal = getFederationGlobalScope(RuntimeGlobals || {});\n return Template.indent([`${federationGlobal}.isMFRemote = true;`]);\n }\n static removeRemoteIdentifier() {\n const federationGlobal = getFederationGlobalScope(RuntimeGlobals || {});\n return Template.indent([`${federationGlobal}.isMFRemote = false;`]);\n }\n}\n"],"names":["TEMP_DIR","fileExistsWithCaseSync","filepath","dir","path","dirname","filenames","fs","readdirSync","indexOf","basename","fixPrefetchPath","exposePath","pathExt","extReg","test","map","ext","replace","RuntimeGlobals","Template","require","normalizeWebpackPath","getFederationGlobalScope","runtimeGlobals","PrefetchPlugin","apply","compiler","_a","name","exposes","options","context","Error","runtimePlugins","Array","isArray","runtimePath","resolve","__dirname","includes","push","shareStrategy","SHARED_STRATEGY","console","warn","encodedName","encodeName","asyncEntryPath","existsSync","unlinkSync","dataPrefetch","exposeAlias","Object","keys","forEach","alias","exposeValue","import","targetPaths","pathItem","absolutePath","absoluteAlias","_reWriteExports","getPrefetchId","tempDirRealPath","mkdirSync","writeFileSync","webpack","DefinePlugin","FederationDataPrefetch","JSON","stringify","addRuntime","prefetchEntry","federationGlobal","asString","indent","MFPrefetchCommon","globalKey","exportsKey","setRemoteIdentifier","removeRemoteIdentifier","constructor"],"mappings":"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"}
package/dist/cli.esm.js CHANGED
@@ -148,3 +148,4 @@ class PrefetchPlugin {
148
148
  }
149
149
 
150
150
  export { PrefetchPlugin, getFederationGlobalScope };
151
+ //# sourceMappingURL=cli.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.esm.js","sources":["../src/common/constant.ts","../src/common/node-utils.ts","../src/cli/index.ts"],"sourcesContent":["export const TEMP_DIR = '.mf';\n","import path from 'path';\nimport fs from 'fs-extra';\nexport const fileExistsWithCaseSync = (filepath) => {\n const dir = path.dirname(filepath);\n if (filepath === '/' || filepath === '.') {\n return true;\n }\n const filenames = fs.readdirSync(dir);\n if (filenames.indexOf(path.basename(filepath)) === -1) {\n return false;\n }\n return fileExistsWithCaseSync(dir);\n};\nexport const fixPrefetchPath = (exposePath) => {\n const pathExt = ['.js', '.ts'];\n const extReg = /\\.(ts|js|tsx|jsx)$/;\n if (extReg.test(exposePath)) {\n return pathExt.map((ext) => exposePath.replace(extReg, `.prefetch${ext}`));\n }\n else {\n return pathExt.map((ext) => exposePath + `.prefetch${ext}`);\n }\n};\n","import path from 'path';\nimport fs from 'fs-extra';\nimport { encodeName, MFPrefetchCommon, } from '@module-federation/sdk';\nimport { normalizeWebpackPath } from '@module-federation/sdk/normalize-webpack-path';\nimport { TEMP_DIR } from '../common/constant';\nimport { fileExistsWithCaseSync, fixPrefetchPath } from '../common/node-utils';\nimport { getPrefetchId } from '../common/runtime-utils';\nimport { SHARED_STRATEGY } from '../constant';\nconst { RuntimeGlobals, Template } = require(normalizeWebpackPath('webpack'));\nexport function getFederationGlobalScope(runtimeGlobals) {\n return `${runtimeGlobals.require || '__webpack_require__'}.federation`;\n}\nexport class PrefetchPlugin {\n constructor(options) {\n this.options = options;\n this._reWriteExports = '';\n }\n apply(compiler) {\n var _a;\n const { name, exposes } = this.options;\n if (!exposes) {\n return;\n }\n if (!compiler.options.context) {\n throw new Error('compiler.options.context is not defined');\n }\n const { runtimePlugins } = this.options;\n if (!Array.isArray(runtimePlugins)) {\n this.options.runtimePlugins = [];\n }\n const runtimePath = path.resolve(__dirname, './plugin.esm.js');\n if (!((_a = this.options.runtimePlugins) === null || _a === void 0 ? void 0 : _a.includes(runtimePath))) {\n this.options.runtimePlugins.push(runtimePath);\n }\n if (this.options.shareStrategy !== SHARED_STRATEGY) {\n this.options.shareStrategy = SHARED_STRATEGY;\n console.warn(`[Module Federation Data Prefetch]: Your shared strategy is set to '${SHARED_STRATEGY}', this is a necessary condition for data prefetch`);\n }\n const encodedName = encodeName(name);\n const asyncEntryPath = path.resolve(compiler.options.context, `node_modules/${TEMP_DIR}/${encodedName}/bootstrap.js`);\n if (fs.existsSync(asyncEntryPath)) {\n fs.unlinkSync(asyncEntryPath);\n }\n if (!this.options.dataPrefetch) {\n return;\n }\n const prefetchs = [];\n const exposeAlias = Object.keys(exposes);\n exposeAlias.forEach((alias) => {\n let exposePath;\n const exposeValue = exposes[alias];\n if (typeof exposeValue === 'string') {\n exposePath = exposeValue;\n }\n else {\n exposePath = exposeValue.import[0];\n }\n const targetPaths = fixPrefetchPath(exposePath);\n for (const pathItem of targetPaths) {\n const absolutePath = path.resolve(compiler.options.context, pathItem);\n if (fileExistsWithCaseSync(absolutePath)) {\n prefetchs.push(pathItem);\n const absoluteAlias = alias.replace('.', '');\n this._reWriteExports += `export * as ${getPrefetchId(`${name}${absoluteAlias}`)} from '${absolutePath}';\\n`;\n break;\n }\n }\n });\n if (!this._reWriteExports) {\n return;\n }\n const tempDirRealPath = path.resolve(compiler.options.context, 'node_modules', TEMP_DIR);\n if (!fs.existsSync(tempDirRealPath)) {\n fs.mkdirSync(tempDirRealPath);\n }\n if (!fs.existsSync(`${tempDirRealPath}/${encodedName}`)) {\n fs.mkdirSync(`${tempDirRealPath}/${encodedName}`);\n }\n fs.writeFileSync(asyncEntryPath, this._reWriteExports);\n new compiler.webpack.DefinePlugin({\n FederationDataPrefetch: JSON.stringify(asyncEntryPath),\n }).apply(compiler);\n }\n static addRuntime(compiler, options) {\n const encodedName = encodeName(options.name);\n if (!compiler.options.context) {\n throw new Error('compiler.options.context is not defined');\n }\n const prefetchEntry = path.resolve(compiler.options.context, `node_modules/.mf/${encodedName}/bootstrap.js`);\n const federationGlobal = getFederationGlobalScope(RuntimeGlobals || {});\n return Template.asString([\n fs.existsSync(prefetchEntry)\n ? Template.indent([\n 'function injectPrefetch() {',\n Template.indent([\n `globalThis.__FEDERATION__ = globalThis.__FEDERATION__ || {};`,\n `globalThis.__FEDERATION__['${MFPrefetchCommon.globalKey}'] = globalThis.__FEDERATION__['${MFPrefetchCommon.globalKey}'] || {`,\n `entryLoading: {},`,\n `instance: new Map(),`,\n `__PREFETCH_EXPORTS__: {},`,\n `};`,\n `globalThis.__FEDERATION__['${MFPrefetchCommon.globalKey}']['${MFPrefetchCommon.exportsKey}'] = globalThis.__FEDERATION__['${MFPrefetchCommon.globalKey}']['${MFPrefetchCommon.exportsKey}'] || {};`,\n `globalThis.__FEDERATION__['${MFPrefetchCommon.globalKey}']['${MFPrefetchCommon.exportsKey}']['${options.name}'] = function(){ return import('${prefetchEntry}');}`,\n ]),\n '}',\n `${federationGlobal}.prefetch = injectPrefetch`,\n ])\n : '',\n Template.indent([\n `if(!${federationGlobal}.isMFRemote && ${federationGlobal}.prefetch){`,\n `${federationGlobal}.prefetch()`,\n '}',\n ]),\n ]);\n }\n static setRemoteIdentifier() {\n const federationGlobal = getFederationGlobalScope(RuntimeGlobals || {});\n return Template.indent([`${federationGlobal}.isMFRemote = true;`]);\n }\n static removeRemoteIdentifier() {\n const federationGlobal = getFederationGlobalScope(RuntimeGlobals || {});\n return Template.indent([`${federationGlobal}.isMFRemote = false;`]);\n }\n}\n"],"names":["TEMP_DIR","fileExistsWithCaseSync","filepath","dir","path","dirname","filenames","fs","readdirSync","indexOf","basename","fixPrefetchPath","exposePath","pathExt","extReg","test","map","ext","replace","RuntimeGlobals","Template","require","normalizeWebpackPath","getFederationGlobalScope","runtimeGlobals","PrefetchPlugin","apply","compiler","_a","name","exposes","options","context","Error","runtimePlugins","Array","isArray","runtimePath","resolve","__dirname","includes","push","shareStrategy","SHARED_STRATEGY","console","warn","encodedName","encodeName","asyncEntryPath","existsSync","unlinkSync","dataPrefetch","exposeAlias","Object","keys","forEach","alias","exposeValue","import","targetPaths","pathItem","absolutePath","absoluteAlias","_reWriteExports","getPrefetchId","tempDirRealPath","mkdirSync","writeFileSync","webpack","DefinePlugin","FederationDataPrefetch","JSON","stringify","addRuntime","prefetchEntry","federationGlobal","asString","indent","MFPrefetchCommon","globalKey","exportsKey","setRemoteIdentifier","removeRemoteIdentifier","constructor"],"mappings":"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"}
@@ -3,3 +3,4 @@
3
3
  const SHARED_STRATEGY = 'loaded-first';
4
4
 
5
5
  exports.SHARED_STRATEGY = SHARED_STRATEGY;
6
+ //# sourceMappingURL=constant.cjs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant.cjs.cjs","sources":["../src/constant.ts"],"sourcesContent":["export const SHARED_STRATEGY = 'loaded-first';\n"],"names":["SHARED_STRATEGY"],"mappings":";;AAAO,MAAMA,kBAAkB;;;;"}
@@ -1,3 +1,4 @@
1
1
  const SHARED_STRATEGY = 'loaded-first';
2
2
 
3
3
  export { SHARED_STRATEGY as S };
4
+ //# sourceMappingURL=constant.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constant.esm.js","sources":["../src/constant.ts"],"sourcesContent":["export const SHARED_STRATEGY = 'loaded-first';\n"],"names":["SHARED_STRATEGY"],"mappings":"AAAO,MAAMA,kBAAkB;;;;"}
@@ -7,3 +7,4 @@ var plugin = require('./plugin.cjs.cjs');
7
7
 
8
8
  exports.MFDataPrefetch = prefetch.MFDataPrefetch;
9
9
  exports.prefetchPlugin = plugin.prefetchPlugin;
10
+ //# sourceMappingURL=index.cjs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
@@ -5,3 +5,4 @@ var sdk = require('@module-federation/sdk');
5
5
  const logger = sdk.createLogger('[ Module Federation Data Prefetch ]');
6
6
 
7
7
  exports.logger = logger;
8
+ //# sourceMappingURL=index.cjs2.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs2.cjs","sources":["../src/logger/index.ts"],"sourcesContent":["import { createLogger } from '@module-federation/sdk';\nconst logger = createLogger('[ Module Federation Data Prefetch ]');\nexport default logger;\n"],"names":["logger","createLogger"],"mappings":";;;;AACA,MAAMA,SAASC,gBAAa,CAAA,qCAAA;;;;"}
package/dist/index.esm.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export { M as MFDataPrefetch } from './prefetch.esm.js';
2
2
  export { prefetchPlugin } from './plugin.esm.js';
3
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -3,3 +3,4 @@ import { createLogger } from '@module-federation/sdk';
3
3
  const logger = createLogger('[ Module Federation Data Prefetch ]');
4
4
 
5
5
  export { logger as l };
6
+ //# sourceMappingURL=index.esm2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm2.js","sources":["../src/logger/index.ts"],"sourcesContent":["import { createLogger } from '@module-federation/sdk';\nconst logger = createLogger('[ Module Federation Data Prefetch ]');\nexport default logger;\n"],"names":["logger","createLogger"],"mappings":";;AACA,MAAMA,SAASC,YAAa,CAAA,qCAAA;;;;"}
@@ -152,3 +152,4 @@ const prefetchPlugin = ()=>({
152
152
 
153
153
  exports.default = prefetchPlugin;
154
154
  exports.prefetchPlugin = prefetchPlugin;
155
+ //# sourceMappingURL=plugin.cjs.cjs.map
@@ -0,0 +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":["loadingArray","sharedFlag","SHARED_STRATEGY","prefetchPlugin","name","initContainer","options","remoteSnapshot","remoteInfo","id","origin","snapshot","prefetchOptions","remote","signal","getSignalFromManifest","Error","instance","MFDataPrefetch","getInstance","prefetchUrl","prefetchEntry","getResourceUrl","exist","find","loading","promise","loadEntry","then","__awaiter","projectExports","getProjectExports","Promise","resolve","exports","getExposeExports","logger","info","performance","now","result","Object","keys","map","k","value","prefetch","functionId","push","afterResolve","inited","some","index","findIndex","splice","onLoad","_a","prefetchValue","all","forEach","memorize","beforeLoadShare","shareInfo","strategy"],"mappings":"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"}
@@ -147,3 +147,4 @@ const prefetchPlugin = ()=>({
147
147
  });
148
148
 
149
149
  export { prefetchPlugin as default, prefetchPlugin };
150
+ //# sourceMappingURL=plugin.esm.js.map
@@ -0,0 +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":["loadingArray","sharedFlag","SHARED_STRATEGY","prefetchPlugin","name","initContainer","options","remoteSnapshot","remoteInfo","id","origin","snapshot","prefetchOptions","remote","signal","getSignalFromManifest","Error","instance","MFDataPrefetch","getInstance","prefetchUrl","prefetchEntry","getResourceUrl","exist","find","loading","promise","loadEntry","then","__awaiter","projectExports","getProjectExports","Promise","resolve","exports","getExposeExports","logger","info","performance","now","result","Object","keys","map","k","value","prefetch","functionId","push","afterResolve","inited","some","index","findIndex","splice","onLoad","_a","prefetchValue","all","forEach","memorize","beforeLoadShare","shareInfo","strategy"],"mappings":"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"}
@@ -191,3 +191,4 @@ class MFDataPrefetch {
191
191
 
192
192
  exports.MFDataPrefetch = MFDataPrefetch;
193
193
  exports.__awaiter = __awaiter;
194
+ //# sourceMappingURL=prefetch.cjs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefetch.cjs.cjs","sources":["../src/prefetch.ts"],"sourcesContent":["var _a, _b;\nvar _c;\nimport { __awaiter } from \"tslib\";\nimport { getRemoteEntry, getRemoteInfo, } from '@module-federation/runtime';\nimport { loadScript, } from '@module-federation/sdk';\nimport { getPrefetchId, compatGetPrefetchId } from './common/runtime-utils';\n(_a = globalThis.__FEDERATION__) !== null && _a !== void 0 ? _a : (globalThis.__FEDERATION__ = {});\n(_b = (_c = globalThis.__FEDERATION__).__PREFETCH__) !== null && _b !== void 0 ? _b : (_c.__PREFETCH__ = {\n entryLoading: {},\n instance: new Map(),\n __PREFETCH_EXPORTS__: {},\n});\nexport class MFDataPrefetch {\n constructor(options) {\n this.prefetchMemory = new Map();\n this.recordOutdate = {};\n this._exports = {};\n this._options = options;\n this.global.instance.set(options.name, this);\n }\n get global() {\n return globalThis.__FEDERATION__\n .__PREFETCH__;\n }\n static getInstance(id) {\n return globalThis.__FEDERATION__.__PREFETCH__.instance.get(id);\n }\n loadEntry(entry) {\n return __awaiter(this, void 0, void 0, function* () {\n const { name, remoteSnapshot, remote, origin } = this._options;\n if (entry) {\n const { buildVersion, globalName } = remoteSnapshot;\n const uniqueKey = globalName || `${name}:${buildVersion}`;\n if (!this.global.entryLoading[uniqueKey]) {\n this.global.entryLoading[uniqueKey] = loadScript(entry, {});\n }\n return this.global.entryLoading[uniqueKey];\n }\n else {\n const remoteInfo = getRemoteInfo(remote);\n const module = origin.moduleCache.get(remoteInfo.name);\n return getRemoteEntry({\n origin: origin,\n remoteInfo,\n remoteEntryExports: module ? module.remoteEntryExports : undefined,\n });\n }\n });\n }\n getProjectExports() {\n var _a;\n if (Object.keys(this._exports).length > 0) {\n return this._exports;\n }\n const { name } = this._options;\n const exportsPromiseFn = (_a = globalThis.__FEDERATION__.__PREFETCH__.__PREFETCH_EXPORTS__) === null || _a === void 0 ? void 0 : _a[name];\n const exportsPromise = typeof exportsPromiseFn === 'function'\n ? exportsPromiseFn()\n : exportsPromiseFn;\n const resolve = exportsPromise.then((exports = {}) => {\n const memory = {};\n Object.keys(exports).forEach((key) => {\n memory[key] = {};\n const exportVal = exports[key];\n Object.keys(exportVal).reduce((memo, current) => {\n if (current.toLocaleLowerCase().endsWith('prefetch') ||\n current.toLocaleLowerCase() === 'default') {\n memo[current] = exportVal[current];\n }\n return memo;\n }, memory[key]);\n });\n this.memorizeExports(memory);\n });\n return resolve;\n }\n memorizeExports(exports) {\n this._exports = exports;\n }\n getExposeExports(id) {\n const prefetchId = getPrefetchId(id);\n const compatId = compatGetPrefetchId(id);\n const prefetchExports = this._exports[prefetchId] || this._exports[compatId];\n return prefetchExports || {};\n }\n prefetch(prefetchOptions) {\n const { id, functionId = 'default', refetchParams } = prefetchOptions;\n let prefetchResult;\n const prefetchId = getPrefetchId(id);\n const compatId = compatGetPrefetchId(id);\n const memorizeId = id + functionId;\n const memory = this.prefetchMemory.get(memorizeId);\n if (!this.checkOutdate(prefetchOptions) && memory) {\n return memory;\n }\n const prefetchExports = this._exports[prefetchId] || this._exports[compatId];\n if (!prefetchExports) {\n return;\n }\n const executePrefetch = prefetchExports[functionId];\n if (typeof executePrefetch === 'function') {\n if (refetchParams) {\n prefetchResult = executePrefetch(refetchParams);\n }\n else {\n prefetchResult = executePrefetch();\n }\n }\n else {\n throw new Error(`[Module Federation Data Prefetch]: No prefetch function called ${functionId} export in prefetch file`);\n }\n this.memorize(memorizeId, prefetchResult);\n return prefetchResult;\n }\n memorize(id, value) {\n this.prefetchMemory.set(id, value);\n }\n markOutdate(markOptions, isOutdate) {\n const { id, functionId = 'default' } = markOptions;\n if (!this.recordOutdate[id]) {\n this.recordOutdate[id] = {};\n }\n this.recordOutdate[id][functionId] = isOutdate;\n }\n checkOutdate(outdateOptions) {\n const { id, functionId = 'default', cacheStrategy } = outdateOptions;\n if (typeof cacheStrategy === 'function') {\n return cacheStrategy();\n }\n if (!this.recordOutdate[id]) {\n this.recordOutdate[id] = {};\n }\n if (this.recordOutdate[id][functionId]) {\n this.markOutdate({\n id,\n functionId,\n }, false);\n return true;\n }\n else {\n return false;\n }\n }\n}\n"],"names":["_a","_b","_c","globalThis","__FEDERATION__","__PREFETCH__","entryLoading","instance","Map","__PREFETCH_EXPORTS__","MFDataPrefetch","global","getInstance","id","get","loadEntry","entry","__awaiter","name","remoteSnapshot","remote","origin","_options","buildVersion","globalName","uniqueKey","loadScript","remoteInfo","getRemoteInfo","module","moduleCache","getRemoteEntry","remoteEntryExports","undefined","getProjectExports","Object","keys","_exports","length","exportsPromiseFn","exportsPromise","resolve","then","exports","memory","forEach","key","exportVal","reduce","memo","current","toLocaleLowerCase","endsWith","memorizeExports","getExposeExports","prefetchId","getPrefetchId","compatId","compatGetPrefetchId","prefetchExports","prefetch","prefetchOptions","functionId","refetchParams","prefetchResult","memorizeId","prefetchMemory","checkOutdate","executePrefetch","Error","memorize","value","set","markOutdate","markOptions","isOutdate","recordOutdate","outdateOptions","cacheStrategy","constructor","options"],"mappings":"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"}
@@ -188,3 +188,4 @@ class MFDataPrefetch {
188
188
  }
189
189
 
190
190
  export { MFDataPrefetch as M, __awaiter as _ };
191
+ //# sourceMappingURL=prefetch.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefetch.esm.js","sources":["../src/prefetch.ts"],"sourcesContent":["var _a, _b;\nvar _c;\nimport { __awaiter } from \"tslib\";\nimport { getRemoteEntry, getRemoteInfo, } from '@module-federation/runtime';\nimport { loadScript, } from '@module-federation/sdk';\nimport { getPrefetchId, compatGetPrefetchId } from './common/runtime-utils';\n(_a = globalThis.__FEDERATION__) !== null && _a !== void 0 ? _a : (globalThis.__FEDERATION__ = {});\n(_b = (_c = globalThis.__FEDERATION__).__PREFETCH__) !== null && _b !== void 0 ? _b : (_c.__PREFETCH__ = {\n entryLoading: {},\n instance: new Map(),\n __PREFETCH_EXPORTS__: {},\n});\nexport class MFDataPrefetch {\n constructor(options) {\n this.prefetchMemory = new Map();\n this.recordOutdate = {};\n this._exports = {};\n this._options = options;\n this.global.instance.set(options.name, this);\n }\n get global() {\n return globalThis.__FEDERATION__\n .__PREFETCH__;\n }\n static getInstance(id) {\n return globalThis.__FEDERATION__.__PREFETCH__.instance.get(id);\n }\n loadEntry(entry) {\n return __awaiter(this, void 0, void 0, function* () {\n const { name, remoteSnapshot, remote, origin } = this._options;\n if (entry) {\n const { buildVersion, globalName } = remoteSnapshot;\n const uniqueKey = globalName || `${name}:${buildVersion}`;\n if (!this.global.entryLoading[uniqueKey]) {\n this.global.entryLoading[uniqueKey] = loadScript(entry, {});\n }\n return this.global.entryLoading[uniqueKey];\n }\n else {\n const remoteInfo = getRemoteInfo(remote);\n const module = origin.moduleCache.get(remoteInfo.name);\n return getRemoteEntry({\n origin: origin,\n remoteInfo,\n remoteEntryExports: module ? module.remoteEntryExports : undefined,\n });\n }\n });\n }\n getProjectExports() {\n var _a;\n if (Object.keys(this._exports).length > 0) {\n return this._exports;\n }\n const { name } = this._options;\n const exportsPromiseFn = (_a = globalThis.__FEDERATION__.__PREFETCH__.__PREFETCH_EXPORTS__) === null || _a === void 0 ? void 0 : _a[name];\n const exportsPromise = typeof exportsPromiseFn === 'function'\n ? exportsPromiseFn()\n : exportsPromiseFn;\n const resolve = exportsPromise.then((exports = {}) => {\n const memory = {};\n Object.keys(exports).forEach((key) => {\n memory[key] = {};\n const exportVal = exports[key];\n Object.keys(exportVal).reduce((memo, current) => {\n if (current.toLocaleLowerCase().endsWith('prefetch') ||\n current.toLocaleLowerCase() === 'default') {\n memo[current] = exportVal[current];\n }\n return memo;\n }, memory[key]);\n });\n this.memorizeExports(memory);\n });\n return resolve;\n }\n memorizeExports(exports) {\n this._exports = exports;\n }\n getExposeExports(id) {\n const prefetchId = getPrefetchId(id);\n const compatId = compatGetPrefetchId(id);\n const prefetchExports = this._exports[prefetchId] || this._exports[compatId];\n return prefetchExports || {};\n }\n prefetch(prefetchOptions) {\n const { id, functionId = 'default', refetchParams } = prefetchOptions;\n let prefetchResult;\n const prefetchId = getPrefetchId(id);\n const compatId = compatGetPrefetchId(id);\n const memorizeId = id + functionId;\n const memory = this.prefetchMemory.get(memorizeId);\n if (!this.checkOutdate(prefetchOptions) && memory) {\n return memory;\n }\n const prefetchExports = this._exports[prefetchId] || this._exports[compatId];\n if (!prefetchExports) {\n return;\n }\n const executePrefetch = prefetchExports[functionId];\n if (typeof executePrefetch === 'function') {\n if (refetchParams) {\n prefetchResult = executePrefetch(refetchParams);\n }\n else {\n prefetchResult = executePrefetch();\n }\n }\n else {\n throw new Error(`[Module Federation Data Prefetch]: No prefetch function called ${functionId} export in prefetch file`);\n }\n this.memorize(memorizeId, prefetchResult);\n return prefetchResult;\n }\n memorize(id, value) {\n this.prefetchMemory.set(id, value);\n }\n markOutdate(markOptions, isOutdate) {\n const { id, functionId = 'default' } = markOptions;\n if (!this.recordOutdate[id]) {\n this.recordOutdate[id] = {};\n }\n this.recordOutdate[id][functionId] = isOutdate;\n }\n checkOutdate(outdateOptions) {\n const { id, functionId = 'default', cacheStrategy } = outdateOptions;\n if (typeof cacheStrategy === 'function') {\n return cacheStrategy();\n }\n if (!this.recordOutdate[id]) {\n this.recordOutdate[id] = {};\n }\n if (this.recordOutdate[id][functionId]) {\n this.markOutdate({\n id,\n functionId,\n }, false);\n return true;\n }\n else {\n return false;\n }\n }\n}\n"],"names":["_a","_b","_c","globalThis","__FEDERATION__","__PREFETCH__","entryLoading","instance","Map","__PREFETCH_EXPORTS__","MFDataPrefetch","global","getInstance","id","get","loadEntry","entry","__awaiter","name","remoteSnapshot","remote","origin","_options","buildVersion","globalName","uniqueKey","loadScript","remoteInfo","getRemoteInfo","module","moduleCache","getRemoteEntry","remoteEntryExports","undefined","getProjectExports","Object","keys","_exports","length","exportsPromiseFn","exportsPromise","resolve","then","exports","memory","forEach","key","exportVal","reduce","memo","current","toLocaleLowerCase","endsWith","memorizeExports","getExposeExports","prefetchId","getPrefetchId","compatId","compatGetPrefetchId","prefetchExports","prefetch","prefetchOptions","functionId","refetchParams","prefetchResult","memorizeId","prefetchMemory","checkOutdate","executePrefetch","Error","memorize","value","set","markOutdate","markOptions","isOutdate","recordOutdate","outdateOptions","cacheStrategy","constructor","options"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAIA,EAAIC,EAAAA,EAAAA;AACR,IAAIC,EAAAA;AAKHF,CAAAA,EAAKG,GAAAA,UAAAA,CAAWC,cAAa,MAAO,IAAA,IAAQJ,EAAO,KAAA,MAASA,GAAAA,EAAAA,GAAMG,UAAWC,CAAAA,cAAc,GAAG,EAAC;AAC/FH,CAAAA,KAAK,CAACC,KAAKC,UAAWC,CAAAA,cAAc,EAAEC,YAAY,MAAM,QAAQJ,EAAO,KAAA,SAASA,EAAMC,GAAAA,EAAAA,CAAGG,YAAY,GAAG;AACrGC,IAAAA,YAAAA,EAAc,EAAC;AACfC,IAAAA,QAAAA,EAAU,IAAIC,GAAAA,EAAAA;AACdC,IAAAA,oBAAAA,EAAsB;AAC1B,CAAA;AACO,MAAMC,cAAAA,CAAAA;AAQT,IAAA,IAAIC,MAAS,GAAA;QACT,OAAOR,UAAAA,CAAWC,cAAc,CAC3BC,YAAY;AACrB;IACA,OAAOO,WAAAA,CAAYC,EAAE,EAAE;QACnB,OAAOV,UAAAA,CAAWC,cAAc,CAACC,YAAY,CAACE,QAAQ,CAACO,GAAG,CAACD,EAAAA,CAAAA;AAC/D;AACAE,IAAAA,SAAAA,CAAUC,KAAK,EAAE;AACb,QAAA,OAAOC,UAAU,IAAI,EAAE,MAAK,EAAG,MAAQ,EAAA,YAAA;AACnC,YAAA,MAAM,EAAEC,IAAI,EAAEC,cAAc,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAG,IAAI,CAACC,QAAQ;AAC9D,YAAA,IAAIN,KAAO,EAAA;AACP,gBAAA,MAAM,EAAEO,YAAY,EAAEC,UAAU,EAAE,GAAGL,cAAAA;gBACrC,MAAMM,SAAAA,GAAYD,cAAc,CAAC,EAAEN,KAAK,CAAC,EAAEK,aAAa,CAAC;gBACzD,IAAI,CAAC,IAAI,CAACZ,MAAM,CAACL,YAAY,CAACmB,UAAU,EAAE;oBACtC,IAAI,CAACd,MAAM,CAACL,YAAY,CAACmB,SAAU,CAAA,GAAGC,UAAWV,CAAAA,KAAAA,EAAO,EAAC,CAAA;AAC7D;AACA,gBAAA,OAAO,IAAI,CAACL,MAAM,CAACL,YAAY,CAACmB,SAAU,CAAA;aAEzC,MAAA;AACD,gBAAA,MAAME,aAAaC,aAAcR,CAAAA,MAAAA,CAAAA;AACjC,gBAAA,MAAMS,SAASR,MAAOS,CAAAA,WAAW,CAAChB,GAAG,CAACa,WAAWT,IAAI,CAAA;AACrD,gBAAA,OAAOa,cAAe,CAAA;oBAClBV,MAAQA,EAAAA,MAAAA;AACRM,oBAAAA,UAAAA;oBACAK,kBAAoBH,EAAAA,MAAAA,GAASA,MAAOG,CAAAA,kBAAkB,GAAGC;AAC7D,iBAAA,CAAA;AACJ;AACJ,SAAA,CAAA;AACJ;IACAC,iBAAoB,GAAA;QAChB,IAAIlC,EAAAA;QACJ,IAAImC,MAAAA,CAAOC,IAAI,CAAC,IAAI,CAACC,QAAQ,CAAA,CAAEC,MAAM,GAAG,CAAG,EAAA;YACvC,OAAO,IAAI,CAACD,QAAQ;AACxB;AACA,QAAA,MAAM,EAAEnB,IAAI,EAAE,GAAG,IAAI,CAACI,QAAQ;QAC9B,MAAMiB,gBAAAA,GAAmB,CAACvC,EAAAA,GAAKG,WAAWC,cAAc,CAACC,YAAY,CAACI,oBAAoB,MAAM,IAAA,IAAQT,OAAO,MAAK,GAAI,MAASA,GAAAA,EAAE,CAACkB,IAAK,CAAA;AACzI,QAAA,MAAMsB,cAAiB,GAAA,OAAOD,gBAAqB,KAAA,UAAA,GAC7CA,gBACAA,EAAAA,GAAAA,gBAAAA;AACN,QAAA,MAAME,UAAUD,cAAeE,CAAAA,IAAI,CAAC,CAACC,OAAAA,GAAU,EAAE,GAAA;AAC7C,YAAA,MAAMC,SAAS,EAAC;AAChBT,YAAAA,MAAAA,CAAOC,IAAI,CAACO,OAASE,CAAAA,CAAAA,OAAO,CAAC,CAACC,GAAAA,GAAAA;gBAC1BF,MAAM,CAACE,GAAI,CAAA,GAAG,EAAC;gBACf,MAAMC,SAAAA,GAAYJ,OAAO,CAACG,GAAI,CAAA;AAC9BX,gBAAAA,MAAAA,CAAOC,IAAI,CAACW,SAAAA,CAAAA,CAAWC,MAAM,CAAC,CAACC,IAAMC,EAAAA,OAAAA,GAAAA;oBACjC,IAAIA,OAAAA,CAAQC,iBAAiB,EAAGC,CAAAA,QAAQ,CAAC,UACrCF,CAAAA,IAAAA,OAAAA,CAAQC,iBAAiB,EAAA,KAAO,SAAW,EAAA;AAC3CF,wBAAAA,IAAI,CAACC,OAAAA,CAAQ,GAAGH,SAAS,CAACG,OAAQ,CAAA;AACtC;oBACA,OAAOD,IAAAA;iBACRL,EAAAA,MAAM,CAACE,GAAI,CAAA,CAAA;AAClB,aAAA,CAAA;YACA,IAAI,CAACO,eAAe,CAACT,MAAAA,CAAAA;AACzB,SAAA,CAAA;QACA,OAAOH,OAAAA;AACX;AACAY,IAAAA,eAAAA,CAAgBV,OAAO,EAAE;QACrB,IAAI,CAACN,QAAQ,GAAGM,OAAAA;AACpB;AACAW,IAAAA,gBAAAA,CAAiBzC,EAAE,EAAE;AACjB,QAAA,MAAM0C,aAAaC,aAAc3C,CAAAA,EAAAA,CAAAA;AACjC,QAAA,MAAM4C,WAAWC,mBAAoB7C,CAAAA,EAAAA,CAAAA;QACrC,MAAM8C,eAAAA,GAAkB,IAAI,CAACtB,QAAQ,CAACkB,UAAW,CAAA,IAAI,IAAI,CAAClB,QAAQ,CAACoB,QAAS,CAAA;AAC5E,QAAA,OAAOE,mBAAmB,EAAC;AAC/B;AACAC,IAAAA,QAAAA,CAASC,eAAe,EAAE;QACtB,MAAM,EAAEhD,EAAE,EAAEiD,UAAAA,GAAa,SAAS,EAAEC,aAAa,EAAE,GAAGF,eAAAA;QACtD,IAAIG,cAAAA;AACJ,QAAA,MAAMT,aAAaC,aAAc3C,CAAAA,EAAAA,CAAAA;AACjC,QAAA,MAAM4C,WAAWC,mBAAoB7C,CAAAA,EAAAA,CAAAA;AACrC,QAAA,MAAMoD,aAAapD,EAAKiD,GAAAA,UAAAA;AACxB,QAAA,MAAMlB,SAAS,IAAI,CAACsB,cAAc,CAACpD,GAAG,CAACmD,UAAAA,CAAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAACE,YAAY,CAACN,oBAAoBjB,MAAQ,EAAA;YAC/C,OAAOA,MAAAA;AACX;QACA,MAAMe,eAAAA,GAAkB,IAAI,CAACtB,QAAQ,CAACkB,UAAW,CAAA,IAAI,IAAI,CAAClB,QAAQ,CAACoB,QAAS,CAAA;AAC5E,QAAA,IAAI,CAACE,eAAiB,EAAA;AAClB,YAAA;AACJ;QACA,MAAMS,eAAAA,GAAkBT,eAAe,CAACG,UAAW,CAAA;QACnD,IAAI,OAAOM,oBAAoB,UAAY,EAAA;AACvC,YAAA,IAAIL,aAAe,EAAA;AACfC,gBAAAA,cAAAA,GAAiBI,eAAgBL,CAAAA,aAAAA,CAAAA;aAEhC,MAAA;gBACDC,cAAiBI,GAAAA,eAAAA,EAAAA;AACrB;SAEC,MAAA;AACD,YAAA,MAAM,IAAIC,KAAM,CAAA,CAAC,+DAA+D,EAAEP,UAAAA,CAAW,wBAAwB,CAAC,CAAA;AAC1H;QACA,IAAI,CAACQ,QAAQ,CAACL,UAAYD,EAAAA,cAAAA,CAAAA;QAC1B,OAAOA,cAAAA;AACX;IACAM,QAASzD,CAAAA,EAAE,EAAE0D,KAAK,EAAE;AAChB,QAAA,IAAI,CAACL,cAAc,CAACM,GAAG,CAAC3D,EAAI0D,EAAAA,KAAAA,CAAAA;AAChC;IACAE,WAAYC,CAAAA,WAAW,EAAEC,SAAS,EAAE;AAChC,QAAA,MAAM,EAAE9D,EAAE,EAAEiD,UAAa,GAAA,SAAS,EAAE,GAAGY,WAAAA;AACvC,QAAA,IAAI,CAAC,IAAI,CAACE,aAAa,CAAC/D,GAAG,EAAE;AACzB,YAAA,IAAI,CAAC+D,aAAa,CAAC/D,EAAAA,CAAG,GAAG,EAAC;AAC9B;AACA,QAAA,IAAI,CAAC+D,aAAa,CAAC/D,EAAG,CAAA,CAACiD,WAAW,GAAGa,SAAAA;AACzC;AACAR,IAAAA,YAAAA,CAAaU,cAAc,EAAE;QACzB,MAAM,EAAEhE,EAAE,EAAEiD,UAAAA,GAAa,SAAS,EAAEgB,aAAa,EAAE,GAAGD,cAAAA;QACtD,IAAI,OAAOC,kBAAkB,UAAY,EAAA;YACrC,OAAOA,aAAAA,EAAAA;AACX;AACA,QAAA,IAAI,CAAC,IAAI,CAACF,aAAa,CAAC/D,GAAG,EAAE;AACzB,YAAA,IAAI,CAAC+D,aAAa,CAAC/D,EAAAA,CAAG,GAAG,EAAC;AAC9B;AACA,QAAA,IAAI,IAAI,CAAC+D,aAAa,CAAC/D,EAAG,CAAA,CAACiD,WAAW,EAAE;YACpC,IAAI,CAACW,WAAW,CAAC;AACb5D,gBAAAA,EAAAA;AACAiD,gBAAAA;aACD,EAAA,KAAA,CAAA;YACH,OAAO,IAAA;SAEN,MAAA;YACD,OAAO,KAAA;AACX;AACJ;AAjIAiB,IAAAA,WAAAA,CAAYC,OAAO,CAAE;QACjB,IAAI,CAACd,cAAc,GAAG,IAAI1D,GAAAA,EAAAA;QAC1B,IAAI,CAACoE,aAAa,GAAG,EAAC;QACtB,IAAI,CAACvC,QAAQ,GAAG,EAAC;QACjB,IAAI,CAACf,QAAQ,GAAG0D,OAAAA;QAChB,IAAI,CAACrE,MAAM,CAACJ,QAAQ,CAACiE,GAAG,CAACQ,OAAAA,CAAQ9D,IAAI,EAAE,IAAI,CAAA;AAC/C;AA4HJ;;;;"}
@@ -72,3 +72,4 @@ const usePrefetch = (options)=>{
72
72
  };
73
73
 
74
74
  exports.usePrefetch = usePrefetch;
75
+ //# sourceMappingURL=react.cjs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.cjs.cjs","sources":["../src/react/utils.ts","../src/react/hooks.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nexport const useFirstMounted = () => {\n const ref = useRef(true);\n useEffect(() => {\n ref.current = false;\n }, []);\n return ref.current;\n};\n","import { useEffect, useState } from 'react';\nimport logger from '../logger';\nimport { MFDataPrefetch } from '../prefetch';\nimport { prefetch } from '../universal';\nimport { getScope } from '../common/runtime-utils';\nimport { useFirstMounted } from './utils';\nexport const usePrefetch = (options) => {\n const isFirstMounted = useFirstMounted();\n if (isFirstMounted) {\n const startTiming = performance.now();\n logger.info(`2. Start Get Prefetch Data: ${options.id} - ${options.functionId || 'default'} - ${startTiming}`);\n }\n const { id, functionId, deferId } = options;\n const prefetchInfo = {\n id,\n functionId,\n };\n const mfScope = getScope();\n let state;\n const prefetchResult = prefetch(options);\n if (deferId) {\n if (prefetchResult instanceof Promise) {\n state = prefetchResult.then((deferredData) => deferredData.data[deferId]);\n }\n else {\n state = prefetchResult.data[deferId];\n }\n }\n else {\n state = prefetchResult;\n }\n const [prefetchState, setPrefetchState] = useState(state);\n const prefetchInstance = MFDataPrefetch.getInstance(mfScope);\n useEffect(() => {\n const useEffectTiming = performance.now();\n logger.info(`3. Start Execute UseEffect: ${options.id} - ${options.functionId || 'default'} - ${useEffectTiming}`);\n return () => {\n prefetchInstance === null || prefetchInstance === void 0 ? void 0 : prefetchInstance.markOutdate(prefetchInfo, true);\n };\n }, []);\n const refreshExecutor = (refetchParams) => {\n const refetchOptions = Object.assign({}, options);\n if (refetchParams) {\n refetchOptions.refetchParams = refetchParams;\n }\n prefetchInstance === null || prefetchInstance === void 0 ? void 0 : prefetchInstance.markOutdate(prefetchInfo, true);\n const newVal = prefetch(refetchOptions);\n let newState;\n if (deferId) {\n if (newVal instanceof Promise) {\n newState = newVal.then((deferredData) => deferredData.data[deferId]);\n }\n else {\n newState = newVal.data[deferId];\n }\n }\n else {\n newState = newVal;\n }\n setPrefetchState(newState);\n };\n return [prefetchState, refreshExecutor];\n};\n"],"names":["useFirstMounted","ref","useRef","useEffect","current","usePrefetch","options","isFirstMounted","startTiming","performance","now","logger","info","id","functionId","deferId","prefetchInfo","mfScope","getScope","state","prefetchResult","prefetch","Promise","then","deferredData","data","prefetchState","setPrefetchState","useState","prefetchInstance","MFDataPrefetch","getInstance","useEffectTiming","markOutdate","refreshExecutor","refetchParams","refetchOptions","Object","assign","newVal","newState"],"mappings":"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"}
package/dist/react.esm.js CHANGED
@@ -70,3 +70,4 @@ const usePrefetch = (options)=>{
70
70
  };
71
71
 
72
72
  export { usePrefetch };
73
+ //# sourceMappingURL=react.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.esm.js","sources":["../src/react/utils.ts","../src/react/hooks.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\nexport const useFirstMounted = () => {\n const ref = useRef(true);\n useEffect(() => {\n ref.current = false;\n }, []);\n return ref.current;\n};\n","import { useEffect, useState } from 'react';\nimport logger from '../logger';\nimport { MFDataPrefetch } from '../prefetch';\nimport { prefetch } from '../universal';\nimport { getScope } from '../common/runtime-utils';\nimport { useFirstMounted } from './utils';\nexport const usePrefetch = (options) => {\n const isFirstMounted = useFirstMounted();\n if (isFirstMounted) {\n const startTiming = performance.now();\n logger.info(`2. Start Get Prefetch Data: ${options.id} - ${options.functionId || 'default'} - ${startTiming}`);\n }\n const { id, functionId, deferId } = options;\n const prefetchInfo = {\n id,\n functionId,\n };\n const mfScope = getScope();\n let state;\n const prefetchResult = prefetch(options);\n if (deferId) {\n if (prefetchResult instanceof Promise) {\n state = prefetchResult.then((deferredData) => deferredData.data[deferId]);\n }\n else {\n state = prefetchResult.data[deferId];\n }\n }\n else {\n state = prefetchResult;\n }\n const [prefetchState, setPrefetchState] = useState(state);\n const prefetchInstance = MFDataPrefetch.getInstance(mfScope);\n useEffect(() => {\n const useEffectTiming = performance.now();\n logger.info(`3. Start Execute UseEffect: ${options.id} - ${options.functionId || 'default'} - ${useEffectTiming}`);\n return () => {\n prefetchInstance === null || prefetchInstance === void 0 ? void 0 : prefetchInstance.markOutdate(prefetchInfo, true);\n };\n }, []);\n const refreshExecutor = (refetchParams) => {\n const refetchOptions = Object.assign({}, options);\n if (refetchParams) {\n refetchOptions.refetchParams = refetchParams;\n }\n prefetchInstance === null || prefetchInstance === void 0 ? void 0 : prefetchInstance.markOutdate(prefetchInfo, true);\n const newVal = prefetch(refetchOptions);\n let newState;\n if (deferId) {\n if (newVal instanceof Promise) {\n newState = newVal.then((deferredData) => deferredData.data[deferId]);\n }\n else {\n newState = newVal.data[deferId];\n }\n }\n else {\n newState = newVal;\n }\n setPrefetchState(newState);\n };\n return [prefetchState, refreshExecutor];\n};\n"],"names":["useFirstMounted","ref","useRef","useEffect","current","usePrefetch","options","isFirstMounted","startTiming","performance","now","logger","info","id","functionId","deferId","prefetchInfo","mfScope","getScope","state","prefetchResult","prefetch","Promise","then","deferredData","data","prefetchState","setPrefetchState","useState","prefetchInstance","MFDataPrefetch","getInstance","useEffectTiming","markOutdate","refreshExecutor","refetchParams","refetchOptions","Object","assign","newVal","newState"],"mappings":";;;;;;AACO,MAAMA,eAAkB,GAAA,IAAA;AAC3B,IAAA,MAAMC,MAAMC,MAAO,CAAA,IAAA,CAAA;IACnBC,SAAU,CAAA,IAAA;AACNF,QAAAA,GAAAA,CAAIG,OAAO,GAAG,KAAA;AAClB,KAAA,EAAG,EAAE,CAAA;AACL,IAAA,OAAOH,IAAIG,OAAO;AACtB,CAAE;;ACDK,MAAMC,cAAc,CAACC,OAAAA,GAAAA;AACxB,IAAA,MAAMC,cAAiBP,GAAAA,eAAAA,EAAAA;AACvB,IAAA,IAAIO,cAAgB,EAAA;QAChB,MAAMC,WAAAA,GAAcC,YAAYC,GAAG,EAAA;AACnCC,QAAAA,MAAAA,CAAOC,IAAI,CAAC,CAAC,4BAA4B,EAAEN,QAAQO,EAAE,CAAC,GAAG,EAAEP,QAAQQ,UAAU,IAAI,UAAU,GAAG,EAAEN,YAAY,CAAC,CAAA;AACjH;AACA,IAAA,MAAM,EAAEK,EAAE,EAAEC,UAAU,EAAEC,OAAO,EAAE,GAAGT,OAAAA;AACpC,IAAA,MAAMU,YAAe,GAAA;AACjBH,QAAAA,EAAAA;AACAC,QAAAA;AACJ,KAAA;AACA,IAAA,MAAMG,OAAUC,GAAAA,QAAAA,EAAAA;IAChB,IAAIC,KAAAA;AACJ,IAAA,MAAMC,iBAAiBC,QAASf,CAAAA,OAAAA,CAAAA;AAChC,IAAA,IAAIS,OAAS,EAAA;AACT,QAAA,IAAIK,0BAA0BE,OAAS,EAAA;YACnCH,KAAQC,GAAAA,cAAAA,CAAeG,IAAI,CAAC,CAACC,eAAiBA,YAAaC,CAAAA,IAAI,CAACV,OAAQ,CAAA,CAAA;SAEvE,MAAA;YACDI,KAAQC,GAAAA,cAAAA,CAAeK,IAAI,CAACV,OAAQ,CAAA;AACxC;KAEC,MAAA;QACDI,KAAQC,GAAAA,cAAAA;AACZ;AACA,IAAA,MAAM,CAACM,aAAAA,EAAeC,gBAAiB,CAAA,GAAGC,QAAST,CAAAA,KAAAA,CAAAA;IACnD,MAAMU,gBAAAA,GAAmBC,cAAeC,CAAAA,WAAW,CAACd,OAAAA,CAAAA;IACpDd,SAAU,CAAA,IAAA;QACN,MAAM6B,eAAAA,GAAkBvB,YAAYC,GAAG,EAAA;AACvCC,QAAAA,MAAAA,CAAOC,IAAI,CAAC,CAAC,4BAA4B,EAAEN,QAAQO,EAAE,CAAC,GAAG,EAAEP,QAAQQ,UAAU,IAAI,UAAU,GAAG,EAAEkB,gBAAgB,CAAC,CAAA;QACjH,OAAO,IAAA;YACHH,gBAAqB,KAAA,IAAA,IAAQA,qBAAqB,MAAK,GAAI,MAASA,GAAAA,gBAAAA,CAAiBI,WAAW,CAACjB,YAAc,EAAA,IAAA,CAAA;AACnH,SAAA;AACJ,KAAA,EAAG,EAAE,CAAA;AACL,IAAA,MAAMkB,kBAAkB,CAACC,aAAAA,GAAAA;AACrB,QAAA,MAAMC,cAAiBC,GAAAA,MAAAA,CAAOC,MAAM,CAAC,EAAIhC,EAAAA,OAAAA,CAAAA;AACzC,QAAA,IAAI6B,aAAe,EAAA;AACfC,YAAAA,cAAAA,CAAeD,aAAa,GAAGA,aAAAA;AACnC;QACAN,gBAAqB,KAAA,IAAA,IAAQA,qBAAqB,MAAK,GAAI,MAASA,GAAAA,gBAAAA,CAAiBI,WAAW,CAACjB,YAAc,EAAA,IAAA,CAAA;AAC/G,QAAA,MAAMuB,SAASlB,QAASe,CAAAA,cAAAA,CAAAA;QACxB,IAAII,QAAAA;AACJ,QAAA,IAAIzB,OAAS,EAAA;AACT,YAAA,IAAIwB,kBAAkBjB,OAAS,EAAA;gBAC3BkB,QAAWD,GAAAA,MAAAA,CAAOhB,IAAI,CAAC,CAACC,eAAiBA,YAAaC,CAAAA,IAAI,CAACV,OAAQ,CAAA,CAAA;aAElE,MAAA;gBACDyB,QAAWD,GAAAA,MAAAA,CAAOd,IAAI,CAACV,OAAQ,CAAA;AACnC;SAEC,MAAA;YACDyB,QAAWD,GAAAA,MAAAA;AACf;QACAZ,gBAAiBa,CAAAA,QAAAA,CAAAA;AACrB,KAAA;IACA,OAAO;AAACd,QAAAA,aAAAA;AAAeQ,QAAAA;AAAgB,KAAA;AAC3C;;;;"}
@@ -25,3 +25,4 @@ exports.compatGetPrefetchId = compatGetPrefetchId;
25
25
  exports.getPrefetchId = getPrefetchId;
26
26
  exports.getScope = getScope;
27
27
  exports.getSignalFromManifest = getSignalFromManifest;
28
+ //# sourceMappingURL=runtime-utils.cjs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-utils.cjs.cjs","sources":["../src/common/runtime-utils.ts"],"sourcesContent":["import { getInstance } from '@module-federation/runtime';\nimport { encodeName, MFPrefetchCommon, } from '@module-federation/sdk';\nexport const getScope = () => {\n return getInstance().options.name;\n};\nexport const getPrefetchId = (id) => encodeName(`${id}/${MFPrefetchCommon.identifier}`);\nexport const compatGetPrefetchId = (id) => encodeName(`${id}/VmokPrefetch`);\nexport const getSignalFromManifest = (remoteSnapshot) => {\n if (!remoteSnapshot) {\n return false;\n }\n if (!('prefetchEntry' in remoteSnapshot) &&\n !('prefetchInterface' in remoteSnapshot)) {\n return false;\n }\n if (!remoteSnapshot.prefetchEntry && !remoteSnapshot.prefetchInterface) {\n return false;\n }\n return true;\n};\n"],"names":["getScope","getInstance","options","name","getPrefetchId","id","encodeName","MFPrefetchCommon","identifier","compatGetPrefetchId","getSignalFromManifest","remoteSnapshot","prefetchEntry","prefetchInterface"],"mappings":";;;;;MAEaA,QAAW,GAAA,IAAA;IACpB,OAAOC,mBAAAA,EAAAA,CAAcC,OAAO,CAACC,IAAI;AACrC;AACaC,MAAAA,aAAAA,GAAgB,CAACC,EAAAA,GAAOC,eAAW,CAAC,EAAED,EAAG,CAAA,CAAC,EAAEE,oBAAAA,CAAiBC,UAAU,CAAC,CAAC;AAC/E,MAAMC,mBAAsB,GAAA,CAACJ,EAAOC,GAAAA,cAAAA,CAAW,CAAC,EAAED,EAAAA,CAAG,aAAa,CAAC;AACnE,MAAMK,wBAAwB,CAACC,cAAAA,GAAAA;AAClC,IAAA,IAAI,CAACA,cAAgB,EAAA;QACjB,OAAO,KAAA;AACX;IACA,IAAI,EAAE,eAAmBA,IAAAA,cAAa,KAClC,EAAE,mBAAuBA,IAAAA,cAAa,CAAI,EAAA;QAC1C,OAAO,KAAA;AACX;AACA,IAAA,IAAI,CAACA,cAAeC,CAAAA,aAAa,IAAI,CAACD,cAAAA,CAAeE,iBAAiB,EAAE;QACpE,OAAO,KAAA;AACX;IACA,OAAO,IAAA;AACX;;;;;;;"}
@@ -20,3 +20,4 @@ const getSignalFromManifest = (remoteSnapshot)=>{
20
20
  };
21
21
 
22
22
  export { getSignalFromManifest as a, getPrefetchId as b, compatGetPrefetchId as c, getScope as g };
23
+ //# sourceMappingURL=runtime-utils.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-utils.esm.js","sources":["../src/common/runtime-utils.ts"],"sourcesContent":["import { getInstance } from '@module-federation/runtime';\nimport { encodeName, MFPrefetchCommon, } from '@module-federation/sdk';\nexport const getScope = () => {\n return getInstance().options.name;\n};\nexport const getPrefetchId = (id) => encodeName(`${id}/${MFPrefetchCommon.identifier}`);\nexport const compatGetPrefetchId = (id) => encodeName(`${id}/VmokPrefetch`);\nexport const getSignalFromManifest = (remoteSnapshot) => {\n if (!remoteSnapshot) {\n return false;\n }\n if (!('prefetchEntry' in remoteSnapshot) &&\n !('prefetchInterface' in remoteSnapshot)) {\n return false;\n }\n if (!remoteSnapshot.prefetchEntry && !remoteSnapshot.prefetchInterface) {\n return false;\n }\n return true;\n};\n"],"names":["getScope","getInstance","options","name","getPrefetchId","id","encodeName","MFPrefetchCommon","identifier","compatGetPrefetchId","getSignalFromManifest","remoteSnapshot","prefetchEntry","prefetchInterface"],"mappings":";;;MAEaA,QAAW,GAAA,IAAA;IACpB,OAAOC,WAAAA,EAAAA,CAAcC,OAAO,CAACC,IAAI;AACrC;AACaC,MAAAA,aAAAA,GAAgB,CAACC,EAAAA,GAAOC,WAAW,CAAC,EAAED,EAAG,CAAA,CAAC,EAAEE,gBAAAA,CAAiBC,UAAU,CAAC,CAAC;AAC/E,MAAMC,mBAAsB,GAAA,CAACJ,EAAOC,GAAAA,UAAAA,CAAW,CAAC,EAAED,EAAAA,CAAG,aAAa,CAAC;AACnE,MAAMK,wBAAwB,CAACC,cAAAA,GAAAA;AAClC,IAAA,IAAI,CAACA,cAAgB,EAAA;QACjB,OAAO,KAAA;AACX;IACA,IAAI,EAAE,eAAmBA,IAAAA,cAAa,KAClC,EAAE,mBAAuBA,IAAAA,cAAa,CAAI,EAAA;QAC1C,OAAO,KAAA;AACX;AACA,IAAA,IAAI,CAACA,cAAeC,CAAAA,aAAa,IAAI,CAACD,cAAAA,CAAeE,iBAAiB,EAAE;QACpE,OAAO,KAAA;AACX;IACA,OAAO,IAAA;AACX;;;;"}
@@ -25,3 +25,4 @@ function prefetch(options) {
25
25
  }
26
26
 
27
27
  exports.prefetch = prefetch;
28
+ //# sourceMappingURL=universal.cjs.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"universal.cjs.cjs","sources":["../src/universal/index.ts"],"sourcesContent":["import { MFDataPrefetch } from '../prefetch';\nimport { getScope } from '../common/runtime-utils';\nexport function prefetch(options) {\n const { id, functionId = 'default' } = options;\n const mfScope = getScope();\n const prefetchInstance = MFDataPrefetch.getInstance(mfScope) ||\n new MFDataPrefetch({\n name: mfScope,\n });\n const res = prefetchInstance.getProjectExports();\n if (res instanceof Promise) {\n const promise = res.then(() => {\n const result = prefetchInstance.prefetch(options);\n prefetchInstance.memorize(id + functionId, result);\n return result;\n });\n return promise;\n }\n else {\n const result = prefetchInstance.prefetch(options);\n prefetchInstance.memorize(id + functionId, result);\n return result;\n }\n}\n"],"names":["prefetch","options","id","functionId","mfScope","getScope","prefetchInstance","MFDataPrefetch","getInstance","name","res","getProjectExports","Promise","promise","then","result","memorize"],"mappings":";;;;;AAEO,SAASA,SAASC,OAAO,EAAA;AAC5B,IAAA,MAAM,EAAEC,EAAE,EAAEC,UAAa,GAAA,SAAS,EAAE,GAAGF,OAAAA;AACvC,IAAA,MAAMG,OAAUC,GAAAA,qBAAAA,EAAAA;AAChB,IAAA,MAAMC,mBAAmBC,yBAAeC,CAAAA,WAAW,CAACJ,OAAAA,CAAAA,IAChD,IAAIG,yBAAe,CAAA;QACfE,IAAML,EAAAA;AACV,KAAA,CAAA;IACJ,MAAMM,GAAAA,GAAMJ,iBAAiBK,iBAAiB,EAAA;AAC9C,IAAA,IAAID,eAAeE,OAAS,EAAA;QACxB,MAAMC,OAAAA,GAAUH,GAAII,CAAAA,IAAI,CAAC,IAAA;YACrB,MAAMC,MAAAA,GAAST,gBAAiBN,CAAAA,QAAQ,CAACC,OAAAA,CAAAA;YACzCK,gBAAiBU,CAAAA,QAAQ,CAACd,EAAAA,GAAKC,UAAYY,EAAAA,MAAAA,CAAAA;YAC3C,OAAOA,MAAAA;AACX,SAAA,CAAA;QACA,OAAOF,OAAAA;KAEN,MAAA;QACD,MAAME,MAAAA,GAAST,gBAAiBN,CAAAA,QAAQ,CAACC,OAAAA,CAAAA;QACzCK,gBAAiBU,CAAAA,QAAQ,CAACd,EAAAA,GAAKC,UAAYY,EAAAA,MAAAA,CAAAA;QAC3C,OAAOA,MAAAA;AACX;AACJ;;;;"}
@@ -23,3 +23,4 @@ function prefetch(options) {
23
23
  }
24
24
 
25
25
  export { prefetch };
26
+ //# sourceMappingURL=universal.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"universal.esm.js","sources":["../src/universal/index.ts"],"sourcesContent":["import { MFDataPrefetch } from '../prefetch';\nimport { getScope } from '../common/runtime-utils';\nexport function prefetch(options) {\n const { id, functionId = 'default' } = options;\n const mfScope = getScope();\n const prefetchInstance = MFDataPrefetch.getInstance(mfScope) ||\n new MFDataPrefetch({\n name: mfScope,\n });\n const res = prefetchInstance.getProjectExports();\n if (res instanceof Promise) {\n const promise = res.then(() => {\n const result = prefetchInstance.prefetch(options);\n prefetchInstance.memorize(id + functionId, result);\n return result;\n });\n return promise;\n }\n else {\n const result = prefetchInstance.prefetch(options);\n prefetchInstance.memorize(id + functionId, result);\n return result;\n }\n}\n"],"names":["prefetch","options","id","functionId","mfScope","getScope","prefetchInstance","MFDataPrefetch","getInstance","name","res","getProjectExports","Promise","promise","then","result","memorize"],"mappings":";;;AAEO,SAASA,SAASC,OAAO,EAAA;AAC5B,IAAA,MAAM,EAAEC,EAAE,EAAEC,UAAa,GAAA,SAAS,EAAE,GAAGF,OAAAA;AACvC,IAAA,MAAMG,OAAUC,GAAAA,QAAAA,EAAAA;AAChB,IAAA,MAAMC,mBAAmBC,cAAeC,CAAAA,WAAW,CAACJ,OAAAA,CAAAA,IAChD,IAAIG,cAAe,CAAA;QACfE,IAAML,EAAAA;AACV,KAAA,CAAA;IACJ,MAAMM,GAAAA,GAAMJ,iBAAiBK,iBAAiB,EAAA;AAC9C,IAAA,IAAID,eAAeE,OAAS,EAAA;QACxB,MAAMC,OAAAA,GAAUH,GAAII,CAAAA,IAAI,CAAC,IAAA;YACrB,MAAMC,MAAAA,GAAST,gBAAiBN,CAAAA,QAAQ,CAACC,OAAAA,CAAAA;YACzCK,gBAAiBU,CAAAA,QAAQ,CAACd,EAAAA,GAAKC,UAAYY,EAAAA,MAAAA,CAAAA;YAC3C,OAAOA,MAAAA;AACX,SAAA,CAAA;QACA,OAAOF,OAAAA;KAEN,MAAA;QACD,MAAME,MAAAA,GAAST,gBAAiBN,CAAAA,QAAQ,CAACC,OAAAA,CAAAA;QACzCK,gBAAiBU,CAAAA,QAAQ,CAACd,EAAAA,GAAKC,UAAYY,EAAAA,MAAAA,CAAAA;QAC3C,OAAOA,MAAAA;AACX;AACJ;;;;"}
package/package.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "name": "@module-federation/data-prefetch",
3
3
  "description": "Module Federation Data Prefetch",
4
- "version": "0.18.3",
4
+ "version": "0.19.0",
5
5
  "type": "module",
6
6
  "author": "nieyan <nyqykk@foxmail.com>",
7
7
  "homepage": "https://github.com/module-federation/core",
8
8
  "license": "MIT",
9
9
  "repository": {
10
10
  "type": "git",
11
- "url": "https://github.com/module-federation/core/",
11
+ "url": "git+https://github.com/module-federation/core.git",
12
12
  "directory": "packages/data-prefetch"
13
13
  },
14
14
  "publishConfig": {
@@ -89,8 +89,8 @@
89
89
  },
90
90
  "dependencies": {
91
91
  "fs-extra": "9.1.0",
92
- "@module-federation/runtime": "0.18.3",
93
- "@module-federation/sdk": "0.18.3"
92
+ "@module-federation/runtime": "0.19.0",
93
+ "@module-federation/sdk": "0.19.0"
94
94
  },
95
95
  "scripts": {
96
96
  "test": "jest"