@alicloud/alfa-core 1.3.0-canary.7 → 1.3.2

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/breezr.config.js +3 -3
  2. package/dist/index.js +4 -4
  3. package/es/base.js +82 -27
  4. package/es/createMicroApp.js +3 -2
  5. package/es/index.js +8 -5
  6. package/es/types/index.js +5 -0
  7. package/es/utils/getAlfaConfig.js +1 -1
  8. package/es/utils/getAlfaManifest.js +21 -15
  9. package/es/utils/hookManager.js +2 -1
  10. package/es/utils/logger.js +91 -0
  11. package/lib/base.d.ts +7 -1
  12. package/lib/base.js +82 -26
  13. package/lib/createMicroApp.d.ts +1 -1
  14. package/lib/createMicroApp.js +2 -1
  15. package/lib/index.d.ts +8 -5
  16. package/lib/index.js +78 -23
  17. package/lib/types/index.d.ts +10 -7
  18. package/lib/types/index.js +17 -1
  19. package/lib/utils/getAlfaConfig.js +1 -1
  20. package/lib/utils/getAlfaManifest.js +21 -15
  21. package/lib/utils/hookManager.d.ts +1 -1
  22. package/lib/utils/hookManager.js +2 -1
  23. package/lib/utils/index.d.ts +2 -2
  24. package/lib/utils/index.js +1 -1
  25. package/lib/utils/logger.d.ts +20 -0
  26. package/lib/utils/logger.js +100 -0
  27. package/package.json +4 -4
  28. package/es/createIsomorphicMicroApp.js +0 -61
  29. package/es/env.js +0 -36
  30. package/es/resolveAlfaConfig.js +0 -74
  31. package/es/resolveAlfaManifest.js +0 -46
  32. package/es/resolveAlfaRelease.js +0 -29
  33. package/es/types.js +0 -0
  34. package/es/utils.js +0 -43
  35. package/lib/createIsomorphicMicroApp.d.ts +0 -4
  36. package/lib/createIsomorphicMicroApp.js +0 -78
  37. package/lib/env.d.ts +0 -3
  38. package/lib/env.js +0 -46
  39. package/lib/resolveAlfaConfig.d.ts +0 -7
  40. package/lib/resolveAlfaConfig.js +0 -89
  41. package/lib/resolveAlfaManifest.d.ts +0 -3
  42. package/lib/resolveAlfaManifest.js +0 -64
  43. package/lib/types.d.ts +0 -61
  44. package/lib/types.js +0 -1
  45. package/lib/utils.d.ts +0 -14
  46. package/lib/utils.js +0 -67
package/es/base.js CHANGED
@@ -1,16 +1,24 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
2
  import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
3
  import _createClass from "@babel/runtime/helpers/esm/createClass";
4
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
5
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
5
6
 
6
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
7
+ 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; }
7
8
 
8
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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; }
9
10
 
10
- import _regeneratorRuntime from "@babel/runtime/regenerator";
11
11
  import { createMicroApp } from '@alicloud/console-os-kernal';
12
- import { getManifestFromConfig, getURL } from './utils';
12
+ import { getManifestFromConfig, getURL, getAlfaEnv } from './utils';
13
13
  import Hook from './utils/hookManager';
14
+ import Logger from './utils/logger';
15
+
16
+ var mergeConfig = function mergeConfig(appConfig, logger) {
17
+ return _objectSpread(_objectSpread({}, appConfig), {}, {
18
+ env: appConfig.env || getAlfaEnv(),
19
+ logger: appConfig.logger || logger
20
+ });
21
+ };
14
22
 
