@alicloud/alfa-core 1.3.0-alpha.1 → 1.3.0-beta.1

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.
package/es/base.js ADDED
@@ -0,0 +1,220 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
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";
6
+
7
+ 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; }
8
+
9
+ 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; }
10
+
11
+ import { createMicroApp } from '@alicloud/console-os-kernal';
12
+ import { getManifestFromConfig, getURL, getAlfaEnv } from './utils';
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
+ };
22
+
23
+ var BaseLoader = /*#__PURE__*/function () {
24
+ function BaseLoader() {
25
+ _classCallCheck(this, BaseLoader);
26
+
27
+ this.beforeResolve = new Hook();
28
+ this.afterResolve = new Hook();
29
+ this.beforeLoad = new Hook();
30
+ this.afterLoad = new Hook();
31
+ }
32
+
33
+ _createClass(BaseLoader, [{
34
+ key: "register",
35
+ value: function () {
36
+ var _register = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(passInConfig) {
37
+ var logger, _this$config, name, version, env, chains, flattenHookHandlers, promise;
38
+
39
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
40
+ while (1) {
41
+ switch (_context.prev = _context.next) {
42
+ case 0:
43
+ logger = new Logger();
44
+
45
+ if (passInConfig) {
46
+ _context.next = 4;
47
+ break;
48
+ }
49
+
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.')));
54
+
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
+ });
63
+ chains = [];
64
+
65
+ flattenHookHandlers = function flattenHookHandlers(handler) {
66
+ var fulfilled = handler.fulfilled,
67
+ rejected = handler.rejected;
68
+ chains.push(fulfilled, rejected);
69
+ }; // resolve entry from config
70
+
71
+
72
+ this.beforeResolve.handlers.forEach(flattenHookHandlers); // TODO: handle beforeResolve error
73
+
74
+ chains.push(this.resolve, undefined); // modify resolved config
75
+
76
+ this.afterResolve.handlers.forEach(flattenHookHandlers); // update props before load
77
+
78
+ this.beforeLoad.handlers.forEach(flattenHookHandlers); // TODO: handle beforeLoad error
79
+
80
+ chains.push(this.load, undefined); // modify context after load
81
+
82
+ this.afterLoad.handlers.forEach(flattenHookHandlers);
83
+ promise = Promise.resolve(this.config);
84
+
85
+ while (chains.length) {
86
+ promise = promise.then(chains.shift(), chains.shift());
87
+ }
88
+
89
+ return _context.abrupt("return", promise);
90
+
91
+ case 18:
92
+ case "end":
93
+ return _context.stop();
94
+ }
95
+ }
96
+ }, _callee, this);
97
+ }));
98
+
99
+ function register(_x) {
100
+ return _register.apply(this, arguments);
101
+ }
102
+
103
+ return register;
104
+ }()
105
+ /**
106
+ * resolve config and rewrite manifest and url
107
+ * @param config
108
+ * @returns
109
+ */
110
+
111
+ }, {
112
+ key: "resolve",
113
+ value: function () {
114
+ var _resolve = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(config) {
115
+ var manifest, url;
116
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
117
+ while (1) {
118
+ switch (_context2.prev = _context2.next) {
119
+ case 0:
120
+ manifest = getManifestFromConfig(config);
121
+ url = getURL(config);
122
+
123
+ if (!(!manifest && !url)) {
124
+ _context2.next = 4;
125
+ break;
126
+ }
127
+
128
+ throw new Error("No entry or manifest in ".concat(config.name));
129
+
130
+ case 4:
131
+ return _context2.abrupt("return", _objectSpread(_objectSpread({}, config), {}, {
132
+ manifest: manifest,
133
+ url: url
134
+ }));
135
+
136
+ case 5:
137
+ case "end":
138
+ return _context2.stop();
139
+ }
140
+ }
141
+ }, _callee2);
142
+ }));
143
+
144
+ function resolve(_x2) {
145
+ return _resolve.apply(this, arguments);
146
+ }
147
+
148
+ return resolve;
149
+ }()
150
+ /**
151
+ * loadApp from remote
152
+ * @param config
153
+ * @returns
154
+ */
155
+
156
+ }, {
157
+ key: "load",
158
+ value: function () {
159
+ var _load = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(config) {
160
+ var name, container, manifest, props, deps, url, beforeMount, afterMount, beforeUnmount, afterUnmount, beforeUpdate, sandbox, app;
161
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
162
+ while (1) {
163
+ switch (_context3.prev = _context3.next) {
164
+ case 0:
165
+ 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;
166
+ _context3.next = 3;
167
+ return createMicroApp({
168
+ name: name,
169
+ dom: container,
170
+ manifest: manifest,
171
+ customProps: props,
172
+ deps: deps,
173
+ url: url,
174
+ // logger,
175
+ appWillMount: beforeMount,
176
+ appDidMount: afterMount,
177
+ appWillUnmount: beforeUnmount,
178
+ appDidUnmount: afterUnmount,
179
+ appWillUpdate: beforeUpdate
180
+ }, {
181
+ sandbox: sandbox // parcel
182
+
183
+ });
184
+
185
+ case 3:
186
+ app = _context3.sent;
187
+ _context3.next = 6;
188
+ return app.load();
189
+
190
+ case 6:
191
+ return _context3.abrupt("return", _objectSpread(_objectSpread({}, config), {}, {
192
+ app: app
193
+ }));
194
+
195
+ case 7:
196
+ case "end":
197
+ return _context3.stop();
198
+ }
199
+ }
200
+ }, _callee3);
201
+ }));
202
+
203
+ function load(_x3) {
204
+ return _load.apply(this, arguments);
205
+ }
206
+
207
+ return load;
208
+ }()
209
+ }], [{
210
+ key: "create",
211
+ value: // just create instance, will be mounted in loader
212
+ function create() {
213
+ return new this();
214
+ }
215
+ }]);
216
+
217
+ return BaseLoader;
218
+ }();
219
+
220
+ export { BaseLoader as default };
@@ -1,5 +1,6 @@
1
1
  import { createMicroApp as createConsoleOSMicroApp } from '@alicloud/console-os-kernal';
