@module-federation/data-prefetch 0.6.7 → 0.6.8
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/.swcrc +29 -0
- package/CHANGELOG.md +11 -0
- package/dist/babel.cjs.js +23 -35
- package/dist/babel.esm.d.ts +2 -0
- package/dist/babel.esm.js +23 -31
- package/dist/cli.cjs.js +122 -3546
- package/dist/cli.esm.d.ts +1 -0
- package/dist/cli.esm.js +123 -3536
- package/dist/index.cjs.js +0 -2
- package/dist/index.esm.d.ts +1 -0
- package/dist/package.json +7 -6
- package/dist/plugin.cjs.js +95 -298
- package/dist/plugin.esm.d.ts +2 -0
- package/dist/plugin.esm.js +94 -297
- package/dist/polyfills.cjs.js +14 -0
- package/dist/polyfills.esm.js +12 -0
- package/dist/prefetch.cjs.js +118 -327
- package/dist/prefetch.esm.js +119 -328
- package/dist/react.cjs.js +31 -117
- package/dist/react.esm.d.ts +1 -0
- package/dist/react.esm.js +32 -116
- package/dist/runtime-utils.cjs.js +4 -8
- package/dist/runtime-utils.esm.js +5 -9
- package/dist/shared.cjs.js +10 -12
- package/dist/shared.esm.d.ts +2 -0
- package/dist/shared.esm.js +10 -12
- package/dist/universal.cjs.js +8 -17
- package/dist/universal.esm.d.ts +1 -0
- package/dist/universal.esm.js +9 -16
- package/package.json +5 -5
- package/project.json +2 -2
- package/rollup.config.js +22 -1
package/dist/plugin.esm.js
CHANGED
|
@@ -4,354 +4,151 @@ import { M as MFDataPrefetch } from './prefetch.esm.js';
|
|
|
4
4
|
import { l as logger } from './index.esm2.js';
|
|
5
5
|
import '@module-federation/runtime';
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var value = info.value;
|
|
11
|
-
} catch (error) {
|
|
12
|
-
reject(error);
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
if (info.done) {
|
|
16
|
-
resolve(value);
|
|
17
|
-
} else {
|
|
18
|
-
Promise.resolve(value).then(_next, _throw);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
function _async_to_generator(fn) {
|
|
22
|
-
return function() {
|
|
23
|
-
var self = this, args = arguments;
|
|
24
|
-
return new Promise(function(resolve, reject) {
|
|
25
|
-
var gen = fn.apply(self, args);
|
|
26
|
-
function _next(value) {
|
|
27
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
28
|
-
}
|
|
29
|
-
function _throw(err) {
|
|
30
|
-
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
31
|
-
}
|
|
32
|
-
_next(undefined);
|
|
33
|
-
});
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
function _instanceof(left, right) {
|
|
37
|
-
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
|
|
38
|
-
return !!right[Symbol.hasInstance](left);
|
|
39
|
-
} else {
|
|
40
|
-
return left instanceof right;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
function _ts_generator(thisArg, body) {
|
|
44
|
-
var f, y, t, g, _ = {
|
|
45
|
-
label: 0,
|
|
46
|
-
sent: function() {
|
|
47
|
-
if (t[0] & 1) throw t[1];
|
|
48
|
-
return t[1];
|
|
49
|
-
},
|
|
50
|
-
trys: [],
|
|
51
|
-
ops: []
|
|
52
|
-
};
|
|
53
|
-
return g = {
|
|
54
|
-
next: verb(0),
|
|
55
|
-
"throw": verb(1),
|
|
56
|
-
"return": verb(2)
|
|
57
|
-
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
|
58
|
-
return this;
|
|
59
|
-
}), g;
|
|
60
|
-
function verb(n) {
|
|
61
|
-
return function(v) {
|
|
62
|
-
return step([
|
|
63
|
-
n,
|
|
64
|
-
v
|
|
65
|
-
]);
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
function step(op) {
|
|
69
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
70
|
-
while(_)try {
|
|
71
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
72
|
-
if (y = 0, t) op = [
|
|
73
|
-
op[0] & 2,
|
|
74
|
-
t.value
|
|
75
|
-
];
|
|
76
|
-
switch(op[0]){
|
|
77
|
-
case 0:
|
|
78
|
-
case 1:
|
|
79
|
-
t = op;
|
|
80
|
-
break;
|
|
81
|
-
case 4:
|
|
82
|
-
_.label++;
|
|
83
|
-
return {
|
|
84
|
-
value: op[1],
|
|
85
|
-
done: false
|
|
86
|
-
};
|
|
87
|
-
case 5:
|
|
88
|
-
_.label++;
|
|
89
|
-
y = op[1];
|
|
90
|
-
op = [
|
|
91
|
-
0
|
|
92
|
-
];
|
|
93
|
-
continue;
|
|
94
|
-
case 7:
|
|
95
|
-
op = _.ops.pop();
|
|
96
|
-
_.trys.pop();
|
|
97
|
-
continue;
|
|
98
|
-
default:
|
|
99
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
100
|
-
_ = 0;
|
|
101
|
-
continue;
|
|
102
|
-
}
|
|
103
|
-
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
104
|
-
_.label = op[1];
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
107
|
-
if (op[0] === 6 && _.label < t[1]) {
|
|
108
|
-
_.label = t[1];
|
|
109
|
-
t = op;
|
|
110
|
-
break;
|
|
111
|
-
}
|
|
112
|
-
if (t && _.label < t[2]) {
|
|
113
|
-
_.label = t[2];
|
|
114
|
-
_.ops.push(op);
|
|
115
|
-
break;
|
|
116
|
-
}
|
|
117
|
-
if (t[2]) _.ops.pop();
|
|
118
|
-
_.trys.pop();
|
|
119
|
-
continue;
|
|
120
|
-
}
|
|
121
|
-
op = body.call(thisArg, _);
|
|
122
|
-
} catch (e) {
|
|
123
|
-
op = [
|
|
124
|
-
6,
|
|
125
|
-
e
|
|
126
|
-
];
|
|
127
|
-
y = 0;
|
|
128
|
-
} finally{
|
|
129
|
-
f = t = 0;
|
|
130
|
-
}
|
|
131
|
-
if (op[0] & 5) throw op[1];
|
|
132
|
-
return {
|
|
133
|
-
value: op[0] ? op[1] : void 0,
|
|
134
|
-
done: true
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
var loadingArray = [];
|
|
139
|
-
var strategy = 'loaded-first';
|
|
140
|
-
var sharedFlag = strategy;
|
|
7
|
+
const loadingArray = [];
|
|
8
|
+
const strategy = 'loaded-first';
|
|
9
|
+
let sharedFlag = strategy;
|
|
141
10
|
// eslint-disable-next-line max-lines-per-function
|
|
142
|
-
|
|
143
|
-
return {
|
|
11
|
+
const prefetchPlugin = ()=>({
|
|
144
12
|
name: 'data-prefetch-runtime-plugin',
|
|
145
|
-
initContainer
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
name
|
|
13
|
+
initContainer (options) {
|
|
14
|
+
const { remoteSnapshot, remoteInfo, id, origin } = options;
|
|
15
|
+
const snapshot = remoteSnapshot;
|
|
16
|
+
const { name } = remoteInfo;
|
|
17
|
+
const prefetchOptions = {
|
|
18
|
+
name,
|
|
151
19
|
remote: remoteInfo,
|
|
152
|
-
origin
|
|
20
|
+
origin,
|
|
153
21
|
remoteSnapshot: snapshot
|
|
154
22
|
};
|
|
155
|
-
|
|
23
|
+
const signal = getSignalFromManifest(snapshot);
|
|
156
24
|
if (!signal) {
|
|
157
25
|
return options;
|
|
158
26
|
}
|
|
159
27
|
if (sharedFlag !== strategy) {
|
|
160
|
-
throw new Error(
|
|
28
|
+
throw new Error(`[Module Federation Data Prefetch]: If you want to use data prefetch, the shared strategy must be 'loaded-first'`);
|
|
161
29
|
}
|
|
162
|
-
|
|
163
|
-
|
|
30
|
+
const instance = MFDataPrefetch.getInstance(name) || new MFDataPrefetch(prefetchOptions);
|
|
31
|
+
let prefetchUrl;
|
|
164
32
|
// @ts-expect-error
|
|
165
33
|
if (snapshot.prefetchEntry) {
|
|
166
34
|
// @ts-expect-error
|
|
167
35
|
prefetchUrl = getResourceUrl(snapshot, snapshot.prefetchEntry);
|
|
168
36
|
}
|
|
169
|
-
|
|
170
|
-
return loading.id === id;
|
|
171
|
-
});
|
|
37
|
+
const exist = loadingArray.find((loading)=>loading.id === id);
|
|
172
38
|
if (exist) {
|
|
173
39
|
return options;
|
|
174
40
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
Promise.resolve().then(function() {
|
|
196
|
-
var exports = instance.getExposeExports(id);
|
|
197
|
-
logger.info("1. Start Prefetch initContainer: ".concat(id, " - ").concat(performance.now()));
|
|
198
|
-
var result = Object.keys(exports).map(function(k) {
|
|
199
|
-
var value = instance.prefetch({
|
|
200
|
-
id: id,
|
|
201
|
-
functionId: k
|
|
202
|
-
});
|
|
203
|
-
var functionId = k;
|
|
204
|
-
return {
|
|
205
|
-
value: value,
|
|
206
|
-
functionId: functionId
|
|
207
|
-
};
|
|
208
|
-
});
|
|
209
|
-
return result;
|
|
210
|
-
})
|
|
211
|
-
];
|
|
212
|
-
}
|
|
41
|
+
const promise = instance.loadEntry(prefetchUrl).then(async ()=>{
|
|
42
|
+
const projectExports = instance.getProjectExports();
|
|
43
|
+
if (projectExports instanceof Promise) {
|
|
44
|
+
await projectExports;
|
|
45
|
+
}
|
|
46
|
+
return Promise.resolve().then(()=>{
|
|
47
|
+
const exports = instance.getExposeExports(id);
|
|
48
|
+
logger.info(`1. Start Prefetch initContainer: ${id} - ${performance.now()}`);
|
|
49
|
+
const result = Object.keys(exports).map((k)=>{
|
|
50
|
+
const value = instance.prefetch({
|
|
51
|
+
id,
|
|
52
|
+
functionId: k
|
|
53
|
+
});
|
|
54
|
+
const functionId = k;
|
|
55
|
+
return {
|
|
56
|
+
value,
|
|
57
|
+
functionId
|
|
58
|
+
};
|
|
59
|
+
});
|
|
60
|
+
return result;
|
|
213
61
|
});
|
|
214
|
-
})
|
|
62
|
+
});
|
|
215
63
|
loadingArray.push({
|
|
216
|
-
id
|
|
217
|
-
promise
|
|
64
|
+
id,
|
|
65
|
+
promise
|
|
218
66
|
});
|
|
219
67
|
return options;
|
|
220
68
|
},
|
|
221
|
-
afterResolve
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
name
|
|
69
|
+
afterResolve (options) {
|
|
70
|
+
const { remoteSnapshot, remoteInfo, id, origin } = options;
|
|
71
|
+
const snapshot = remoteSnapshot;
|
|
72
|
+
const { name } = remoteInfo;
|
|
73
|
+
const prefetchOptions = {
|
|
74
|
+
name,
|
|
227
75
|
remote: remoteInfo,
|
|
228
|
-
origin
|
|
76
|
+
origin,
|
|
229
77
|
remoteSnapshot: snapshot
|
|
230
78
|
};
|
|
231
|
-
|
|
79
|
+
const signal = getSignalFromManifest(snapshot);
|
|
232
80
|
if (!signal) {
|
|
233
81
|
return options;
|
|
234
82
|
}
|
|
235
|
-
|
|
236
|
-
return info.id === id;
|
|
237
|
-
});
|
|
83
|
+
const inited = loadingArray.some((info)=>info.id === id);
|
|
238
84
|
if (!inited) {
|
|
239
85
|
return options;
|
|
240
86
|
}
|
|
241
87
|
if (sharedFlag !== strategy) {
|
|
242
|
-
throw new Error(
|
|
88
|
+
throw new Error(`[Module Federation Data Prefetch]: If you want to use data prefetch, the shared strategy must be 'loaded-first'`);
|
|
243
89
|
}
|
|
244
|
-
|
|
245
|
-
|
|
90
|
+
const instance = MFDataPrefetch.getInstance(name) || new MFDataPrefetch(prefetchOptions);
|
|
91
|
+
let prefetchUrl;
|
|
246
92
|
// @ts-expect-error
|
|
247
93
|
if (snapshot.prefetchEntry) {
|
|
248
94
|
// @ts-expect-error
|
|
249
95
|
prefetchUrl = getResourceUrl(snapshot, snapshot.prefetchEntry);
|
|
250
96
|
}
|
|
251
|
-
|
|
252
|
-
return loading.id === id;
|
|
253
|
-
});
|
|
97
|
+
const index = loadingArray.findIndex((loading)=>loading.id === id);
|
|
254
98
|
// clear cache
|
|
255
99
|
if (index !== -1) {
|
|
256
100
|
loadingArray.splice(index, 1);
|
|
257
101
|
}
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
Promise.resolve().then(function() {
|
|
279
|
-
var exports = instance.getExposeExports(id);
|
|
280
|
-
logger.info("1. Start Prefetch afterResolve: ".concat(id, " - ").concat(performance.now()));
|
|
281
|
-
var result = Object.keys(exports).map(function(k) {
|
|
282
|
-
var value = instance.prefetch({
|
|
283
|
-
id: id,
|
|
284
|
-
functionId: k
|
|
285
|
-
});
|
|
286
|
-
var functionId = k;
|
|
287
|
-
return {
|
|
288
|
-
value: value,
|
|
289
|
-
functionId: functionId
|
|
290
|
-
};
|
|
291
|
-
});
|
|
292
|
-
return result;
|
|
293
|
-
})
|
|
294
|
-
];
|
|
295
|
-
}
|
|
102
|
+
const promise = instance.loadEntry(prefetchUrl).then(async ()=>{
|
|
103
|
+
const projectExports = instance.getProjectExports();
|
|
104
|
+
if (projectExports instanceof Promise) {
|
|
105
|
+
await projectExports;
|
|
106
|
+
}
|
|
107
|
+
return Promise.resolve().then(()=>{
|
|
108
|
+
const exports = instance.getExposeExports(id);
|
|
109
|
+
logger.info(`1. Start Prefetch afterResolve: ${id} - ${performance.now()}`);
|
|
110
|
+
const result = Object.keys(exports).map((k)=>{
|
|
111
|
+
const value = instance.prefetch({
|
|
112
|
+
id,
|
|
113
|
+
functionId: k
|
|
114
|
+
});
|
|
115
|
+
const functionId = k;
|
|
116
|
+
return {
|
|
117
|
+
value,
|
|
118
|
+
functionId
|
|
119
|
+
};
|
|
120
|
+
});
|
|
121
|
+
return result;
|
|
296
122
|
});
|
|
297
|
-
})
|
|
123
|
+
});
|
|
298
124
|
loadingArray.push({
|
|
299
|
-
id
|
|
300
|
-
promise
|
|
125
|
+
id,
|
|
126
|
+
promise
|
|
301
127
|
});
|
|
302
128
|
return options;
|
|
303
129
|
},
|
|
304
|
-
onLoad
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
3
|
|
318
|
-
];
|
|
319
|
-
return [
|
|
320
|
-
4,
|
|
321
|
-
promise
|
|
322
|
-
];
|
|
323
|
-
case 1:
|
|
324
|
-
prefetch = _state.sent();
|
|
325
|
-
prefetchValue = prefetch.map(function(result) {
|
|
326
|
-
return result.value;
|
|
327
|
-
});
|
|
328
|
-
return [
|
|
329
|
-
4,
|
|
330
|
-
Promise.all(prefetchValue)
|
|
331
|
-
];
|
|
332
|
-
case 2:
|
|
333
|
-
_state.sent();
|
|
334
|
-
instance = MFDataPrefetch.getInstance(name);
|
|
335
|
-
prefetch.forEach(function(result) {
|
|
336
|
-
var value = result.value, functionId = result.functionId;
|
|
337
|
-
instance.memorize(id + functionId, value);
|
|
338
|
-
});
|
|
339
|
-
_state.label = 3;
|
|
340
|
-
case 3:
|
|
341
|
-
return [
|
|
342
|
-
2,
|
|
343
|
-
options
|
|
344
|
-
];
|
|
345
|
-
}
|
|
130
|
+
async onLoad (options) {
|
|
131
|
+
var _loadingArray_find;
|
|
132
|
+
const { remote, id } = options;
|
|
133
|
+
const { name } = remote;
|
|
134
|
+
const promise = (_loadingArray_find = loadingArray.find((loading)=>loading.id === id)) == null ? void 0 : _loadingArray_find.promise;
|
|
135
|
+
if (promise) {
|
|
136
|
+
const prefetch = await promise;
|
|
137
|
+
const prefetchValue = prefetch.map((result)=>result.value);
|
|
138
|
+
await Promise.all(prefetchValue);
|
|
139
|
+
const instance = MFDataPrefetch.getInstance(name);
|
|
140
|
+
prefetch.forEach((result)=>{
|
|
141
|
+
const { value, functionId } = result;
|
|
142
|
+
instance.memorize(id + functionId, value);
|
|
346
143
|
});
|
|
347
|
-
}
|
|
144
|
+
}
|
|
145
|
+
return options;
|
|
348
146
|
},
|
|
349
|
-
beforeLoadShare
|
|
350
|
-
|
|
351
|
-
sharedFlag = (shareInfo
|
|
147
|
+
beforeLoadShare (options) {
|
|
148
|
+
const shareInfo = options.shareInfo;
|
|
149
|
+
sharedFlag = (shareInfo == null ? void 0 : shareInfo.strategy) || sharedFlag;
|
|
352
150
|
return options;
|
|
353
151
|
}
|
|
354
|
-
};
|
|
355
|
-
};
|
|
152
|
+
});
|
|
356
153
|
|
|
357
154
|
export { prefetchPlugin as default, prefetchPlugin };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
function _extends() {
|
|
4
|
+
_extends = Object.assign || function assign(target) {
|
|
5
|
+
for(var i = 1; i < arguments.length; i++){
|
|
6
|
+
var source = arguments[i];
|
|
7
|
+
for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
|
|
8
|
+
}
|
|
9
|
+
return target;
|
|
10
|
+
};
|
|
11
|
+
return _extends.apply(this, arguments);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
exports._extends = _extends;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
function _extends() {
|
|
2
|
+
_extends = Object.assign || function assign(target) {
|
|
3
|
+
for(var i = 1; i < arguments.length; i++){
|
|
4
|
+
var source = arguments[i];
|
|
5
|
+
for(var key in source)if (Object.prototype.hasOwnProperty.call(source, key)) target[key] = source[key];
|
|
6
|
+
}
|
|
7
|
+
return target;
|
|
8
|
+
};
|
|
9
|
+
return _extends.apply(this, arguments);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export { _extends as _ };
|