@alicloud/alfa-core 1.4.32 → 1.4.33

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.
Files changed (46) hide show
  1. package/LICENSE +21 -0
  2. package/es/base.js +111 -152
  3. package/es/createMicroApp.js +0 -2
  4. package/es/types/index.js +5 -1
  5. package/es/utils/cacheManager.js +36 -57
  6. package/es/utils/env.js +2 -4
  7. package/es/utils/getConfig.js +35 -47
  8. package/es/utils/getI18nMessages.js +39 -51
  9. package/es/utils/getManifest.js +73 -93
  10. package/es/utils/getRelease.js +32 -48
  11. package/es/utils/hookManager.js +0 -6
  12. package/es/utils/index.js +11 -28
  13. package/es/utils/interceptors/index.js +0 -1
  14. package/es/utils/interceptors/networkErrorInterceptor.js +32 -41
  15. package/es/utils/interceptors/responseInterceptor.js +41 -61
  16. package/es/utils/locale.js +2 -6
  17. package/es/utils/logger.js +8 -18
  18. package/lib/base.js +111 -161
  19. package/lib/createMicroApp.js +0 -6
  20. package/lib/index.js +0 -14
  21. package/lib/types/index.js +3 -4
  22. package/lib/utils/cacheManager.js +36 -62
  23. package/lib/utils/env.js +2 -6
  24. package/lib/utils/getConfig.js +35 -54
  25. package/lib/utils/getI18nMessages.js +38 -58
  26. package/lib/utils/getManifest.js +73 -101
  27. package/lib/utils/getRelease.js +31 -56
  28. package/lib/utils/hookManager.js +0 -7
  29. package/lib/utils/index.js +11 -38
  30. package/lib/utils/interceptors/index.js +0 -6
  31. package/lib/utils/interceptors/networkErrorInterceptor.js +30 -45
  32. package/lib/utils/interceptors/responseInterceptor.js +41 -65
  33. package/lib/utils/locale.js +2 -9
  34. package/lib/utils/logger.js +8 -20
  35. package/lib/utils/request.js +0 -6
  36. package/package.json +18 -15
  37. package/types/createMicroApp.d.ts +1 -1
  38. package/types/types/index.d.ts +11 -11
  39. package/types/utils/env.d.ts +1 -1
  40. package/types/utils/getRelease.d.ts +1 -1
  41. package/types/utils/index.d.ts +1 -1
  42. package/types/utils/locale.d.ts +1 -1
  43. package/dist/index.js +0 -15
  44. package/es/utils/interceptors/requestInterceptor.js +0 -32
  45. package/lib/utils/interceptors/requestInterceptor.js +0 -44
  46. package/types/utils/interceptors/requestInterceptor.d.ts +0 -2
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2019 Alibaba Cloud
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/es/base.js CHANGED
@@ -5,107 +5,91 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
5
5
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
6
6
  var _excluded = ["name", "container", "manifest", "props", "deps", "url", "beforeMount", "afterMount", "beforeUnmount", "afterUnmount", "beforeUpdate", "sandbox", "noCache"];
7
7
  import _regeneratorRuntime from "@babel/runtime/regenerator";
8
-
9
8
  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; }
10
-
11
9
  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; }
12
-
13
10
  import { createMicroApp } from '@alicloud/console-os-kernal';
14
11
  import { getManifestFromConfig, getURL, getEnv } from './utils';
15
12
  import Hook from './utils/hookManager';
16
13
  import Logger from './utils/logger';
17
-
18
14
  var mergeConfig = function mergeConfig(appConfig, logger) {
19
15
  return _objectSpread(_objectSpread({}, appConfig), {}, {
20
16
  env: getEnv(appConfig.env),
21
17
  logger: appConfig.logger || logger
22
18
  });
23
19
  };