2
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
6
  var manifest = getManifestFromConfig(appConfig);
package/es/index.js CHANGED
@@ -2,5 +2,8 @@ export { createMicroApp } from './createMicroApp';
2
2
  export { getManifest } from './utils/getAlfaManifest';
3
3
  export { getConfig } from './utils/getAlfaConfig';
4
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';
5
8
  export { createEventBus, prefetch } from '@alicloud/console-os-kernal';
6
- export { IAppConfig, IOptions, AlfaFactoryOption, AlfaDynamicConfig as AlfaConfig, IWin } from './types';
9
+ export { IAppConfig, IOptions, AlfaFactoryOption, AlfaDynamicConfig as AlfaConfig, IWin, EnvEnum as AlfaEnvEnum, AlfaLogger } from './types';
package/es/types/index.js CHANGED
@@ -1 +1,4 @@
1
- export {};
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ export var AlfaLogger = function AlfaLogger() {
3
+ _classCallCheck(this, AlfaLogger);
4
+ };
@@ -0,0 +1,79 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
4
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
5
+ import axios from 'axios';
6
+
7
+ var Cache = /*#__PURE__*/function () {
8
+ function Cache() {
9
+ _classCallCheck(this, Cache);
10
+
11
+ this.store = {};
12
+ }
13
+
14
+ _createClass(Cache, [{
15
+ key: "getRemote",
16
+ value: function () {
17
+ var _getRemote = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(url) {
18
+ var res, result;
19
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
20
+ while (1) {
21
+ switch (_context.prev = _context.next) {
22
+ case 0:
23
+ if (!this.store[url]) {
24
+ _context.next = 2;
25
+ break;
26
+ }
27
+
28
+ return _context.abrupt("return", this.store[url]);
29
+
30
+ case 2:
31
+ _context.next = 4;
32
+ return axios.get(url);
33
+
34
+ case 4:
35
+ res = _context.sent;
36
+ result = res.data;
37
+ if (result) this.store[url] = result;
38
+ return _context.abrupt("return", result);
39
+
40
+ case 8:
41
+ case "end":
42
+ return _context.stop();
43
+ }
44
+ }
45
+ }, _callee, this);
46
+ }));
47
+
48
+ function getRemote(_x) {
49
+ return _getRemote.apply(this, arguments);
50
+ }
51
+
52
+ return getRemote;
53
+ }()
54
+ }, {
55
+ key: "get",
56
+ value: function get(key) {
57
+ return this.store[key];
58
+ }
59
+ }, {
60
+ key: "set",
61
+ value: function set(key, value) {
62
+ this.store[key] = value;
63
+ }
64
+ }, {
65
+ key: "clear",
66
+ value: function clear() {
67
+ this.store = {};
68
+ }
69
+ }], [{
70
+ key: "create",
71
+ value: function create() {
72
+ return new this();
73
+ }
74
+ }]);
75
+
76
+ return Cache;
77
+ }();
78
+
79
+ export default Cache.create();
@@ -1,15 +1,7 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
1
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
2
  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); if (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 = 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; }
