@module-federation/data-prefetch 0.6.7 → 0.6.9

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.
@@ -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
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
8
- try {
9
- var info = gen[key](arg);
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
- var prefetchPlugin = function() {
143
- return {
11
+ const prefetchPlugin = ()=>({
144
12
  name: 'data-prefetch-runtime-plugin',
145
- initContainer: function initContainer(options) {
146
- var remoteSnapshot = options.remoteSnapshot, remoteInfo = options.remoteInfo, id = options.id, origin = options.origin;
147
- var snapshot = remoteSnapshot;
148
- var name = remoteInfo.name;
149
- var prefetchOptions = {
150
- name: 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: origin,
20
+ origin,
153
21
  remoteSnapshot: snapshot
154
22
  };
155
- var signal = getSignalFromManifest(snapshot);
23
+ const signal = getSignalFromManifest(snapshot);
156
24
  if (!signal) {
157
25
  return options;
158
26
  }
159
27
  if (sharedFlag !== strategy) {
160
- throw new Error("[Module Federation Data Prefetch]: If you want to use data prefetch, the shared strategy must be 'loaded-first'");
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
- var instance = MFDataPrefetch.getInstance(name) || new MFDataPrefetch(prefetchOptions);
163
- var prefetchUrl;
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
- var exist = loadingArray.find(function(loading) {
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
- var promise = instance.loadEntry(prefetchUrl).then(/*#__PURE__*/ _async_to_generator(function() {
176
- var projectExports;
177
- return _ts_generator(this, function(_state) {
178
- switch(_state.label){
179
- case 0:
180
- projectExports = instance.getProjectExports();
181
- if (!_instanceof(projectExports, Promise)) return [
182
- 3,
183
- 2
184
- ];
185
- return [
186
- 4,
187
- projectExports
188
- ];
189
- case 1:
190
- _state.sent();
191
- _state.label = 2;
192
- case 2:
193
- return [
194
- 2,
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: id,
217
- promise: promise
64
+ id,
65
+ promise
218
66
  });
219
67
  return options;
220
68
  },
221
- afterResolve: function afterResolve(options) {
222
- var remoteSnapshot = options.remoteSnapshot, remoteInfo = options.remoteInfo, id = options.id, origin = options.origin;
223
- var snapshot = remoteSnapshot;
224
- var name = remoteInfo.name;
225
- var prefetchOptions = {
226
- name: 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: origin,
76
+ origin,
229
77
  remoteSnapshot: snapshot
230
78
  };
231
- var signal = getSignalFromManifest(snapshot);
79
+ const signal = getSignalFromManifest(snapshot);
232
80
  if (!signal) {
233
81
  return options;
234
82
  }
235
- var inited = loadingArray.some(function(info) {
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("[Module Federation Data Prefetch]: If you want to use data prefetch, the shared strategy must be 'loaded-first'");
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
- var instance = MFDataPrefetch.getInstance(name) || new MFDataPrefetch(prefetchOptions);
245
- var prefetchUrl;
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
- var index = loadingArray.findIndex(function(loading) {
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
- var promise = instance.loadEntry(prefetchUrl).then(/*#__PURE__*/ _async_to_generator(function() {
259
- var projectExports;
260
- return _ts_generator(this, function(_state) {
261
- switch(_state.label){
262
- case 0:
263
- projectExports = instance.getProjectExports();
264
- if (!_instanceof(projectExports, Promise)) return [
265
- 3,
266
- 2
267
- ];
268
- return [
269
- 4,
270
- projectExports
271
- ];
272
- case 1:
273
- _state.sent();
274
- _state.label = 2;
275
- case 2:
276
- return [
277
- 2,
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: id,
300
- promise: promise
125
+ id,
126
+ promise
301
127
  });
302
128
  return options;
303
129
  },
304
- onLoad: function onLoad(options) {
305
- return _async_to_generator(function() {
306
- var _loadingArray_find, remote, id, name, promise, prefetch, prefetchValue, instance;
307
- return _ts_generator(this, function(_state) {
308
- switch(_state.label){
309
- case 0:
310
- remote = options.remote, id = options.id;
311
- name = remote.name;
312
- promise = (_loadingArray_find = loadingArray.find(function(loading) {
313
- return loading.id === id;
314
- })) === null || _loadingArray_find === void 0 ? void 0 : _loadingArray_find.promise;
315
- if (!promise) return [
316
- 3,
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: function beforeLoadShare(options) {
350
- var shareInfo = options.shareInfo;
351
- sharedFlag = (shareInfo === null || shareInfo === void 0 ? void 0 : shareInfo.strategy) || sharedFlag;
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 _ };