24
-
25
20
  var BaseLoader = /*#__PURE__*/function () {
26
21
  function BaseLoader() {
27
22
  _classCallCheck(this, BaseLoader);
28
-
29
23
  this.beforeResolve = new Hook();
30
24
  this.afterResolve = new Hook();
31
25
  this.beforeLoad = new Hook();
32
26
  this.afterLoad = new Hook();
33
27
  }
34
-
35
28
  _createClass(BaseLoader, [{
36
29
  key: "register",
37
30
  value: function () {
38
31
  var _register = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(passInConfig) {
39
32
  var logger, _this$config, name, version, env, chains, flattenHookHandlers, promise;
40
-
41
33
  return _regeneratorRuntime.wrap(function _callee$(_context) {
42
- while (1) {
43
- switch (_context.prev = _context.next) {
44
- case 0:
45
- logger = new Logger();
46
-
47
- if (passInConfig) {
48
- _context.next = 4;
49
- break;
50
- }
51
-
52
- logger.error({
53
- E_CODE: 'RuntimeError',
54
- E_MSG: 'cannot find config before start.'
55
- });
56
- return _context.abrupt("return", Promise.reject(new Error('[alfa-core] cannot find config before start.')));
57
-
58
- case 4:
59
- this.config = mergeConfig(passInConfig, logger);
60
- _this$config = this.config, name = _this$config.name, version = _this$config.version, env = _this$config.env;
61
- logger.setContext({
62
- NAME: name,
63
- VERSION: version,
64
- ENV: env
65
- });
66
- chains = [];
67
-
68
- flattenHookHandlers = function flattenHookHandlers(handler) {
69
- var fulfilled = handler.fulfilled,
70
- rejected = handler.rejected;
71
- chains.push(fulfilled, rejected);
72
- }; // resolve entry from config
73
-
74
-
75
- this.beforeResolve.handlers.forEach(flattenHookHandlers); // TODO: handle beforeResolve error
76
-
77
- chains.push(this.resolve, undefined); // modify resolved config
78
-
79
- this.afterResolve.handlers.forEach(flattenHookHandlers);
80
- chains.push(this.init, undefined); // update props before load
81
-
82
- this.beforeLoad.handlers.forEach(flattenHookHandlers); // TODO: handle beforeLoad error
83
-
84
- chains.push(this.load, undefined); // modify context after load
85
-
86
- this.afterLoad.handlers.forEach(flattenHookHandlers);
87
- promise = Promise.resolve(this.config);
88
-
89
- while (chains.length) {
90
- promise = promise.then(chains.shift(), chains.shift());
91
- }
92
-
93
- return _context.abrupt("return", promise.catch(function (e) {
94
- throw e;
95
- }));
96
-
97
- case 19:
98
- case "end":
99
- return _context.stop();
100
- }
34
+ while (1) switch (_context.prev = _context.next) {
35
+ case 0:
36
+ logger = new Logger();
37
+ if (passInConfig) {
38
+ _context.next = 4;
39
+ break;
40
+ }
41
+ logger.error({
42
+ E_CODE: 'RuntimeError',
43
+ E_MSG: 'cannot find config before start.'
44
+ });
45
+ return _context.abrupt("return", Promise.reject(new Error('[alfa-core] cannot find config before start.')));
46
+ case 4:
47
+ this.config = mergeConfig(passInConfig, logger);
48
+ _this$config = this.config, name = _this$config.name, version = _this$config.version, env = _this$config.env;
49
+ logger.setContext({
50
+ NAME: name,
51
+ VERSION: version,
52
+ ENV: env
53
+ });
54
+ chains = [];
55
+ flattenHookHandlers = function flattenHookHandlers(handler) {
56
+ var fulfilled = handler.fulfilled,
57
+ rejected = handler.rejected;
58
+ chains.push(fulfilled, rejected);
59
+ }; // resolve entry from config
60
+ this.beforeResolve.handlers.forEach(flattenHookHandlers);
61
+
62
+ // TODO: handle beforeResolve error
63
+ chains.push(this.resolve, undefined);
64
+
65
+ // modify resolved config
66
+ this.afterResolve.handlers.forEach(flattenHookHandlers);
67
+ chains.push(this.init, undefined);
68
+
69
+ // update props before load
70
+ this.beforeLoad.handlers.forEach(flattenHookHandlers);
71
+
72
+ // TODO: handle beforeLoad error
73
+ chains.push(this.load, undefined);
74
+
75
+ // modify context after load
76
+ this.afterLoad.handlers.forEach(flattenHookHandlers);
77
+ promise = Promise.resolve(this.config);
78
+ while (chains.length) {
79
+ promise = promise.then(chains.shift(), chains.shift());
80
+ }
81
+ return _context.abrupt("return", promise.catch(function (e) {
82
+ throw e;
83
+ }));
84
+ case 19:
85
+ case "end":
86
+ return _context.stop();
101
87
  }
102
88
  }, _callee, this);
103
89
  }));
104
-
105
90
  function register(_x) {
106
91
  return _register.apply(this, arguments);
107
92
  }
108
-
109
93
  return register;
110
94
  }()
111
95
  /**
@@ -113,44 +97,35 @@ var BaseLoader = /*#__PURE__*/function () {
113
97
  * @param config
114
98
  * @returns
115
99
  */
116
-
117
100
  }, {
118
101
  key: "resolve",
119
102
  value: function () {
120
103
  var _resolve = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(config) {
121
104
  var manifest, url;
122
105
  return _regeneratorRuntime.wrap(function _callee2$(_context2) {
123
- while (1) {
124
- switch (_context2.prev = _context2.next) {
125
- case 0:
126
- manifest = getManifestFromConfig(config);
127
- url = getURL(config);
128
-
129
- if (!(!manifest && !url)) {
130
- _context2.next = 4;
131
- break;
132
- }
133
-
134
- throw new Error("No entry or manifest in ".concat(config.name));
135
-
136
- case 4:
137
- return _context2.abrupt("return", _objectSpread(_objectSpread({}, config), {}, {
138
- manifest: manifest,
139
- url: url
140
- }));
141
-
142
- case 5:
143
- case "end":
144
- return _context2.stop();
145
- }
106
+ while (1) switch (_context2.prev = _context2.next) {
107
+ case 0:
108
+ manifest = getManifestFromConfig(config);
109
+ url = getURL(config);
110
+ if (!(!manifest && !url)) {
111
+ _context2.next = 4;
112
+ break;
113
+ }
114
+ throw new Error("No entry or manifest in ".concat(config.name));
115
+ case 4:
116
+ return _context2.abrupt("return", _objectSpread(_objectSpread({}, config), {}, {
117
+ manifest: manifest,
118
+ url: url
119
+ }));
120
+ case 5:
121
+ case "end":
122
+ return _context2.stop();
146
123
  }
147
124
  }, _callee2);
148
125
  }));
149
-
150
126
  function resolve(_x2) {
151
127
  return _resolve.apply(this, arguments);
152
128
  }
153
-
154
129
  return resolve;
155
130
  }()
156
131
  /**
@@ -158,55 +133,48 @@ var BaseLoader = /*#__PURE__*/function () {
158
133
  * @param config
159
134
  * @returns
160
135
  */
161
-
162
136
  }, {
163
137
  key: "init",
164
138
  value: function () {
165
139
  var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(config) {
166
140
  var name, container, manifest, props, deps, url, beforeMount, afterMount, beforeUnmount, afterUnmount, beforeUpdate, sandbox, noCache, extendedConfig, app;
167
141
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
168
- while (1) {
169
- switch (_context3.prev = _context3.next) {
170
- case 0:
171
- name = config.name, container = config.container, manifest = config.manifest, props = config.props, deps = config.deps, url = config.url, beforeMount = config.beforeMount, afterMount = config.afterMount, beforeUnmount = config.beforeUnmount, afterUnmount = config.afterUnmount, beforeUpdate = config.beforeUpdate, sandbox = config.sandbox, noCache = config.noCache, extendedConfig = _objectWithoutProperties(config, _excluded);
172
- _context3.next = 3;
173
- return createMicroApp({
174
- name: name,
175
- dom: container,
176
- manifest: manifest,
177
- customProps: props,
178
- deps: deps,
179
- url: url,
180
- // logger,
181
- noCache: noCache,
182
- appWillMount: beforeMount,
183
- appDidMount: afterMount,
184
- appWillUnmount: beforeUnmount,
185
- appDidUnmount: afterUnmount,
186
- appWillUpdate: beforeUpdate
187
- }, {
188
- sandbox: sandbox // parcel
189
-
190
- });
191
-
192
- case 3:
193
- app = _context3.sent;
194
- return _context3.abrupt("return", _objectSpread(_objectSpread(_objectSpread({}, config), extendedConfig), {}, {
195
- app: app
196
- }));
197
-
198
- case 5:
199
- case "end":
200
- return _context3.stop();
201
- }
142
+ while (1) switch (_context3.prev = _context3.next) {
143
+ case 0:
144
+ name = config.name, container = config.container, manifest = config.manifest, props = config.props, deps = config.deps, url = config.url, beforeMount = config.beforeMount, afterMount = config.afterMount, beforeUnmount = config.beforeUnmount, afterUnmount = config.afterUnmount, beforeUpdate = config.beforeUpdate, sandbox = config.sandbox, noCache = config.noCache, extendedConfig = _objectWithoutProperties(config, _excluded);
145
+ _context3.next = 3;
146
+ return createMicroApp({
147
+ name: name,
148
+ dom: container,
149
+ manifest: manifest,
150
+ customProps: props,
151
+ deps: deps,
152
+ url: url,
153
+ // logger,
154
+ noCache: noCache,
155
+ appWillMount: beforeMount,
156
+ appDidMount: afterMount,
157
+ appWillUnmount: beforeUnmount,
158
+ appDidUnmount: afterUnmount,
159
+ appWillUpdate: beforeUpdate
160
+ }, {
161
+ sandbox: sandbox
162
+ // parcel
163
+ });
164
+ case 3:
165
+ app = _context3.sent;
166
+ return _context3.abrupt("return", _objectSpread(_objectSpread(_objectSpread({}, config), extendedConfig), {}, {
167
+ app: app
168
+ }));
169
+ case 5:
170
+ case "end":
171
+ return _context3.stop();
202
172
  }
203
173
  }, _callee3);
204
174
  }));
205
-
206
175
  function init(_x3) {
207
176
  return _init.apply(this, arguments);
208
177
  }
209
-
210
178
  return init;
211
179
  }()
212
180
  /**
@@ -214,46 +182,37 @@ var BaseLoader = /*#__PURE__*/function () {
214
182
  * @param config
215
183
  * @returns
216
184
  */
217
-
218
185
  }, {
219
186
  key: "load",
220
187
  value: function () {
221
188
  var _load = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(config) {
222
189
  var _config$app;
223
-
224
190
  return _regeneratorRuntime.wrap(function _callee4$(_context4) {
225
- while (1) {
226
- switch (_context4.prev = _context4.next) {
227
- case 0:
228
- _context4.next = 2;
229
- return config === null || config === void 0 ? void 0 : (_config$app = config.app) === null || _config$app === void 0 ? void 0 : _config$app.load();
230
-
231
- case 2:
232
- return _context4.abrupt("return", config);
233
-
234
- case 3:
235
- case "end":
236
- return _context4.stop();
237
- }
191
+ while (1) switch (_context4.prev = _context4.next) {
192
+ case 0:
193
+ _context4.next = 2;
194
+ return config === null || config === void 0 ? void 0 : (_config$app = config.app) === null || _config$app === void 0 ? void 0 : _config$app.load();
195
+ case 2:
196
+ return _context4.abrupt("return", config);
197
+ case 3:
198
+ case "end":
199
+ return _context4.stop();
238
200
  }
239
201
  }, _callee4);
240
202
  }));
241
-
242
203
  function load(_x4) {
243
204
  return _load.apply(this, arguments);
244
205
  }
245
-
246
206
  return load;
247
207
  }()
248
208
  }], [{
249
209
  key: "create",
250
- value: // just create instance, will be mounted in loader
210
+ value:
211
+ // just create instance, will be mounted in loader
251
212
  function create() {
252
213
  return new this();
253
214
  }
254
215
  }]);