8
-
9
- import axios from 'axios';
10
- import { resolveConfigUrl } from '.';
11
- var cachedConfig = {};
12
- var productReg = /@ali\/alfa-cloud-([a-zA-z]*)-(app|widget)-.*/;
3
+ import { getRelease } from './getAlfaRelease';
4
+ import cache from './cacheManager';
13
5
  var defaultConfig = {
14
6
  ALL_CHANNEL_FEATURE_STATUS: {},
15
7
  ALL_CHANNEL_LINKS: {},
@@ -17,60 +9,58 @@ var defaultConfig = {
17
9
  };
18
10
  /**
19
11
  * 获取 Alfa 平台配置的 Config
20
- * @param option
12
+ * @param config
21
13
  * @returns
22
14
  */
23
15
 
24
16
  export var getConfig = /*#__PURE__*/function () {
25
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(option) {
26
- var matches, configId, resp, configData;
17
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(config) {
18
+ var _releaseConfig$distT, _releaseConfig$config, _releaseConfig$config2;
19
+
20
+ var releaseConfig, version, configEntry, configData;
27
21
  return _regeneratorRuntime.wrap(function _callee$(_context) {
28
22
  while (1) {
29
23
  switch (_context.prev = _context.next) {
30
24
  case 0:
31
- matches = option.name.match(productReg);
25
+ _context.next = 2;
26
+ return getRelease(config);
32
27
 
33
- if (matches) {
34
- _context.next = 3;
35
- break;
36
- }
28
+ case 2:
29
+ releaseConfig = _context.sent;
30
+ version = (_releaseConfig$distT = releaseConfig['dist-tags']) === null || _releaseConfig$distT === void 0 ? void 0 : _releaseConfig$distT['config-latest'];
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
+ configData = defaultConfig; // when config is not valid, return empty
37
33
 
38
- return _context.abrupt("return", defaultConfig);
39
-
40
- case 3:
41
- configId = matches[1] || option.name;
42
-
43
- if (cachedConfig[configId]) {
44
- _context.next = 15;
34
+ if (!(!version || configEntry)) {
35
+ _context.next = 8;
45
36
  break;
46
37
  }
47
38
 
48
- _context.prev = 5;
49
- _context.next = 8;
50
- return axios.get(resolveConfigUrl(_objectSpread(_objectSpread({}, option), {}, {
51
- name: configId
52
- })));
39
+ return _context.abrupt("return", configData);
53
40
 
54
41
  case 8:
55
- resp = _context.sent;
56
- configData = resp.data;
57
- cachedConfig[configId] = configData;
58
- _context.next = 15;
59
- break;
42
+ _context.prev = 8;
43
+ _context.next = 11;
44
+ return cache.getRemote(configEntry);
60
45
 
61
- case 13:
62
- _context.prev = 13;
63
- _context.t0 = _context["catch"](5);
46
+ case 11:
47
+ configData = _context.sent;
48
+ _context.next = 16;
49
+ break;
64
50
 
65
- case 15:
66
- return _context.abrupt("return", cachedConfig[configId] || defaultConfig);
51
+ case 14:
52
+ _context.prev = 14;
53
+ _context.t0 = _context["catch"](8);
67
54
 
68
55
  case 16:
56
+ return _context.abrupt("return", configData);
57
+
58
+ case 17:
69
59
  case "end":
70
60
  return _context.stop();
71
61
  }
72
62
  }
73
- }, _callee, null, [[5, 13]]);
63
+ }, _callee, null, [[8, 14]]);
74
64
  }));
75
65
 
