@alicloud/alfa-react 1.3.3 → 1.4.0-alpha.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.
@@ -25,7 +25,7 @@ var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
25
25
  _this = _super.call(this, props);
26
26
  _this.state = {
27
27
  hasError: false,
28
- error: null
28
+ error: undefined
29
29
  };
30
30
  return _this;
31
31
  }
@@ -46,8 +46,9 @@ var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
46
46
  isFunction((_window = window) === null || _window === void 0 ? void 0 : (_window$__bl = _window.__bl) === null || _window$__bl === void 0 ? void 0 : _window$__bl.error) && ((_window2 = window) === null || _window2 === void 0 ? void 0 : (_window2$__bl = _window2.__bl) === null || _window2$__bl === void 0 ? void 0 : _window2$__bl.error(error, errorInfo)); // You can also log the error to an error reporting service in appDidCatch
47
47
 
48
48
  appDidCatch && appDidCatch(error, errorInfo);
49
- logger === null || logger === void 0 ? void 0 : logger.error({
50
- E_MSG: '',
49
+ (logger === null || logger === void 0 ? void 0 : logger.error) && logger.error({
50
+ E_CODE: 'RuntimeError',
51
+ E_MSG: error.message,
51
52
  E_STACK: error,
52
53
  C_STACK: errorInfo
53
54
  });
@@ -58,7 +59,8 @@ var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
58
59
  var error = this.state.error;
59
60
 
60
61
  if (this.state.hasError) {
61
- // You can render any custom fallback UI
62
+ if (this.props.fallbackRender) return this.props.fallbackRender(error); // You can render any custom fallback UI
63
+
62
64
  return /*#__PURE__*/React.createElement(ErrorPanel, {
63
65
  error: error
64
66
  });
@@ -11,6 +11,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
11
11
  import React, { useRef, useEffect, useState, useMemo } from 'react';
12
12
  import Loading from './components/Loading';
13
13
  import { normalizeName } from './utils';
14
+ import { version as loaderVersion } from './version';
14
15
 
15
16
  /**
16
17
  * container for microApp mount
@@ -44,16 +45,19 @@ export default function createApplication(loader) {
44
45
  app = _useState2[0],
45
46
  setApp = _useState2[1];
46
47
 
47
- var appRef = useRef(null);
48
+ var appRef = useRef(undefined);
48
49
  var tagName = normalizeName(props.name);
49
50
  var sandbox = useMemo(function () {
50
51
  return _objectSpread(_objectSpread({}, customSandbox), {}, {
52
+ // allowResources: [
53
+ // ...(customSandbox?.allowResources || []),
54
+ // /^https?:\/\/at\.alicdn\.com\//,
55
+ // ],
51
56
  externalsVars: [].concat(_toConsumableArray((customSandbox === null || customSandbox === void 0 ? void 0 : customSandbox.externalsVars) || []), [// global vars used in ConsoleBase.forApp
52
57
  '_console_base_ready_'])
53
58
  });
54
59
  }, [customSandbox]);
55
60
  useEffect(function () {
56
- // eslint-disable-next-line no-useless-catch
57
61
  _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
58
62
  var _yield$loader$registe, App, logger;
59
63
 
@@ -61,15 +65,7 @@ export default function createApplication(loader) {
61
65
  while (1) {
62
66
  switch (_context.prev = _context.next) {
63
67
  case 0:
64
- if (!app) {
65
- _context.next = 2;
66
- break;
67
- }
68
-
69
- return _context.abrupt("return");
70
-
71
- case 2:
72
- _context.next = 4;
68
+ _context.next = 2;
73
69
  return loader.register({
74
70
  entry: entry,
75
71
  url: url,
@@ -89,40 +85,42 @@ export default function createApplication(loader) {
89
85
  beforeUpdate: beforeUpdate
90
86
  });
91
87
 
92
- case 4:
88
+ case 2:
93
89
  _yield$loader$registe = _context.sent;
94
90
  App = _yield$loader$registe.app;
95
91
  logger = _yield$loader$registe.logger;
96
92
 
97
93
  if (App) {
98
- _context.next = 9;
94
+ _context.next = 7;
99
95
  break;
100
96
  }
101
97
 
102
- return _context.abrupt("return", logger === null || logger === void 0 ? void 0 : logger.error({
98
+ return _context.abrupt("return", (logger === null || logger === void 0 ? void 0 : logger.error) && logger.error({
99
+ E_CODE: 'RuntimeError',
103
100
  E_MSG: 'load app failed.'
104
101
  }));
105
102
 
106
- case 9:
103
+ case 7:
107
104
  if (appRef.current) {
108
- _context.next = 11;
105
+ _context.next = 9;
109
106
  break;
110
107
  }
111
108
 
112
- return _context.abrupt("return", logger === null || logger === void 0 ? void 0 : logger.error({
109
+ return _context.abrupt("return", (logger === null || logger === void 0 ? void 0 : logger.error) && logger.error({
110
+ E_CODE: 'RuntimeError',
113
111
  E_MSG: 'cannot find container.'
114
112
  }));
115
113
 
116
- case 11:
117
- _context.next = 13;
114
+ case 9:
115
+ _context.next = 11;
118
116
  return App.mount(appRef.current, {
119
117
  customProps: customProps
120
118
  });
121
119
 
122
- case 13:
120
+ case 11:
123
121
  setApp(App);
124
122
 
125
- case 14:
123
+ case 12:
126
124
  case "end":
127
125
  return _context.stop();
128
126
  }
@@ -141,15 +139,21 @@ export default function createApplication(loader) {
141
139
  app.update(customProps);
142
140
  }
143
141
 
142
+ var dataAttrs = {
143
+ 'data-id': version,
144
+ 'data-version': version,
145
+ 'data-loader': loaderVersion
146
+ };
144
147
  return /*#__PURE__*/React.createElement(React.Fragment, null, !app ? /*#__PURE__*/React.createElement(Loading, {
145
148
  loading: loading
146
- }) : null, sandbox && sandbox.disableFakeBody ? /*#__PURE__*/React.createElement(tagName, {
149
+ }) : null, sandbox && sandbox.disableFakeBody ? /*#__PURE__*/React.createElement(tagName, _objectSpread({
147
150
  style: style,
148
151
  className: className,
149
- ref: appRef,
150
- dataId: name
151
- }) : /*#__PURE__*/React.createElement(tagName, {}, /*#__PURE__*/React.createElement('div', {
152
152
  ref: appRef
153
+ }, dataAttrs)) : /*#__PURE__*/React.createElement(tagName, _objectSpread({}, dataAttrs), /*#__PURE__*/React.createElement('div', {
154
+ ref: appRef,
155
+ style: style,
156
+ className: className
153
157
  })));
154
158
  };
155
159
  }
@@ -7,8 +7,9 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
7
7
 
8
8
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
9
9
 
10
- import { getLocale } from '@alicloud/alfa-core';
11
- import { getConsoleConfig } from '../utils/getConsoleConfig'; // inject consoleConfig & locales after load
10
+ import { getConfig, getLocale } from '@alicloud/alfa-core';
11
+ import { getConsoleConfig } from '../utils/getConsoleConfig';
12
+ import { getConsoleGlobal } from '../utils/getConsoleGlobal'; // inject consoleConfig & locales after load
12
13
 
13
14
  function afterLoadHook(_x) {
14
15
  return _afterLoadHook.apply(this, arguments);
@@ -16,7 +17,7 @@ function afterLoadHook(_x) {
16
17
 
17
18
  function _afterLoadHook() {
18
19
  _afterLoadHook = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(appConfig) {
19
- var app, logger, defaultConsoleConfig, CONFIG_START_TIME, _yield$Promise$all$ca, _yield$Promise$all$ca2, consoleConfig, messages, CONFIG_END_TIME, i18nMessages, END_TIME;
20
+ var app, logger, defaultConsoleConfig, defaultConsoleGlobal, CONFIG_START_TIME, configData, _yield$Promise$all, _yield$Promise$all2, consoleConfig, consoleGlobal, messages, CONFIG_END_TIME, i18nMessages, END_TIME;
20
21
 
21
22
  return _regeneratorRuntime.wrap(function _callee$(_context) {
22
23
  while (1) {
@@ -24,39 +25,41 @@ function _afterLoadHook() {
24
25
  case 0:
25
26
  app = appConfig.app, logger = appConfig.logger;
26
27
  defaultConsoleConfig = window.ALIYUN_CONSOLE_CONFIG || {};
28
+ defaultConsoleGlobal = window.ALIYUN_CONSOLE_GLOBAL || {};
27
29
  CONFIG_START_TIME = Date.now();
28
- _context.next = 5;
29
- return Promise.all([getConsoleConfig(appConfig, defaultConsoleConfig), getLocale(appConfig)]).catch(function (e) {
30
- logger === null || logger === void 0 ? void 0 : logger.error({
31
- E_MSG: 'fetch config & locale error.',
32
- E_STACK: e
33
- });
34
- return [{}, {}];
35
- });
30
+ _context.next = 6;
31
+ return getConfig(appConfig);
32
+
33
+ case 6:
34
+ configData = _context.sent;
35
+ _context.next = 9;
36
+ return Promise.all([getConsoleConfig(configData, defaultConsoleConfig), getConsoleGlobal(configData, defaultConsoleGlobal), getLocale(appConfig)]);
36
37
 
37
- case 5:
38
- _yield$Promise$all$ca = _context.sent;
39
- _yield$Promise$all$ca2 = _slicedToArray(_yield$Promise$all$ca, 2);
40
- consoleConfig = _yield$Promise$all$ca2[0];
41
- messages = _yield$Promise$all$ca2[1];
38
+ case 9:
39
+ _yield$Promise$all = _context.sent;
40
+ _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 3);
41
+ consoleConfig = _yield$Promise$all2[0];
42
+ consoleGlobal = _yield$Promise$all2[1];
43
+ messages = _yield$Promise$all2[2];
42
44
  CONFIG_END_TIME = Date.now();
43
- i18nMessages = _objectSpread(_objectSpread({}, window.ALIYUN_CONSOLE_I18N_MESSAGE), messages);
45
+ i18nMessages = _objectSpread(_objectSpread({}, window.ALIYUN_CONSOLE_I18N_MESSAGE), messages); // inject global variables
44
46
 
45
47
  if (app && app.context) {
46
48
  app.context.window.ALIYUN_CONSOLE_CONFIG = consoleConfig;
47
- app.context.window.ALIYUN_CONSOLE_I18N_MESSAGE = i18nMessages; // (app.context.history as any) = {};
49
+ app.context.window.ALIYUN_CONSOLE_GLOBAL = consoleGlobal;
50
+ app.context.window.ALIYUN_CONSOLE_I18N_MESSAGE = i18nMessages;
48
51
  }
49
52
 
50
53
  END_TIME = Date.now();
51
- logger === null || logger === void 0 ? void 0 : logger.record({
54
+ (logger === null || logger === void 0 ? void 0 : logger.record) && logger.record({
52
55
  CONFIG_START_TIME: CONFIG_START_TIME,
53
56
  CONFIG_END_TIME: CONFIG_END_TIME,
54
57
  END_TIME: END_TIME
55
58
  });
56
- logger === null || logger === void 0 ? void 0 : logger.send();
59
+ (logger === null || logger === void 0 ? void 0 : logger.send) && logger.send();
57
60
  return _context.abrupt("return", appConfig);
58
61
 
59
- case 16:
62
+ case 21:
60
63
  case "end":
61
64
  return _context.stop();
62
65
  }
@@ -10,30 +10,21 @@ function beforeResolveHook(_x) {
10
10
 
11
11
  function _beforeResolveHook() {
12
12
  _beforeResolveHook = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(appConfig) {
13
- var resolvedManifest, logger, START_TIME, MANIFEST_START_TIME, MANIFEST_END_TIME;
13
+ var logger, START_TIME, MANIFEST_START_TIME, resolvedManifest, MANIFEST_END_TIME;
14
14
  return _regeneratorRuntime.wrap(function _callee$(_context) {
15
15
  while (1) {
16
16
  switch (_context.prev = _context.next) {
17
17
  case 0:
18
- resolvedManifest = appConfig.manifest;
19
18
  logger = appConfig.logger;
20
19
  START_TIME = Date.now();
21
20
  MANIFEST_START_TIME = Date.now();
22
-
23
- if (resolvedManifest) {
24
- _context.next = 8;
25
- break;
26
- }
27
-
28
- _context.next = 7;
21
+ _context.next = 5;
29
22
  return getManifest(appConfig);
30
23
 
31
- case 7:
24
+ case 5:
32
25
  resolvedManifest = _context.sent;
33
-
34
- case 8:
35
26
  MANIFEST_END_TIME = Date.now();
36
- logger === null || logger === void 0 ? void 0 : logger.record({
27
+ (logger === null || logger === void 0 ? void 0 : logger.record) && logger.record({
37
28
  LOADER_VERSION: LOADER_VERSION,
38
29
  START_TIME: START_TIME,
39
30
  MANIFEST_START_TIME: MANIFEST_START_TIME,
@@ -42,7 +33,7 @@ function _beforeResolveHook() {
42
33
  appConfig.manifest = resolvedManifest;
43
34
  return _context.abrupt("return", appConfig);
44
35
 
45
- case 12:
36
+ case 10:
46
37
  case "end":
47
38
  return _context.stop();
48
39
  }
@@ -6,7 +6,6 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
6
6
 
7
7
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
8
 
9
- import { getConfig } from '@alicloud/alfa-core';
10
9
  import md5 from 'crypto-js/md5';
11
10
  /**
12
11
  * transform
@@ -14,12 +13,13 @@ import md5 from 'crypto-js/md5';
14
13
  */
15
14
 
16
15
  var processFeatures = function processFeatures(features) {
16
+ if (!features) return {};
17
17
  return Object.keys(features).reduce(function (newFeatures, key) {
18
18
  var _ALIYUN_CONSOLE_CONFI;
19
19
 
20
- var feature = features[key];
20
+ var feature = features === null || features === void 0 ? void 0 : features[key];
21
21
  if (!feature) return newFeatures;
22
- var uid = ((_ALIYUN_CONSOLE_CONFI = window.ALIYUN_CONSOLE_CONFIG) === null || _ALIYUN_CONSOLE_CONFI === void 0 ? void 0 : _ALIYUN_CONSOLE_CONFI.CURRENT_PK) || '';
22
+ var uid = ((_ALIYUN_CONSOLE_CONFI = window.ALIYUN_CONSOLE_CONFIG) === null || _ALIYUN_CONSOLE_CONFI === void 0 ? void 0 : _ALIYUN_CONSOLE_CONFI.MAIN_ACCOUNT_PK) || '';
23
23
  var md5Uid = md5(uid).toString();
24
24
  var enableBlockList = feature.enableBlockList,
25
25
  enableSampling = feature.enableSampling,
@@ -59,20 +59,14 @@ var mergeConfigDataWithConsoleConfig = function mergeConfigDataWithConsoleConfig
59
59
  };
60
60
 
61
61
  export var getConsoleConfig = /*#__PURE__*/function () {
62
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(config, consoleConfig) {
63
- var configData;
62
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(configData, consoleConfig) {
64
63
  return _regeneratorRuntime.wrap(function _callee$(_context) {
65
64
  while (1) {
66
65
  switch (_context.prev = _context.next) {
67
66
  case 0:
68
- _context.next = 2;
69
- return getConfig(config);
70
-
71
- case 2:
72
- configData = _context.sent;
73
67
  return _context.abrupt("return", mergeConfigDataWithConsoleConfig(configData, consoleConfig));
74
68
 
75
- case 4:
69
+ case 1:
76
70
  case "end":
77
71
  return _context.stop();
78
72
  }
@@ -0,0 +1,28 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
4
+
5
+ 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; }
6
+
7
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
8
+
9
+ export var getConsoleGlobal = /*#__PURE__*/function () {
10
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(configData, global) {
11
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
12
+ while (1) {
13
+ switch (_context.prev = _context.next) {
14
+ case 0:
15
+ return _context.abrupt("return", _objectSpread(_objectSpread({}, global), configData === null || configData === void 0 ? void 0 : configData.GLOBAL_DATA));
16
+
17
+ case 1:
18
+ case "end":
19
+ return _context.stop();
20
+ }
21
+ }
22
+ }, _callee);
23
+ }));
24
+
25
+ return function getConsoleGlobal(_x, _x2) {
26
+ return _ref.apply(this, arguments);
27
+ };
28
+ }();
package/es/version.js CHANGED
@@ -1 +1 @@
1
- export var version = '1.3.3';
1
+ export var version = '1.4.0-alpha.0';
package/lib/app.js CHANGED
@@ -80,7 +80,7 @@ var Application = function Application(props) {
80
80
  app = _useState4[0],
81
81
  setApp = _useState4[1];
82
82
 
83
- var appRef = (0, _react.useRef)(null);
83
+ var appRef = (0, _react.useRef)(undefined);
84
84
  (0, _react.useEffect)(function () {
85
85
  (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
86
86
  var App;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  interface IProps {
3
- error: Error | null;
3
+ error?: Error;
4
4
  }
5
5
  declare const ErrorPanel: React.FC<IProps>;
6
6
  export default ErrorPanel;
@@ -1,12 +1,13 @@
1
1
  import React, { ErrorInfo } from 'react';
2
2
  import { AlfaLogger } from '@alicloud/alfa-core';
3
3
  interface IProps {
4
+ fallbackRender?: (error?: Error) => Element;
4
5
  appDidCatch?: (error?: Error, info?: ErrorInfo) => void;
5
6
  logger?: AlfaLogger;
6
7
  }
7
8
  interface State {
8
9
  hasError: boolean;
9
- error: Error | null;
10
+ error?: Error;
10
11
  }
11
12
  declare class ErrorBoundary extends React.Component<IProps, State> {
12
13
  constructor(props: IProps);
@@ -39,7 +39,7 @@ var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
39
39
  _this = _super.call(this, props);
40
40
  _this.state = {
41
41
  hasError: false,
42
- error: null
42
+ error: undefined
43
43
  };
44
44
  return _this;
45
45
  }
@@ -60,8 +60,9 @@ var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
60
60
  (0, _isFunction.default)((_window = window) === null || _window === void 0 ? void 0 : (_window$__bl = _window.__bl) === null || _window$__bl === void 0 ? void 0 : _window$__bl.error) && ((_window2 = window) === null || _window2 === void 0 ? void 0 : (_window2$__bl = _window2.__bl) === null || _window2$__bl === void 0 ? void 0 : _window2$__bl.error(error, errorInfo)); // You can also log the error to an error reporting service in appDidCatch
61
61
 
62
62
  appDidCatch && appDidCatch(error, errorInfo);
63
- logger === null || logger === void 0 ? void 0 : logger.error({
64
- E_MSG: '',
63
+ (logger === null || logger === void 0 ? void 0 : logger.error) && logger.error({
64
+ E_CODE: 'RuntimeError',
65
+ E_MSG: error.message,
65
66
  E_STACK: error,
66
67
  C_STACK: errorInfo
67
68
  });
@@ -72,7 +73,8 @@ var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
72
73
  var error = this.state.error;
73
74
 
74
75
  if (this.state.hasError) {
75
- // You can render any custom fallback UI
76
+ if (this.props.fallbackRender) return this.props.fallbackRender(error); // You can render any custom fallback UI
77
+
76
78
  return /*#__PURE__*/_react.default.createElement(_ErrorPanel.default, {
77
79
  error: error
78
80
  });
@@ -25,6 +25,8 @@ var _Loading = _interopRequireDefault(require("./components/Loading"));
25
25
 
26
26
  var _utils = require("./utils");
27
27
 
28
+ var _version = require("./version");
29
+
28
30
  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); }
29
31
 
30
32
  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; }
@@ -65,16 +67,19 @@ function createApplication(loader) {
65
67
  app = _useState2[0],
66
68
  setApp = _useState2[1];
67
69
 
68
- var appRef = (0, _react.useRef)(null);
70
+ var appRef = (0, _react.useRef)(undefined);
69
71
  var tagName = (0, _utils.normalizeName)(props.name);
70
72
  var sandbox = (0, _react.useMemo)(function () {
71
73
  return _objectSpread(_objectSpread({}, customSandbox), {}, {
74
+ // allowResources: [
75
+ // ...(customSandbox?.allowResources || []),
76
+ // /^https?:\/\/at\.alicdn\.com\//,
77
+ // ],
72
78
  externalsVars: [].concat((0, _toConsumableArray2.default)((customSandbox === null || customSandbox === void 0 ? void 0 : customSandbox.externalsVars) || []), [// global vars used in ConsoleBase.forApp
73
79
  '_console_base_ready_'])
74
80
  });
75
81
  }, [customSandbox]);
76
82
  (0, _react.useEffect)(function () {
77
- // eslint-disable-next-line no-useless-catch
78
83
  (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
79
84
  var _yield$loader$registe, App, logger;
80
85
 
@@ -82,15 +87,7 @@ function createApplication(loader) {
82
87
  while (1) {
83
88
  switch (_context.prev = _context.next) {
84
89
  case 0:
85
- if (!app) {
86
- _context.next = 2;
87
- break;
88
- }
89
-
90
- return _context.abrupt("return");
91
-
92
- case 2:
93
- _context.next = 4;
90
+ _context.next = 2;
94
91
  return loader.register({
95
92
  entry: entry,
96
93
  url: url,
@@ -110,40 +107,42 @@ function createApplication(loader) {
110
107
  beforeUpdate: beforeUpdate
111
108
  });
112
109
 
113
- case 4:
110
+ case 2:
114
111
  _yield$loader$registe = _context.sent;
115
112
  App = _yield$loader$registe.app;
116
113
  logger = _yield$loader$registe.logger;
117
114
 
118
115
  if (App) {
119
- _context.next = 9;
116
+ _context.next = 7;
120
117
  break;
121
118
  }
122
119
 
123
- return _context.abrupt("return", logger === null || logger === void 0 ? void 0 : logger.error({
120
+ return _context.abrupt("return", (logger === null || logger === void 0 ? void 0 : logger.error) && logger.error({
121
+ E_CODE: 'RuntimeError',
124
122
  E_MSG: 'load app failed.'
125
123
  }));
126
124
 
127
- case 9:
125
+ case 7:
128
126
  if (appRef.current) {
129
- _context.next = 11;
127
+ _context.next = 9;
130
128
  break;
131
129
  }
132
130
 
133
- return _context.abrupt("return", logger === null || logger === void 0 ? void 0 : logger.error({
131
+ return _context.abrupt("return", (logger === null || logger === void 0 ? void 0 : logger.error) && logger.error({
132
+ E_CODE: 'RuntimeError',
134
133
  E_MSG: 'cannot find container.'
135
134
  }));
136
135
 
137
- case 11:
138
- _context.next = 13;
136
+ case 9:
137
+ _context.next = 11;
139
138
  return App.mount(appRef.current, {
140
139
  customProps: customProps
141
140
  });
142
141
 
143
- case 13:
142
+ case 11:
144
143
  setApp(App);
145
144
 
146
- case 14:
145
+ case 12:
147
146
  case "end":
148
147
  return _context.stop();
149
148
  }
@@ -161,15 +160,21 @@ function createApplication(loader) {
161
160
  app.update(customProps);
162
161
  }
163
162
 
163
+ var dataAttrs = {
164
+ 'data-id': version,
165
+ 'data-version': version,
166
+ 'data-loader': _version.version
167
+ };
164
168
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !app ? /*#__PURE__*/_react.default.createElement(_Loading.default, {
165
169
  loading: loading
166
- }) : null, sandbox && sandbox.disableFakeBody ? /*#__PURE__*/_react.default.createElement(tagName, {
170
+ }) : null, sandbox && sandbox.disableFakeBody ? /*#__PURE__*/_react.default.createElement(tagName, _objectSpread({
167
171
  style: style,
168
172
  className: className,
169
- ref: appRef,
170
- dataId: name
171
- }) : /*#__PURE__*/_react.default.createElement(tagName, {}, /*#__PURE__*/_react.default.createElement('div', {
172
173
  ref: appRef
174
+ }, dataAttrs)) : /*#__PURE__*/_react.default.createElement(tagName, _objectSpread({}, dataAttrs), /*#__PURE__*/_react.default.createElement('div', {
175
+ ref: appRef,
176
+ style: style,
177
+ className: className
173
178
  })));
174
179
  };
175
180
  }
@@ -19,6 +19,8 @@ var _alfaCore = require("@alicloud/alfa-core");
19
19
 
20
20
  var _getConsoleConfig = require("../utils/getConsoleConfig");
21
21
 
22
+ var _getConsoleGlobal = require("../utils/getConsoleGlobal");
23
+
22
24
  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; }
23
25
 
24
26
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
@@ -30,7 +32,7 @@ function afterLoadHook(_x) {
30
32
 
31
33
  function _afterLoadHook() {
32
34
  _afterLoadHook = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(appConfig) {
33
- var app, logger, defaultConsoleConfig, CONFIG_START_TIME, _yield$Promise$all$ca, _yield$Promise$all$ca2, consoleConfig, messages, CONFIG_END_TIME, i18nMessages, END_TIME;
35
+ var app, logger, defaultConsoleConfig, defaultConsoleGlobal, CONFIG_START_TIME, configData, _yield$Promise$all, _yield$Promise$all2, consoleConfig, consoleGlobal, messages, CONFIG_END_TIME, i18nMessages, END_TIME;
34
36
 
35
37
  return _regenerator.default.wrap(function _callee$(_context) {
36
38
  while (1) {
@@ -38,39 +40,41 @@ function _afterLoadHook() {
38
40
  case 0:
39
41
  app = appConfig.app, logger = appConfig.logger;
40
42
  defaultConsoleConfig = window.ALIYUN_CONSOLE_CONFIG || {};
43
+ defaultConsoleGlobal = window.ALIYUN_CONSOLE_GLOBAL || {};
41
44
  CONFIG_START_TIME = Date.now();
42
- _context.next = 5;
43
- return Promise.all([(0, _getConsoleConfig.getConsoleConfig)(appConfig, defaultConsoleConfig), (0, _alfaCore.getLocale)(appConfig)]).catch(function (e) {
44
- logger === null || logger === void 0 ? void 0 : logger.error({
45
- E_MSG: 'fetch config & locale error.',
46
- E_STACK: e
47
- });
48
- return [{}, {}];
49
- });
50
-
51
- case 5:
52
- _yield$Promise$all$ca = _context.sent;
53
- _yield$Promise$all$ca2 = (0, _slicedToArray2.default)(_yield$Promise$all$ca, 2);
54
- consoleConfig = _yield$Promise$all$ca2[0];
55
- messages = _yield$Promise$all$ca2[1];
45
+ _context.next = 6;
46
+ return (0, _alfaCore.getConfig)(appConfig);
47
+
48
+ case 6:
49
+ configData = _context.sent;
50
+ _context.next = 9;
51
+ return Promise.all([(0, _getConsoleConfig.getConsoleConfig)(configData, defaultConsoleConfig), (0, _getConsoleGlobal.getConsoleGlobal)(configData, defaultConsoleGlobal), (0, _alfaCore.getLocale)(appConfig)]);
52
+
53
+ case 9:
54
+ _yield$Promise$all = _context.sent;
55
+ _yield$Promise$all2 = (0, _slicedToArray2.default)(_yield$Promise$all, 3);
56
+ consoleConfig = _yield$Promise$all2[0];
57
+ consoleGlobal = _yield$Promise$all2[1];
58
+ messages = _yield$Promise$all2[2];
56
59
  CONFIG_END_TIME = Date.now();
57
- i18nMessages = _objectSpread(_objectSpread({}, window.ALIYUN_CONSOLE_I18N_MESSAGE), messages);
60
+ i18nMessages = _objectSpread(_objectSpread({}, window.ALIYUN_CONSOLE_I18N_MESSAGE), messages); // inject global variables
58
61
 
59
62
  if (app && app.context) {
60
63
  app.context.window.ALIYUN_CONSOLE_CONFIG = consoleConfig;
61
- app.context.window.ALIYUN_CONSOLE_I18N_MESSAGE = i18nMessages; // (app.context.history as any) = {};
64
+ app.context.window.ALIYUN_CONSOLE_GLOBAL = consoleGlobal;
65
+ app.context.window.ALIYUN_CONSOLE_I18N_MESSAGE = i18nMessages;
62
66
  }
63
67
 
64
68
  END_TIME = Date.now();
65
- logger === null || logger === void 0 ? void 0 : logger.record({
69
+ (logger === null || logger === void 0 ? void 0 : logger.record) && logger.record({
66
70
  CONFIG_START_TIME: CONFIG_START_TIME,
67
71
  CONFIG_END_TIME: CONFIG_END_TIME,
68
72
  END_TIME: END_TIME
69
73
  });
70
- logger === null || logger === void 0 ? void 0 : logger.send();
74
+ (logger === null || logger === void 0 ? void 0 : logger.send) && logger.send();
71
75
  return _context.abrupt("return", appConfig);
72
76
 
73
- case 16:
77
+ case 21:
74
78
  case "end":
75
79
  return _context.stop();
76
80
  }