255
-
256
216
  return BaseLoader;
257
217
  }();
258
-
259
218
  export { BaseLoader as default };
@@ -5,11 +5,9 @@ export var createMicroApp = function createMicroApp(appConfig) {
5
5
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
6
6
  var manifest = getManifestFromConfig(appConfig);
7
7
  var url = getURL(appConfig);
8
-
9
8
  if (!manifest && !url) {
10
9
  throw new Error("No entry or manifest in ".concat(appConfig.name));
11
10
  }
12
-
13
11
  return createConsoleOSMicroApp({
14
12
  name: appConfig.name,
15
13
  dom: appConfig.container,
package/es/types/index.js CHANGED
@@ -2,4 +2,8 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
2
2
  import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
3
  export var AlfaLogger = /*#__PURE__*/_createClass(function AlfaLogger() {
4
4
  _classCallCheck(this, AlfaLogger);
5
- });
5
+ });
6
+
7
+ /**
8
+ * @deprecated
9
+ */
@@ -3,86 +3,67 @@ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
3
  import _createClass from "@babel/runtime/helpers/esm/createClass";
4
4
  import _regeneratorRuntime from "@babel/runtime/regenerator";
5
5
  import request from './request';
6
-
7
6
  var isPromiseLike = function isPromiseLike(value) {
8
7
  return typeof (value === null || value === void 0 ? void 0 : value.then) === 'function';
9
8
  };
10
-
11
9
  var Cache = /*#__PURE__*/function () {
12
10
  function Cache() {
13
11
  _classCallCheck(this, Cache);
14
-
15
12
  this.store = {};
16
13
  }
14
+
17
15
  /**
18
16
  * get remote json file
19
17
  * @param url
20
18
  * @returns
21
19
  */
22
-
23
-
24
20
  _createClass(Cache, [{
25
21
  key: "getRemote",
26
22
  value: function () {
27
23
  var _getRemote = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(url) {
28
24
  var value, _result, result;
29
-
30
25
  return _regeneratorRuntime.wrap(function _callee$(_context) {
31
- while (1) {
32
- switch (_context.prev = _context.next) {
33
- case 0:
34
- if (url) {
35
- _context.next = 2;
36
- break;
37
- }
38
-
39
- throw new Error('url is empty');
40
-
41
- case 2:
42
- value = this.store[url];
43
-
44
- if (!value) {
45
- _context.next = 10;
46
- break;
47
- }
48
-
49
- if (!isPromiseLike(value)) {
50
- _context.next = 9;
51
- break;
52
- }
53
-
54
- _context.next = 7;
55
- return value;
56
-
57
- case 7:
58
- _result = _context.sent;
59
- return _context.abrupt("return", _result);
60
-
61
- case 9:
62
- return _context.abrupt("return", value);
63
-
64
- case 10:
65
- this.store[url] = request.get(url);
66
- _context.next = 13;
67
- return this.store[url];
68
-
69
- case 13:
70
- result = _context.sent;
71
- if (result !== null && result !== void 0 && result.data) this.store[url] = result;
72
- return _context.abrupt("return", result);
73
-
74
- case 16:
75
- case "end":
76
- return _context.stop();
77
- }
26
+ while (1) switch (_context.prev = _context.next) {
27
+ case 0:
28
+ if (url) {
29
+ _context.next = 2;
30
+ break;
31
+ }
32
+ throw new Error('url is empty');
33
+ case 2:
34
+ value = this.store[url];
35
+ if (!value) {
36
+ _context.next = 10;
37
+ break;
38
+ }
39
+ if (!isPromiseLike(value)) {
40
+ _context.next = 9;
41
+ break;
42
+ }
43
+ _context.next = 7;
44
+ return value;
45
+ case 7:
46
+ _result = _context.sent;
47
+ return _context.abrupt("return", _result);
48
+ case 9:
49
+ return _context.abrupt("return", value);
50
+ case 10:
51
+ this.store[url] = request.get(url);
52
+ _context.next = 13;
53
+ return this.store[url];
54
+ case 13:
55
+ result = _context.sent;
56
+ if (result !== null && result !== void 0 && result.data) this.store[url] = result;
57
+ return _context.abrupt("return", result);
58
+ case 16:
59
+ case "end":
60
+ return _context.stop();
78
61
  }
79
62
  }, _callee, this);
80
63
  }));
81
-
82
64
  function getRemote(_x) {
83
65
  return _getRemote.apply(this, arguments);
84
66
  }
85
-
86
67
  return getRemote;
87
68
  }()
88
69
  }, {
@@ -106,8 +87,6 @@ var Cache = /*#__PURE__*/function () {
106
87
  return new this();
107
88
  }
108
89
  }]);
109
-
110
90
  return Cache;
111
91
  }();
112
-
113
92
  export default Cache.create();
package/es/utils/env.js CHANGED
@@ -4,13 +4,11 @@
4
4
  */
5
5
  export var getEnv = function getEnv(value) {
6
6
  var _window, _window$ALIYUN_CONSOL;
7
-
8
7
  if (value) return value;
9
-
10
8
  if (process.env.NODE_ENV === 'development') {
11
9
  return 'local';
12
- } // default return prod
13
-
10
+ }
14
11
 
12
+ // default return prod
15
13
  return ((_window = window) === null || _window === void 0 ? void 0 : (_window$ALIYUN_CONSOL = _window.ALIYUN_CONSOLE_CONFIG) === null || _window$ALIYUN_CONSOL === void 0 ? void 0 : _window$ALIYUN_CONSOL.fEnv) || 'prod';
16
14
  };