76
66
  return function getConfig(_x) {
@@ -1,53 +1,63 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
2
  import _regeneratorRuntime from "@babel/runtime/regenerator";
3
- import axios from 'axios';
4
- import { resolveReleaseUrl, getAlfaLocale } from './index';
3
+ import { getAlfaLocale } from './index';
4
+ import { getRelease } from './getAlfaRelease';
5
+ import cache from './cacheManager';
6
+ /**
7
+ * 获取国际化文案
8
+ * @param config
9
+ * @returns
10
+ */
11
+
5
12
  export var getLocale = /*#__PURE__*/function () {
6
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(option) {
13
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(config) {
7
14
  var _releaseConfig$distT, _releaseConfig$locale, _releaseConfig$locale2;
8
15
 
9
- var resp, locale, releaseConfig, version, localeEntry, messages, res;
16
+ var releaseConfig, locale, version, localeEntry, messages;
10
17
  return _regeneratorRuntime.wrap(function _callee$(_context) {
11
18
  while (1) {
12
19
  switch (_context.prev = _context.next) {
13
20
  case 0:
14
21
  _context.next = 2;
15
- return axios.get(resolveReleaseUrl(option));
22
+ return getRelease(config);
16
23
 
17
24
  case 2:
18
- resp = _context.sent;
25
+ releaseConfig = _context.sent;
19
26
  locale = getAlfaLocale();
20
- releaseConfig = resp.data;
21
27
  version = (_releaseConfig$distT = releaseConfig['dist-tags']) === null || _releaseConfig$distT === void 0 ? void 0 : _releaseConfig$distT['locales-latest'];
22
28
  localeEntry = (_releaseConfig$locale = releaseConfig['locales-versions']) === null || _releaseConfig$locale === void 0 ? void 0 : (_releaseConfig$locale2 = _releaseConfig$locale[version]) === null || _releaseConfig$locale2 === void 0 ? void 0 : _releaseConfig$locale2[locale];
29
+ messages = {};
23
30
 
24
- if (!localeEntry) {// throw new Error(`${option.name} ${locale} entry is not found, please check you release.`);
31
+ if (localeEntry) {
32
+ _context.next = 9;
33
+ break;
25
34
  }
26
35
 
27
- messages = {};
36
+ return _context.abrupt("return", messages);
37
+
38
+ case 9:
28
39
  _context.prev = 9;
29
40
  _context.next = 12;
30
- return axios.get(localeEntry);
41
+ return cache.getRemote(localeEntry);
31
42
 
32
43
  case 12:
33
- res = _context.sent;
34
- messages = res.data;
35
- _context.next = 18;
44
+ messages = _context.sent;
45
+ _context.next = 17;
36
46
  break;
37
47
 
38
- case 16:
39
- _context.prev = 16;
48
+ case 15:
49
+ _context.prev = 15;
40
50
  _context.t0 = _context["catch"](9);
41
51
 
42
- case 18:
52
+ case 17:
43
53
  return _context.abrupt("return", messages);
44
54
 
45
- case 19:
55
+ case 18:
46
56
  case "end":
47
57
  return _context.stop();
48
58
  }
49
59
  }
50
- }, _callee, null, [[9, 16]]);
60
+ }, _callee, null, [[9, 15]]);
51
61
  }));
52
62
 