15
23
  var BaseLoader = /*#__PURE__*/function () {
16
24
  function BaseLoader() {
@@ -25,21 +33,33 @@ var BaseLoader = /*#__PURE__*/function () {
25
33
  _createClass(BaseLoader, [{
26
34
  key: "register",
27
35
  value: function () {
28
- var _register = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(config) {
29
- var chains, flattenHookHandlers, promise;
36
+ var _register = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(passInConfig) {
37
+ var logger, _this$config, name, version, env, chains, flattenHookHandlers, promise;
38
+
30
39
  return _regeneratorRuntime.wrap(function _callee$(_context) {
31
40
  while (1) {
32
41
  switch (_context.prev = _context.next) {
33
42
  case 0:
34
- if (config) {
35
- _context.next = 2;
43
+ logger = new Logger();
44
+
45
+ if (passInConfig) {
46
+ _context.next = 4;
36
47
  break;
37
48
  }
38
49
 
39
- return _context.abrupt("return", Promise.reject(new Error('[alfa-core] register config is not existed.')));
50
+ logger.error({
51
+ E_MSG: 'cannot find config before start.'
52
+ });
53
+ return _context.abrupt("return", Promise.reject(new Error('[alfa-core] cannot find config before start.')));
40
54
 
41
- case 2:
42
- this.config = config;
55
+ case 4:
56
+ this.config = mergeConfig(passInConfig, logger);
57
+ _this$config = this.config, name = _this$config.name, version = _this$config.version, env = _this$config.env;
58
+ logger.setContext({
59
+ NAME: name,
60
+ VERSION: version,
61
+ ENV: env
62
+ });
43
63
  chains = [];
44
64
 
45
65
  flattenHookHandlers = function flattenHookHandlers(handler) {
@@ -53,7 +73,8 @@ var BaseLoader = /*#__PURE__*/function () {
53
73
 
54
74
  chains.push(this.resolve, undefined); // modify resolved config
55
75
 
56
- this.afterResolve.handlers.forEach(flattenHookHandlers); // update props before load
76
+ this.afterResolve.handlers.forEach(flattenHookHandlers);
77
+ chains.push(this.init, undefined); // update props before load
57
78
 
58
79
  this.beforeLoad.handlers.forEach(flattenHookHandlers); // TODO: handle beforeLoad error
59
80
 
@@ -66,9 +87,11 @@ var BaseLoader = /*#__PURE__*/function () {
66
87
  promise = promise.then(chains.shift(), chains.shift());
67
88
  }
68
89
 
69
- return _context.abrupt("return", promise);
90
+ return _context.abrupt("return", promise.catch(function (e) {
91
+ throw e;
92
+ }));
70
93
 
71
- case 14:
94
+ case 19:
72
95
  case "end":
73
96
  return _context.stop();
74
97
  }
@@ -128,21 +151,21 @@ var BaseLoader = /*#__PURE__*/function () {
128
151
  return resolve;
129
152
  }()
130
153
  /**
131
- * loadApp from remote
154
+ * init config for micro app
132
155
  * @param config
133
156
  * @returns
134
157
  */
135
158
 
136
159
  }, {
137
- key: "load",
160
+ key: "init",
138
161
  value: function () {
139
- var _load = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(config) {
140
- var name, container, manifest, props, deps, url, beforeMount, afterMount, beforeUnmount, afterUnmount, beforeUpdate, sandbox, logger, app;
162
+ var _init = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(config) {
163
+ var name, container, manifest, props, deps, url, beforeMount, afterMount, beforeUnmount, afterUnmount, beforeUpdate, sandbox, app;
141
164
  return _regeneratorRuntime.wrap(function _callee3$(_context3) {
142
165
  while (1) {
143
166
  switch (_context3.prev = _context3.next) {
144
167
  case 0:
145
- 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, logger = config.logger;
168
+ 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;
146
169
  _context3.next = 3;
147
170
  return createMicroApp({
148
171
  name: name,
@@ -151,7 +174,7 @@ var BaseLoader = /*#__PURE__*/function () {
151
174
  customProps: props,
152
175
  deps: deps,
153
176
  url: url,
154
- logger: logger,
177
+ // logger,
155
178
  appWillMount: beforeMount,
156
179
  appDidMount: afterMount,
157
180
  appWillUnmount: beforeUnmount,
@@ -164,15 +187,11 @@ var BaseLoader = /*#__PURE__*/function () {
164
187
 
165
188
  case 3:
166
189
  app = _context3.sent;
167
- _context3.next = 6;
168
- return app.load();
169
-
170
- case 6:
171
190
  return _context3.abrupt("return", _objectSpread(_objectSpread({}, config), {}, {
172
191
  app: app
173
192
  }));
174
193
 
175
- case 7:
194
+ case 5:
176
195
  case "end":
177
196
  return _context3.stop();
178
197
  }
@@ -180,7 +199,43 @@ var BaseLoader = /*#__PURE__*/function () {
180
199
  }, _callee3);
181
200
  }));
182
201
 
183
- function load(_x3) {
202
+ function init(_x3) {
203
+ return _init.apply(this, arguments);
204
+ }
205
+
206
+ return init;
207
+ }()
208
+ /**
209
+ * loadApp from remote
210
+ * @param config
211
+ * @returns
212
+ */
213
+
214
+ }, {
215
+ key: "load",
216
+ value: function () {
217
+ var _load = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(config) {
218
+ var _config$app;
219
+
220
+ return _regeneratorRuntime.wrap(function _callee4$(_context4) {
221
+ while (1) {
222
+ switch (_context4.prev = _context4.next) {
223
+ case 0:
224
+ _context4.next = 2;
225
+ return config === null || config === void 0 ? void 0 : (_config$app = config.app) === null || _config$app === void 0 ? void 0 : _config$app.load();
226
+
227
+ case 2:
228
+ return _context4.abrupt("return", config);
229
+
230
+ case 3:
231
+ case "end":
232
+ return _context4.stop();
233
+ }
234
+ }
235
+ }, _callee4);
236
+ }));
237
+
238
+ function load(_x4) {
184
239
  return _load.apply(this, arguments);
185
240
  }
186
241
 
@@ -1,8 +1,9 @@
1
1
  import { createMicroApp as createConsoleOSMicroApp } from '@alicloud/console-os-kernal';
2
- import { getManifest, getURL } from './utils';
2
+ import { getManifestFromConfig, getURL } from './utils';
3
+ // TODO: deprecate in next major version
3
4
  export var createMicroApp = function createMicroApp(appConfig) {
4
5
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
5
- var manifest = getManifest(appConfig);
6
+ var manifest = getManifestFromConfig(appConfig);
6
7
  var url = getURL(appConfig);
7
8
 
8
9
  if (!manifest && !url) {
package/es/index.js CHANGED
@@ -1,6 +1,9 @@
1
1
  export { createMicroApp } from './createMicroApp';
2
- export { createIsomorphicMicroApp, renderToString } from './createIsomorphicMicroApp';
3
- export { getManifest } from './resolveAlfaManifest';
4
- export { getConfig } from './resolveAlfaConfig';
5
- export { IAppConfig, IOptions, AlfaFactoryOption, AlfaDynamicConfig as AlfaConfig } from './types';
6
- export { createEventBus, prefetch, IIsomorphicEnvironment } from '@alicloud/console-os-kernal';
2
+ export { getManifest } from './utils/getAlfaManifest';
3
+ export { getConfig } from './utils/getAlfaConfig';
4
+ export { getLocale } from './utils/getAlfaLocale';
5
+ export { default as BaseLoader } from './base';
6
+ export { default as Logger } from './utils/logger';
7
+ export * from './utils/index';
8
+ export { createEventBus, prefetch } from '@alicloud/console-os-kernal';
9
+ export { IAppConfig, IOptions, AlfaFactoryOption, AlfaDynamicConfig as AlfaConfig, IWin, EnvEnum as AlfaEnvEnum, AlfaLogger } from './types';
package/es/types/index.js CHANGED
@@ -0,0 +1,5 @@
1
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+ export var AlfaLogger = /*#__PURE__*/_createClass(function AlfaLogger() {
4
+ _classCallCheck(this, AlfaLogger);
5
+ });
@@ -31,7 +31,7 @@ export var getConfig = /*#__PURE__*/function () {
31
31
  configEntry = (_releaseConfig$config = releaseConfig['config-versions']) === null || _releaseConfig$config === void 0 ? void 0 : (_releaseConfig$config2 = _releaseConfig$config[version]) === null || _releaseConfig$config2 === void 0 ? void 0 : _releaseConfig$config2.entry;
32
32
  configData = defaultConfig; // when config is not valid, return empty
33
33
 
34
- if (!(!version || configEntry)) {
34
+ if (!(!version || !configEntry)) {
35
35
  _context.next = 8;
36
36
  break;
37
37
  }
@@ -3,44 +3,50 @@ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
3
  import { getRelease } from './getAlfaRelease';
4
4
  export var getManifest = /*#__PURE__*/function () {
5
5
  var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(config) {
6
- var _releaseConfig$distT2;
6
+ var _releaseConfig$distT, _releaseConfig$distT2, _releaseConfig$versio;
7
7
 
8
- var name, version, releaseConfig, _releaseConfig$distT, configByVersion;
8
+ var name, logger, version, releaseConfig, latestVersion, versionEntry, _releaseConfig$versio2;
9
9
 
10
10
  return _regeneratorRuntime.wrap(function _callee$(_context) {
11
11
  while (1) {
12
12
  switch (_context.prev = _context.next) {
13
13
  case 0:
14
- name = config.name;
14
+ name = config.name, logger = config.logger;
15
15
  version = config.version;
16
16
  _context.next = 4;
17
17
  return getRelease(config);
18
18
 
19
19
  case 4:
20
20
  releaseConfig = _context.sent;
21
+ latestVersion = (_releaseConfig$distT = releaseConfig['dist-tags']) === null || _releaseConfig$distT === void 0 ? void 0 : _releaseConfig$distT.latest; // if version is in dist-tags, return value
21
22
 
22
- if (!config.version) {
23
- version = (_releaseConfig$distT = releaseConfig['dist-tags']) === null || _releaseConfig$distT === void 0 ? void 0 : _releaseConfig$distT.latest;
24
- } // if version is in dist-tags, return value
23
+ if ((_releaseConfig$distT2 = releaseConfig['dist-tags']) !== null && _releaseConfig$distT2 !== void 0 && _releaseConfig$distT2[version]) {
24
+ version = releaseConfig['dist-tags'][version];
25
+ }
25
26
 
27
+ versionEntry = (_releaseConfig$versio = releaseConfig.versions) === null || _releaseConfig$versio === void 0 ? void 0 : _releaseConfig$versio[version];
26
28
 
27
- if ((_releaseConfig$distT2 = releaseConfig['dist-tags']) !== null && _releaseConfig$distT2 !== void 0 && _releaseConfig$distT2[config.version]) {
28
- version = releaseConfig['dist-tags'][config.version];
29
+ if (versionEntry) {
30
+ _context.next = 13;
31
+ break;
29
32
  }
30
33
 
31
- configByVersion = releaseConfig.versions[version];
34
+ logger === null || logger === void 0 ? void 0 : logger.error({
35
+ E_MSG: "cannot find ".concat(name, "@").concat(version, ".")
36
+ });
37
+ versionEntry = (_releaseConfig$versio2 = releaseConfig.versions) === null || _releaseConfig$versio2 === void 0 ? void 0 : _releaseConfig$versio2[latestVersion];
32
38
 
33
- if (configByVersion) {
34
- _context.next = 10;
39
+ if (versionEntry) {
40
+ _context.next = 13;
35
41
  break;
36
42
  }
37
43
 
38
- throw new Error("".concat(name, "@").concat(version, " is not found, please check you release."));
44
+ throw new Error("cannot find ".concat(name, "@latest, please check release."));
39
45
 
40
- case 10:
41
- return _context.abrupt("return", releaseConfig.versions[version].entry);
46
+ case 13:
47
+ return _context.abrupt("return", versionEntry.entry);
42
48
 
43
- case 11:
49
+ case 14:
44
50
  case "end":
45
51
  return _context.stop();
46
52
  }
@@ -10,9 +10,10 @@ var Hook = /*#__PURE__*/function () {
10
10
 
11
11
  _createClass(Hook, [{
12
12
  key: "use",
13
- value: function use(fulfilled, rejected) {
13
+ value: function use(fulfilled) {
14
14
  var _this = this;
15
15
 
16
+ var rejected = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
16
17
  var handler = {
17
18
  fulfilled: fulfilled,
18
19
  rejected: rejected
@@ -0,0 +1,91 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
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
+ import createLogger from '@alicloud/console-logger-sls';
10
+ var logger = createLogger({
11
+ project: 'alfa',
12
+ endpoint: 'cn-wulanchabu.log.aliyuncs.com',
13
+ // project_xx 的外网域名,在 SLS project 概览里可以找到
14
+ logstore: 'loader' // 日志落库的地方
15
+
16
+ });
17
+ var Method;
18
+
19
+ (function (Method) {
20
+ Method["log"] = "log";
21
+ Method["info"] = "info";
22
+ Method["warn"] = "warn";
23
+ Method["error"] = "error";
24
+ })(Method || (Method = {}));
25
+
26
+ var Logger = /*#__PURE__*/function () {
27
+ function Logger() {
28
+ var context = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
29
+
30
+ _classCallCheck(this, Logger);
31
+
32
+ this.cache = {};
33
+ this.context = context;
34
+ }
35
+
36
+ _createClass(Logger, [{
37
+ key: "setContext",
38
+ value: function setContext(params) {
39
+ this.context = _objectSpread(_objectSpread({}, this.context), params);
40
+ }
41
+ }, {
42
+ key: "record",
43
+ value: function record(params) {
44
+ this.cache = _objectSpread(_objectSpread({}, this.cache), params);
45
+ }
46
+ }, {
47
+ key: "send",
48
+ value: function send() {
49
+ this.track(Method.log, 'METRIC', this.cache);
50
+ this.cache = {};
51
+ }
52
+ }, {
53
+ key: "info",
54
+ value: function info(params) {
55
+ this.track(Method.info, 'INFO', params);
56
+ }
57
+ }, {
58
+ key: "debug",
59
+ value: function debug(params) {
60
+ // do not log debug message in production env
61
+ if (this.context.env === 'prod') return;
62
+ console.log('DEBUG', this.mergeData(params));
63
+ }
64
+ }, {
65
+ key: "warn",
66
+ value: function warn(params) {
67
+ this.track(Method.warn, 'WARN', params);
68
+ }
69
+ }, {
70
+ key: "error",
71
+ value: function error(params) {
72
+ this.track(Method.error, 'ERROR', params);
73
+ }
74
+ }, {
75
+ key: "mergeData",
76
+ value: function mergeData(params) {
77
+ return _objectSpread(_objectSpread({}, this.context), params);
78
+ }
79
+ }, {
80
+ key: "track",
81
+ value: function track(method, topic, params) {
82
+ // do not track during development
83
+ if (this.context.ENV === 'local') return;
84
+ logger[method](topic, this.mergeData(params));
85
+ }
86
+ }]);
87
+
88
+ return Logger;
89
+ }();
90
+
91
+ export { Logger as default };
package/lib/base.d.ts CHANGED
@@ -8,13 +8,19 @@ export default class BaseLoader {
8
8
  afterLoad: Hook<IAppConfig>;
9
9
  config: IAppConfig;
10
10
  constructor();
11
- register<P = {}, C = {}>(config: IAppConfig<P> & C): Promise<IAppConfig<any>>;
11
+ register<P = {}, C = {}>(passInConfig: IAppConfig<P> & C): Promise<IAppConfig<any>>;
12
12
  /**
13
13
  * resolve config and rewrite manifest and url
14
14
  * @param config
15
15
  * @returns
16
16
  */
17
17
  private resolve;
18
+ /**
19
+ * init config for micro app
20
+ * @param config
21
+ * @returns
22
+ */
23
+ private init;
18
24
  /**
19
25
  * loadApp from remote
20
26
  * @param config
package/lib/base.js CHANGED
@@ -9,23 +9,32 @@ exports.default = void 0;
9
9
 
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
 
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
13
 
16
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
15
 
18
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
17
 
18
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
+
20
20
  var _consoleOsKernal = require("@alicloud/console-os-kernal");
21
21
 
22
22
  var _utils = require("./utils");
23
23
 
24
24
  var _hookManager = _interopRequireDefault(require("./utils/hookManager"));
25
25
 
26
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
26
+ var _logger = _interopRequireDefault(require("./utils/logger"));
27
+
28
+ 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; }
29
+
30
+ 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; }
27
31
 
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
32
+ var mergeConfig = function mergeConfig(appConfig, logger) {
33
+ return _objectSpread(_objectSpread({}, appConfig), {}, {
34
+ env: appConfig.env || (0, _utils.getAlfaEnv)(),
35
+ logger: appConfig.logger || logger
36
+ });
37
+ };
29
38
 
30
39
  var BaseLoader = /*#__PURE__*/function () {
31
40
  function BaseLoader() {
@@ -39,21 +48,33 @@ var BaseLoader = /*#__PURE__*/function () {
39
48
  (0, _createClass2.default)(BaseLoader, [{
40
49
  key: "register",
41
50
  value: function () {
42
- var _register = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(config) {
43
- var chains, flattenHookHandlers, promise;
51
+ var _register = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(passInConfig) {
52
+ var logger, _this$config, name, version, env, chains, flattenHookHandlers, promise;
53
+
44
54
  return _regenerator.default.wrap(function _callee$(_context) {
45
55
  while (1) {
46
56
  switch (_context.prev = _context.next) {
47
57
  case 0:
48
- if (config) {
49
- _context.next = 2;
58
+ logger = new _logger.default();
59
+
60
+ if (passInConfig) {
61
+ _context.next = 4;
50
62
  break;
51
63
  }
52
64
 
53
- return _context.abrupt("return", Promise.reject(new Error('[alfa-core] register config is not existed.')));
65
+ logger.error({
66
+ E_MSG: 'cannot find config before start.'
67
+ });
68
+ return _context.abrupt("return", Promise.reject(new Error('[alfa-core] cannot find config before start.')));
54
69
 
55
- case 2:
56
- this.config = config;
70
+ case 4:
71
+ this.config = mergeConfig(passInConfig, logger);
72
+ _this$config = this.config, name = _this$config.name, version = _this$config.version, env = _this$config.env;
73
+ logger.setContext({
74
+ NAME: name,
75
+ VERSION: version,
76
+ ENV: env
77
+ });
57
78
  chains = [];
58
79
 
59
80
  flattenHookHandlers = function flattenHookHandlers(handler) {
@@ -67,7 +88,8 @@ var BaseLoader = /*#__PURE__*/function () {
67
88
 
68
89
  chains.push(this.resolve, undefined); // modify resolved config
69
90
 
70
- this.afterResolve.handlers.forEach(flattenHookHandlers); // update props before load
91
+ this.afterResolve.handlers.forEach(flattenHookHandlers);
92
+ chains.push(this.init, undefined); // update props before load
71
93
 
72
94
  this.beforeLoad.handlers.forEach(flattenHookHandlers); // TODO: handle beforeLoad error
73
95
 
@@ -80,9 +102,11 @@ var BaseLoader = /*#__PURE__*/function () {
80
102
  promise = promise.then(chains.shift(), chains.shift());
81
103
  }
82
104
 
83
- return _context.abrupt("return", promise);
105
+ return _context.abrupt("return", promise.catch(function (e) {
106
+ throw e;
107
+ }));
84
108
 
85
- case 14:
109
+ case 19:
86
110
  case "end":
87
111
  return _context.stop();
88
112
  }
@@ -142,21 +166,21 @@ var BaseLoader = /*#__PURE__*/function () {
142
166
  return resolve;
143
167
  }()
144
168
  /**
145
- * loadApp from remote
169
+ * init config for micro app
146
170
  * @param config
147
171
  * @returns
148
172
  */
149
173
 
150
174
  }, {
151
- key: "load",
175
+ key: "init",
152
176
  value: function () {
153
- var _load = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(config) {
154
- var name, container, manifest, props, deps, url, beforeMount, afterMount, beforeUnmount, afterUnmount, beforeUpdate, sandbox, logger, app;
177
+ var _init = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(config) {
178
+ var name, container, manifest, props, deps, url, beforeMount, afterMount, beforeUnmount, afterUnmount, beforeUpdate, sandbox, app;
155
179
  return _regenerator.default.wrap(function _callee3$(_context3) {
156
180
  while (1) {
157
181
  switch (_context3.prev = _context3.next) {
158
182
  case 0:
159
- 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, logger = config.logger;
183
+ 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;
160
184
  _context3.next = 3;
161
185
  return (0, _consoleOsKernal.createMicroApp)({
162
186
  name: name,
@@ -165,7 +189,7 @@ var BaseLoader = /*#__PURE__*/function () {
165
189
  customProps: props,
166
190
  deps: deps,
167
191
  url: url,
168
- logger: logger,
192
+ // logger,
169
193
  appWillMount: beforeMount,
170
194
  appDidMount: afterMount,
171
195
  appWillUnmount: beforeUnmount,
@@ -178,15 +202,11 @@ var BaseLoader = /*#__PURE__*/function () {
178
202
 
179
203
  case 3:
180
204
  app = _context3.sent;
181
- _context3.next = 6;
182
- return app.load();
183
-
184
- case 6:
185
205
  return _context3.abrupt("return", _objectSpread(_objectSpread({}, config), {}, {
186
206
  app: app
187
207
  }));
188
208
 
189
- case 7:
209
+ case 5:
190
210
  case "end":
191
211
  return _context3.stop();
192
212
  }
@@ -194,7 +214,43 @@ var BaseLoader = /*#__PURE__*/function () {
194
214
  }, _callee3);
195
215
  }));
196
216
 
197
- function load(_x3) {
217
+ function init(_x3) {
218
+ return _init.apply(this, arguments);
219
+ }
220
+
221
+ return init;
222
+ }()
223
+ /**
224
+ * loadApp from remote
225
+ * @param config
226
+ * @returns
227
+ */
228
+
229
+ }, {
230
+ key: "load",
231
+ value: function () {
232
+ var _load = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(config) {
233
+ var _config$app;
234
+
235
+ return _regenerator.default.wrap(function _callee4$(_context4) {
236
+ while (1) {
237
+ switch (_context4.prev = _context4.next) {
238
+ case 0:
239
+ _context4.next = 2;
240
+ return config === null || config === void 0 ? void 0 : (_config$app = config.app) === null || _config$app === void 0 ? void 0 : _config$app.load();
241
+
242
+ case 2:
243
+ return _context4.abrupt("return", config);
244
+
245
+ case 3:
246
+ case "end":
247
+ return _context4.stop();
248
+ }
249
+ }
250
+ }, _callee4);
251
+ }));
252
+
253
+ function load(_x4) {
198
254
  return _load.apply(this, arguments);
199
255
  }
200
256
 
@@ -1,2 +1,2 @@
1
1
  import { IAppConfig, IOptions } from './types';
2
- export declare const createMicroApp: <T>(appConfig: IAppConfig<T>, options?: IOptions<T>) => Promise<import("@alicloud/console-os-kernal/lib/application/Application").Application>;
2
+ export declare const createMicroApp: <T>(appConfig: IAppConfig<T>, options?: IOptions) => Promise<import("@alicloud/console-os-kernal/lib/application/Application").Application>;
@@ -9,9 +9,10 @@ var _consoleOsKernal = require("@alicloud/console-os-kernal");
9
9
 
10
10
  var _utils = require("./utils");
11
11
 
12
+ // TODO: deprecate in next major version
12
13
  var createMicroApp = function createMicroApp(appConfig) {
13
14
  var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
14
- var manifest = (0, _utils.getManifest)(appConfig);
15
+ var manifest = (0, _utils.getManifestFromConfig)(appConfig);
15
16
  var url = (0, _utils.getURL)(appConfig);
16
17
 
17
18
  if (!manifest && !url) {