@alicloud/alfa-react 1.6.2-alpha.4 → 1.6.2-alpha.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.
@@ -48,7 +48,8 @@ function createAlfaWidget(option) {
48
48
  dynamicConfig = _ref2.dynamicConfig,
49
49
  manifest = _ref2.manifest,
50
50
  loading = _ref2.loading,
51
- lazyLoad = _ref2.lazyLoad;
51
+ lazyLoad = _ref2.lazyLoad,
52
+ delay = _ref2.delay;
52
53
  if (name.match(/@ali\/widget-/)) {
53
54
  // TODO load style
54
55
  return createCWSWidget(option);
@@ -89,37 +90,54 @@ function createAlfaWidget(option) {
89
90
  if (passedInOption.sandbox && !passedInOption.sandbox.sandBoxUrl && !isOneConsole()) {
90
91
  passedInOption.sandbox.sandBoxUrl = 'about:blank';
91
92
  }
93
+ var useDelay = function useDelay() {
94
+ return useMemo(function () {
95
+ if (typeof delay === 'number') {
96
+ return new Promise(function (resolve) {
97
+ setTimeout(function () {
98
+ resolve();
99
+ }, delay);
100
+ });
101
+ }
102
+ if (typeof delay === 'function') {
103
+ var fnReturn = delay();
104
+ if (typeof fnReturn.then === 'function') return fnReturn;
105
+ if (typeof fnReturn === 'number') return fnReturn;
106
+ }
107
+ return undefined;
108
+ }, []);
109
+ };
92
110
  if (priority === 'low') {
93
111
  return function (props) {
94
- return (
95
- /*#__PURE__*/
96
- // Compatible with old logic
97
- // props should not passed in errorBoundary
98
- React.createElement(LazyLoad, _extends({
99
- placeholder: /*#__PURE__*/React.createElement(Loading, {
100
- loading: loading
101
- })
102
- }, _objectSpread({}, lazyLoad)), /*#__PURE__*/React.createElement(ErrorBoundary, props, /*#__PURE__*/React.createElement(Application, _extends({}, passedInOption, {
103
- style: props.style || passedInOption.style,
104
- deps: dependencies || {},
105
- customProps: _objectSpread({}, props),
106
- preLoader: preLoader
107
- }))))
108
- );
109
- };
110
- }
111
- return function (props) {
112
- return (
113
- /*#__PURE__*/
112
+ var delayPromise = useDelay();
113
+
114
114
  // Compatible with old logic
115
115
  // props should not passed in errorBoundary
116
- React.createElement(ErrorBoundary, props, /*#__PURE__*/React.createElement(Application, _extends({}, passedInOption, {
116
+ return /*#__PURE__*/React.createElement(LazyLoad, _extends({
117
+ placeholder: /*#__PURE__*/React.createElement(Loading, {
118
+ loading: loading
119
+ })
120
+ }, _objectSpread({}, lazyLoad)), /*#__PURE__*/React.createElement(ErrorBoundary, props, /*#__PURE__*/React.createElement(Application, _extends({}, passedInOption, {
121
+ delayPromise: delayPromise,
117
122
  style: props.style || passedInOption.style,
118
123
  deps: dependencies || {},
119
124
  customProps: _objectSpread({}, props),
120
125
  preLoader: preLoader
121
- })))
122
- );
126
+ }))));
127
+ };
128
+ }
129
+ return function (props) {
130
+ var delayPromise = useDelay();
131
+
132
+ // Compatible with old logic
133
+ // props should not passed in errorBoundary
134
+ return /*#__PURE__*/React.createElement(ErrorBoundary, props, /*#__PURE__*/React.createElement(Application, _extends({}, passedInOption, {
135
+ delayPromise: delayPromise,
136
+ style: props.style || passedInOption.style,
137
+ deps: dependencies || {},
138
+ customProps: _objectSpread({}, props),
139
+ preLoader: preLoader
140
+ })));
123
141
  };
124
142
  }
125
143
 
@@ -13,6 +13,7 @@ import Loading from './components/Loading';
13
13
  import { normalizeName, setNativeProperty } from './utils';
14
14
  import { countRegister } from './utils/counter';
15
15
  import { version as loaderVersion } from './version';
16
+ import { forceCheck } from 'react-lazyload';
16
17
  var eventBus = createEventBus();
17
18
  var resolvePath = function resolvePath() {
18
19
  for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
@@ -100,7 +101,7 @@ export default function createApplication(loader) {
100
101
  basename = props.basename,
101
102
  channel = props.channel,
102
103
  onSyncHistory = props.onSyncHistory,
103
- delay = props.delay,
104
+ delayPromise = props.delayPromise,
104
105
  preLoader = props.preLoader;
105
106
  var handleExternalLink = customProps.handleExternalLink;
106
107
  var _useState = useState(null),
@@ -273,16 +274,12 @@ export default function createApplication(loader) {
273
274
  case 0:
274
275
  countRegister(memoOptions.name);
275
276
  fakeBody = memoOptions.container || appRef.current || document.body;
276
- if (!delay) {
277
+ if (!delayPromise) {
277
278
  _context.next = 5;
278
279
  break;
279
280
  }
280
281
  _context.next = 5;
281
- return new Promise(function (resolve) {
282
- setTimeout(function () {
283
- resolve(undefined);
284
- }, delay);
285
- });
282
+ return delayPromise;
286
283
  case 5:
287
284
  if (!preLoader) {
288
285
  _context.next = 11;
@@ -377,7 +374,13 @@ export default function createApplication(loader) {
377
374
  customProps: customProps
378
375
  });
379
376
  case 32:
377
+ // 降低优先级
378
+ setTimeout(function () {
379
+ forceCheck();
380
+ }, 0);
380
381
  (logger === null || logger === void 0 ? void 0 : logger.record) && (logger === null || logger === void 0 ? void 0 : logger.record({
382
+ REQUEST_VERSION: memoOptions.version,
383
+ RESPONSE_VERSION: realVersion,
381
384
  END_TIME: Date.now()
382
385
  }));
383
386
  (logger === null || logger === void 0 ? void 0 : logger.send) && (logger === null || logger === void 0 ? void 0 : logger.send());
@@ -388,7 +391,7 @@ export default function createApplication(loader) {
388
391
 
389
392
  // just run once
390
393
  setAppInstance(app);
391
- case 36:
394
+ case 37:
392
395
  case "end":
393
396
  return _context.stop();
394
397
  }
package/es/index.js CHANGED
@@ -4,5 +4,6 @@ export { default as createAlfaWidget, useAlfaWidget } from './createAlfaWidget';
4
4
  export { eventEmitter as widgetEventEmitter } from './widget/index';
5
5
  export { default as addGlobalRequestInterceptor } from './addGlobalRequestInterceptor';
6
6
  export * from './utils';
7
+ export { forceCheck } from 'react-lazyload';
7
8
  // todo
8
9
  export { createEventBus, prefetch } from '@alicloud/alfa-core';
package/es/version.js CHANGED
@@ -1 +1 @@
1
- export var version = '1.6.2-alpha.4';
1
+ export var version = '1.6.2-alpha.5';
@@ -59,7 +59,8 @@ function createAlfaWidget(option) {
59
59
  dynamicConfig = _ref2.dynamicConfig,
60
60
  manifest = _ref2.manifest,
61
61
  loading = _ref2.loading,
62
- lazyLoad = _ref2.lazyLoad;
62
+ lazyLoad = _ref2.lazyLoad,
63
+ delay = _ref2.delay;
63
64
  if (name.match(/@ali\/widget-/)) {
64
65
  // TODO load style
65
66
  return (0, _widget.createCWSWidget)(option);
@@ -100,37 +101,54 @@ function createAlfaWidget(option) {
100
101
  if (passedInOption.sandbox && !passedInOption.sandbox.sandBoxUrl && !(0, _oneConsole.isOneConsole)()) {
101
102
  passedInOption.sandbox.sandBoxUrl = 'about:blank';
102
103
  }
104
+ var useDelay = function useDelay() {
105
+ return (0, _react.useMemo)(function () {
106
+ if (typeof delay === 'number') {
107
+ return new Promise(function (resolve) {
108
+ setTimeout(function () {
109
+ resolve();
110
+ }, delay);
111
+ });
112
+ }
113
+ if (typeof delay === 'function') {
114
+ var fnReturn = delay();
115
+ if (typeof fnReturn.then === 'function') return fnReturn;
116
+ if (typeof fnReturn === 'number') return fnReturn;
117
+ }
118
+ return undefined;
119
+ }, []);
120
+ };
103
121
  if (priority === 'low') {
104
122
  return function (props) {
105
- return (
106
- /*#__PURE__*/
107
- // Compatible with old logic
108
- // props should not passed in errorBoundary
109
- _react.default.createElement(_reactLazyload.default, (0, _extends2.default)({
110
- placeholder: /*#__PURE__*/_react.default.createElement(_Loading.default, {
111
- loading: loading
112
- })
113
- }, _objectSpread({}, lazyLoad)), /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, props, /*#__PURE__*/_react.default.createElement(Application, (0, _extends2.default)({}, passedInOption, {
114
- style: props.style || passedInOption.style,
115
- deps: dependencies || {},
116
- customProps: _objectSpread({}, props),
117
- preLoader: preLoader
118
- }))))
119
- );
120
- };
121
- }
122
- return function (props) {
123
- return (
124
- /*#__PURE__*/
123
+ var delayPromise = useDelay();
124
+
125
125
  // Compatible with old logic
126
126
  // props should not passed in errorBoundary
127
- _react.default.createElement(_ErrorBoundary.default, props, /*#__PURE__*/_react.default.createElement(Application, (0, _extends2.default)({}, passedInOption, {
127
+ return /*#__PURE__*/_react.default.createElement(_reactLazyload.default, (0, _extends2.default)({
128
+ placeholder: /*#__PURE__*/_react.default.createElement(_Loading.default, {
129
+ loading: loading
130
+ })
131
+ }, _objectSpread({}, lazyLoad)), /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, props, /*#__PURE__*/_react.default.createElement(Application, (0, _extends2.default)({}, passedInOption, {
132
+ delayPromise: delayPromise,
128
133
  style: props.style || passedInOption.style,
129
134
  deps: dependencies || {},
130
135
  customProps: _objectSpread({}, props),
131
136
  preLoader: preLoader
132
- })))
133
- );
137
+ }))));
138
+ };
139
+ }
140
+ return function (props) {
141
+ var delayPromise = useDelay();
142
+
143
+ // Compatible with old logic
144
+ // props should not passed in errorBoundary
145
+ return /*#__PURE__*/_react.default.createElement(_ErrorBoundary.default, props, /*#__PURE__*/_react.default.createElement(Application, (0, _extends2.default)({}, passedInOption, {
146
+ delayPromise: delayPromise,
147
+ style: props.style || passedInOption.style,
148
+ deps: dependencies || {},
149
+ customProps: _objectSpread({}, props),
150
+ preLoader: preLoader
151
+ })));
134
152
  };
135
153
  }
136
154
 
@@ -19,6 +19,7 @@ var _Loading = _interopRequireDefault(require("./components/Loading"));
19
19
  var _utils = require("./utils");
20
20
  var _counter = require("./utils/counter");
21
21
  var _version = require("./version");
22
+ var _reactLazyload = require("react-lazyload");
22
23
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
24
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
24
25
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
@@ -110,7 +111,7 @@ function createApplication(loader) {
110
111
  basename = props.basename,
111
112
  channel = props.channel,
112
113
  onSyncHistory = props.onSyncHistory,
113
- delay = props.delay,
114
+ delayPromise = props.delayPromise,
114
115
  preLoader = props.preLoader;
115
116
  var handleExternalLink = customProps.handleExternalLink;
116
117
  var _useState = (0, _react.useState)(null),
@@ -283,16 +284,12 @@ function createApplication(loader) {
283
284
  case 0:
284
285
  (0, _counter.countRegister)(memoOptions.name);
285
286
  fakeBody = memoOptions.container || appRef.current || document.body;
286
- if (!delay) {
287
+ if (!delayPromise) {
287
288
  _context.next = 5;
288
289
  break;
289
290
  }
290
291
  _context.next = 5;
291
- return new Promise(function (resolve) {
292
- setTimeout(function () {
293
- resolve(undefined);
294
- }, delay);
295
- });
292
+ return delayPromise;
296
293
  case 5:
297
294
  if (!preLoader) {
298
295
  _context.next = 11;
@@ -387,7 +384,13 @@ function createApplication(loader) {
387
384
  customProps: customProps
388
385
  });
389
386
  case 32:
387
+ // 降低优先级
388
+ setTimeout(function () {
389
+ (0, _reactLazyload.forceCheck)();
390
+ }, 0);
390
391
  (logger === null || logger === void 0 ? void 0 : logger.record) && (logger === null || logger === void 0 ? void 0 : logger.record({
392
+ REQUEST_VERSION: memoOptions.version,
393
+ RESPONSE_VERSION: realVersion,
391
394
  END_TIME: Date.now()
392
395
  }));
393
396
  (logger === null || logger === void 0 ? void 0 : logger.send) && (logger === null || logger === void 0 ? void 0 : logger.send());
@@ -398,7 +401,7 @@ function createApplication(loader) {
398
401
 
399
402
  // just run once
400
403
  setAppInstance(app);
401
- case 36:
404
+ case 37:
402
405
  case "end":
403
406
  return _context.stop();
404
407
  }
package/lib/index.js CHANGED
@@ -13,6 +13,7 @@ var _exportNames = {
13
13
  useAlfaWidget: true,
14
14
  widgetEventEmitter: true,
15
15
  addGlobalRequestInterceptor: true,
16
+ forceCheck: true,
16
17
  createEventBus: true,
17
18
  prefetch: true
18
19
  };
@@ -46,6 +47,12 @@ Object.defineProperty(exports, "createEventBus", {
46
47
  return _alfaCore.createEventBus;
47
48
  }
48
49
  });
50
+ Object.defineProperty(exports, "forceCheck", {
51
+ enumerable: true,
52
+ get: function get() {
53
+ return _reactLazyload.forceCheck;
54
+ }
55
+ });
49
56
  Object.defineProperty(exports, "prefetch", {
50
57
  enumerable: true,
51
58
  get: function get() {
@@ -87,6 +94,7 @@ Object.keys(_utils).forEach(function (key) {
87
94
  }
88
95
  });
89
96
  });
97
+ var _reactLazyload = require("react-lazyload");
90
98
  var _alfaCore = require("@alicloud/alfa-core");
91
99
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
92
100
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
package/lib/version.js CHANGED
@@ -4,5 +4,5 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.version = void 0;
7
- var version = '1.6.2-alpha.4';
7
+ var version = '1.6.2-alpha.5';
8
8
  exports.version = version;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alicloud/alfa-react",
3
- "version": "1.6.2-alpha.4",
3
+ "version": "1.6.2-alpha.5",
4
4
  "description": "Alfa Framework (React Version)",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -54,6 +54,7 @@ export interface IApplicationProps<C = any> extends AlfaFactoryOption {
54
54
  */
55
55
  history?: any;
56
56
  preLoader?: BaseLoader['register'];
57
+ delayPromise?: Promise<any>;
57
58
  }
58
59
  /**
59
60
  * container for microApp mount
package/types/index.d.ts CHANGED
@@ -4,4 +4,5 @@ export { default as createAlfaWidget, useAlfaWidget } from './createAlfaWidget';
4
4
  export { eventEmitter as widgetEventEmitter } from './widget/index';
5
5
  export { default as addGlobalRequestInterceptor } from './addGlobalRequestInterceptor';
6
6
  export * from './utils';
7
+ export { forceCheck } from 'react-lazyload';
7
8
  export { createEventBus, prefetch } from '@alicloud/alfa-core';
@@ -47,7 +47,7 @@ export interface AlfaFactoryOption extends IAppConfig {
47
47
  /**
48
48
  * 延迟加载
49
49
  */
50
- delay?: number;
50
+ delay?: number | (() => Promise<any>);
51
51
  /**
52
52
  * 优先级
53
53
  * - high: 在 mount 前尽可能早的加载
@@ -1 +1 @@
1
- export declare const version = "1.6.2-alpha.4";
1
+ export declare const version = "1.6.2-alpha.5";