53
63
  return function getLocale(_x) {
@@ -1,32 +1,31 @@
1
1
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
2
  import _regeneratorRuntime from "@babel/runtime/regenerator";
3
- import axios from 'axios';
4
- import { resolveReleaseUrl } from '.';
3
+ import { getRelease } from './getAlfaRelease';
5
4
  export var getManifest = /*#__PURE__*/function () {
6
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(option) {
5
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(config) {
7
6
  var _releaseConfig$distT2;
8
7
 
9
- var resp, releaseConfig, version, _releaseConfig$distT, configByVersion;
8
+ var name, version, releaseConfig, _releaseConfig$distT, configByVersion;
10
9
 
11
10
  return _regeneratorRuntime.wrap(function _callee$(_context) {
12
11
  while (1) {
13
12
  switch (_context.prev = _context.next) {
14
13
  case 0:
15
- _context.next = 2;
16
- return axios.get(resolveReleaseUrl(option));
14
+ name = config.name;
15
+ version = config.version;
16
+ _context.next = 4;
17
+ return getRelease(config);
17
18
 
18
- case 2:
19
- resp = _context.sent;
20
- releaseConfig = resp.data;
21
- version = option.version;
19
+ case 4:
20
+ releaseConfig = _context.sent;
22
21
 
23
- if (!option.version) {
22
+ if (!config.version) {
24
23
  version = (_releaseConfig$distT = releaseConfig['dist-tags']) === null || _releaseConfig$distT === void 0 ? void 0 : _releaseConfig$distT.latest;
25
24
  } // if version is in dist-tags, return value
26
25
 
27
26
 
28
- if ((_releaseConfig$distT2 = releaseConfig['dist-tags']) !== null && _releaseConfig$distT2 !== void 0 && _releaseConfig$distT2[option.version]) {
29
- version = releaseConfig['dist-tags'][option.version];
27
+ if ((_releaseConfig$distT2 = releaseConfig['dist-tags']) !== null && _releaseConfig$distT2 !== void 0 && _releaseConfig$distT2[config.version]) {
28
+ version = releaseConfig['dist-tags'][config.version];
30
29
  }
31
30
 
32
31
  configByVersion = releaseConfig.versions[version];
@@ -36,7 +35,7 @@ export var getManifest = /*#__PURE__*/function () {
36
35
  break;
37
36
  }
38
37
 
39
- throw new Error("".concat(option.name, "@").concat(version, " is not found, please check you release."));
38
+ throw new Error("".concat(name, "@").concat(version, " is not found, please check you release."));
40
39
 
41
40
  case 10:
42
41
  return _context.abrupt("return", releaseConfig.versions[version].entry);
@@ -0,0 +1,37 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+ import { resolveReleaseUrl } from '.';
4
+ import cache from './cacheManager';
5
+ export var getRelease = /*#__PURE__*/function () {
6
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(config) {
7
+ var name, releaseConfig;
8
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
9
+ while (1) {
10
+ switch (_context.prev = _context.next) {
11
+ case 0:
12
+ name = config.name;
13
+ _context.prev = 1;
14
+ _context.next = 4;
15
+ return cache.getRemote(resolveReleaseUrl(config));
16
+
17
+ case 4:
18
+ releaseConfig = _context.sent;
19
+ return _context.abrupt("return", releaseConfig);
20
+
21
+ case 8:
22
+ _context.prev = 8;
23
+ _context.t0 = _context["catch"](1);
24
+ throw new Error("".concat(name, " releaseConfig loading failed, please try again or connect developers."));
25
+
26
+ case 11:
27
+ case "end":
28
+ return _context.stop();
29
+ }
30
+ }
31
+ }, _callee, null, [[1, 8]]);
32
+ }));
33
+
34
+ return function getRelease(_x) {
35
+ return _ref.apply(this, arguments);
36
+ };
37
+ }();
@@ -0,0 +1,33 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
3
+
4
+ var Hook = /*#__PURE__*/function () {
5
+ function Hook() {
6
+ _classCallCheck(this, Hook);
7
+
8
+ this.handlers = [];
9
+ }
10
+
11
+ _createClass(Hook, [{
12
+ key: "use",
13
+ value: function use(fulfilled) {
14
+ var _this = this;
15
+
16
+ var rejected = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
17
+ var handler = {
18
+ fulfilled: fulfilled,
19
+ rejected: rejected
20
+ };
21
+ this.handlers.push(handler);
22
+ return function () {
23
+ _this.handlers = _this.handlers.filter(function (h) {
24
+ return h !== handler;
25
+ });
26
+ };
27
+ }
28
+ }]);
29
+
30
+ return Hook;
31
+ }();
32
+
33
+ export { Hook as default };
package/es/utils/index.js CHANGED
@@ -21,7 +21,7 @@ export var getAlfaEnv = function getAlfaEnv() {
21
21
  export var getAlfaLocale = function getAlfaLocale() {
22
22
  var _window2, _window2$ALIYUN_CONSO;
23
23
 
24
- var locale = (_window2 = window) === null || _window2 === void 0 ? void 0 : (_window2$ALIYUN_CONSO = _window2.ALIYUN_CONSOLE_CONFIG) === null || _window2$ALIYUN_CONSO === void 0 ? void 0 : _window2$ALIYUN_CONSO.LOCALE.replace('-', '_');
24
+ var locale = (((_window2 = window) === null || _window2 === void 0 ? void 0 : (_window2$ALIYUN_CONSO = _window2.ALIYUN_CONSOLE_CONFIG) === null || _window2$ALIYUN_CONSO === void 0 ? void 0 : _window2$ALIYUN_CONSO.LOCALE) || '').replace('-', '_');
25
25
  if (['zh_CN', 'en_US', 'ja_JP', 'zh_TW', 'zh-HK'].includes(locale)) return locale;
26
26
  return 'en_US';
27
27
  };
@@ -85,11 +85,15 @@ export var getConfigUrl = function getConfigUrl(name, env) {
85
85
 
86
86
  return undefined;
87
87
  };
88
- export var resolveReleaseUrl = function resolveReleaseUrl(option) {
89
- return getReleaseUrl(option.name, option.env || getAlfaEnv());
88
+ export var resolveReleaseUrl = function resolveReleaseUrl(config) {
89
+ var name = config.name,
90
+ env = config.env;
91
+ return getReleaseUrl(name, env || getAlfaEnv());
90
92
  };
91
- export var resolveConfigUrl = function resolveConfigUrl(option) {
92
- return getConfigUrl(option.name, option.env || getAlfaEnv());
93
+ export var resolveConfigUrl = function resolveConfigUrl(config) {
94
+ var name = config.name,
95
+ env = config.env;
96
+ return getConfigUrl(name, env || getAlfaEnv());
93
97
  };
94
98
  export var getURL = function getURL(appConfig) {
95
99
  var entry = appConfig.entry;