@next-core/brick-kit 2.159.3 → 2.159.5

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.
@@ -8109,6 +8109,9 @@
8109
8109
  yield loadScriptOfDll(Object.values(dllPath));
8110
8110
  yield loadScriptOfBricksOrTemplates(brickPackages.map(item => item.filePath).concat(templatePackages.map(item => item.filePath)));
8111
8111
  yield loadAllLazyBricks();
8112
+ return {
8113
+ pendingTask: Promise.resolve()
8114
+ };
8112
8115
  } else {
8113
8116
  // 先加载模板
8114
8117
  var templateDeps = brickUtils.getTemplateDepsOfStoryboard(storyboard, templatePackages);
@@ -8117,13 +8120,19 @@
8117
8120
  var {
8118
8121
  dll,
8119
8122
  deps,
8120
- bricks
8123
+ bricks,
8124
+ byProcessors
8121
8125
  } = brickUtils.getDllAndDepsOfStoryboard(yield brickUtils.asyncProcessStoryboard(storyboard, brickTemplateRegistry, templatePackages), brickPackages, {
8122
8126
  ignoreBricksInUnusedCustomTemplates: true
8123
8127
  });
8124
- yield loadScriptOfDll(dll);
8125
- yield loadScriptOfBricksOrTemplates(deps);
8126
- yield loadLazyBricks(bricks);
8128
+ // 需要先阻塞加载 Custom Processors。
8129
+ yield loadScriptOfDll(byProcessors.dll);
8130
+ yield loadScriptOfBricksOrTemplates(byProcessors.deps);
8131
+ // 加载构件资源时,不再阻塞后续业务数据的加载,在挂载构件时再等待该任务完成。
8132
+ // 挂载构件可能包括:Provider 构件实时挂载、路由准备完成后的统一挂载等。
8133
+ return {
8134
+ pendingTask: loadScriptOfDll(dll).then(() => loadScriptOfBricksOrTemplates(deps)).then(() => loadLazyBricks(bricks))
8135
+ };
8127
8136
  }
8128
8137
  });
8129
8138
  return function (_x) {
@@ -8526,14 +8535,14 @@
8526
8535
  args[_key - 1] = _arguments[_key];
8527
8536
  }
8528
8537
  try {
8529
- yield fn(...args);
8538
+ return yield fn(...args);
8530
8539
  } catch (e) {
8531
8540
  if (e instanceof Event && e.target instanceof HTMLScriptElement) {
8532
8541
  // The scripts maybe stale when a user stays in page while upgrades been applied.
8533
8542
  // So we force reloading again automatically.
8534
8543
  // NOTE: reload only once to avoid a infinite loop.
8535
8544
  yield _this8.reloadMicroApps();
8536
- yield fn(...args);
8545
+ return yield fn(...args);
8537
8546
  } else {
8538
8547
  throw e;
8539
8548
  }
@@ -9882,6 +9891,7 @@
9882
9891
  if (expandedBrickConf.bg) {
9883
9892
  // A bg brick has no slotId.
9884
9893
  brick.slotId = undefined;
9894
+ yield _this7.kernel.loadDynamicBricks([brick.type]);
9885
9895
  appendBrick(brick, _this7.kernel.mountPoints.bg);
9886
9896
  } else {
9887
9897
  if (expandedBrickConf.portal) {
@@ -10843,6 +10853,9 @@
10843
10853
  var tracePageEnd = (_apiAnalyzer$getInsta = easyopsAnalytics.apiAnalyzer.getInstance()) === null || _apiAnalyzer$getInsta === void 0 ? void 0 : _apiAnalyzer$getInsta.tracePage();
10844
10854
  var locationContext = _this3.locationContext = new LocationContext(_this3.kernel, location);
10845
10855
  var storyboard = locationContext.matchStoryboard(_this3.kernel.bootstrapData.storyboards);
10856
+
10857
+ /** Pending task for loading bricks */
10858
+ var pendingTask;
10846
10859
  if (storyboard) {
10847
10860
  var _storyboard$meta, _storyboard$meta2, _storyboard$meta3;
10848
10861
  yield _this3.kernel.fulfilStoryboard(storyboard);
@@ -10874,7 +10887,9 @@
10874
10887
 
10875
10888
  // 如果找到匹配的 storyboard,那么根据路由匹配得到的 sub-storyboard 加载它的依赖库。
10876
10889
  var subStoryboard = _this3.locationContext.getSubStoryboardByRoute(storyboard);
10877
- yield _this3.kernel.loadDepsOfStoryboard(subStoryboard);
10890
+ ({
10891
+ pendingTask
10892
+ } = yield _this3.kernel.loadDepsOfStoryboard(subStoryboard));
10878
10893
 
10879
10894
  // 注册 Storyboard 中定义的自定义模板和函数。
10880
10895
  _this3.kernel.registerCustomTemplatesInStoryboard(storyboard);
@@ -11050,14 +11065,21 @@
11050
11065
  }
11051
11066
  _this3.setNavConfig(mountRoutesResult);
11052
11067
  _this3.kernel.toggleLegacyIframe(actualLegacy === "iframe");
11053
- menuInBg.forEach(brick => {
11054
- appendBrick(brick, mountPoints.portal);
11055
- });
11068
+ yield Promise.all(menuInBg.map( /*#__PURE__*/function () {
11069
+ var _ref2 = _asyncToGenerator__default["default"](function* (brick) {
11070
+ yield _this3.kernel.loadDynamicBricks([brick.type]);
11071
+ appendBrick(brick, mountPoints.portal);
11072
+ });
11073
+ return function (_x3) {
11074
+ return _ref2.apply(this, arguments);
11075
+ };
11076
+ }()));
11056
11077
 
11057
11078
  // When we have a matched route other than an abstract route,
11058
11079
  // we say *page found*, otherwise, *page not found*.
11059
11080
  if (route && route.type !== "routes" || failed) {
11060
11081
  var _this3$kernel$bootstr, _this3$kernel$bootstr2, _getAuth$license;
11082
+ yield pendingTask;
11061
11083
  main.length > 0 && mountTree(main, mountPoints.main);
11062
11084
  portal.length > 0 && mountTree(portal, mountPoints.portal);
11063
11085
  afterMountTree(mountPoints.main);