@alicloud/alfa-core 1.3.0-alpha.1 → 1.3.0-alpha.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.
package/es/base.js ADDED
@@ -0,0 +1,200 @@
1
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
5
+
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
+
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
+
10
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
11
+ import { createMicroApp } from '@alicloud/console-os-kernal';
12
+ import { getManifestFromConfig, getURL } from './utils';
13
+ import Hook from './utils/hookManager';
14
+
15
+ var BaseLoader = /*#__PURE__*/function () {
16
+ function BaseLoader() {
17
+ _classCallCheck(this, BaseLoader);
18
+
19
+ this.beforeResolve = new Hook();
20
+ this.afterResolve = new Hook();
21
+ this.beforeLoad = new Hook();
22
+ this.afterLoad = new Hook();
23
+ }
24
+
25
+ _createClass(BaseLoader, [{
26
+ key: "register",
27
+ value: function () {
28
+ var _register = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(config) {
29
+ var chains, flattenHookHandlers, promise;
30
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
31
+ while (1) {
32
+ switch (_context.prev = _context.next) {
33
+ case 0:
34
+ if (config) {
35
+ _context.next = 2;
36
+ break;
37
+ }
38
+
39
+ return _context.abrupt("return", Promise.reject(new Error('[alfa-core] register config is not existed.')));
40
+
41
+ case 2:
42
+ this.config = config;
43
+ chains = [];
44
+
45
+ flattenHookHandlers = function flattenHookHandlers(handler) {
46
+ var fulfilled = handler.fulfilled,
47
+ rejected = handler.rejected;
48
+ chains.push(fulfilled, rejected);
49
+ }; // resolve entry from config
50
+
51
+
52
+ this.beforeResolve.handlers.forEach(flattenHookHandlers); // TODO: handle beforeResolve error
53
+
54
+ chains.push(this.resolve, undefined); // modify resolved config
55
+
56
+ this.afterResolve.handlers.forEach(flattenHookHandlers); // update props before load
57
+
58
+ this.beforeLoad.handlers.forEach(flattenHookHandlers); // TODO: handle beforeLoad error
59
+
60
+ chains.push(this.load, undefined); // modify context after load
61
+
62
+ this.afterLoad.handlers.forEach(flattenHookHandlers);
63
+ promise = Promise.resolve(this.config);
64
+
65
+ while (chains.length) {
66
+ promise = promise.then(chains.shift(), chains.shift());
67
+ }
68
+
69
+ return _context.abrupt("return", promise);
70
+
71
+ case 14:
72
+ case "end":
73
+ return _context.stop();
74
+ }
75
+ }
76
+ }, _callee, this);
77
+ }));
78
+
79
+ function register(_x) {
80
+ return _register.apply(this, arguments);
81
+ }
82
+
83
+ return register;
84
+ }()
85
+ /**
86
+ * resolve config and rewrite manifest and url
87
+ * @param config
88
+ * @returns
89
+ */
90
+
91
+ }, {
92
+ key: "resolve",
93
+ value: function () {
94
+ var _resolve = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(config) {
95
+ var manifest, url;
96
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
97
+ while (1) {
98
+ switch (_context2.prev = _context2.next) {
99
+ case 0:
100
+ manifest = getManifestFromConfig(config);
101
+ url = getURL(config);
102
+
103
+ if (!(!manifest && !url)) {
104
+ _context2.next = 4;
105
+ break;
106
+ }
107
+
108
+ throw new Error("No entry or manifest in ".concat(config.name));
109
+
110
+ case 4:
111
+ return _context2.abrupt("return", _objectSpread(_objectSpread({}, config), {}, {
112
+ manifest: manifest,
113
+ url: url
114
+ }));
115
+
116
+ case 5:
117
+ case "end":
118
+ return _context2.stop();
119
+ }
120
+ }
121
+ }, _callee2);
122
+ }));
123
+
124
+ function resolve(_x2) {
125
+ return _resolve.apply(this, arguments);
126
+ }
127
+
128
+ return resolve;
129
+ }()
130
+ /**
131
+ * loadApp from remote
132
+ * @param config
133
+ * @returns
134
+ */
135
+
136
+ }, {
137
+ key: "load",
138
+ 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;
141
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
142
+ while (1) {
143
+ switch (_context3.prev = _context3.next) {
144
+ 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;
146
+ _context3.next = 3;
147
+ return createMicroApp({
148
+ name: name,
149
+ dom: container,
150
+ manifest: manifest,
151
+ customProps: props,
152
+ deps: deps,
153
+ url: url,
154
+ logger: logger,
155
+ appWillMount: beforeMount,
156
+ appDidMount: afterMount,
157
+ appWillUnmount: beforeUnmount,
158
+ appDidUnmount: afterUnmount,
159
+ appWillUpdate: beforeUpdate
160
+ }, {
161
+ sandbox: sandbox // parcel
162
+
163
+ });
164
+
165
+ case 3:
166
+ app = _context3.sent;
167
+ _context3.next = 6;
168
+ return app.load();
169
+
170
+ case 6:
171
+ return _context3.abrupt("return", _objectSpread(_objectSpread({}, config), {}, {
172
+ app: app
173
+ }));
174
+
175
+ case 7:
176
+ case "end":
177
+ return _context3.stop();
178
+ }
179
+ }
180
+ }, _callee3);
181
+ }));
182
+
183
+ function load(_x3) {
184
+ return _load.apply(this, arguments);
185
+ }
186
+
187
+ return load;
188
+ }()
189
+ }], [{
190
+ key: "create",
191
+ value: // just create instance, will be mounted in loader
192
+ function create() {
193
+ return new this();
194
+ }
195
+ }]);
196
+
197
+ return BaseLoader;
198
+ }();
199
+
200
+ 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,6 @@ 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';
5
6
  export { createEventBus, prefetch } from '@alicloud/console-os-kernal';
6
- export { IAppConfig, IOptions, AlfaFactoryOption, AlfaDynamicConfig as AlfaConfig, IWin } from './types';
7
+ export { IAppConfig, IOptions, AlfaFactoryOption, AlfaDynamicConfig as AlfaConfig, IWin, EnvEnum as AlfaEnvEnum } from './types';
@@ -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; // when config is not valid, return empty
37
32
 
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;
33
+ if (!(!version || configEntry)) {
34
+ _context.next = 7;
45
35
  break;
46
36
  }
47
37
 
48
- _context.prev = 5;
49
- _context.next = 8;
50
- return axios.get(resolveConfigUrl(_objectSpread(_objectSpread({}, option), {}, {
51
- name: configId
52
- })));
38
+ return _context.abrupt("return", {});
53
39
 
54
- case 8:
55
- resp = _context.sent;
56
- configData = resp.data;
57
- cachedConfig[configId] = configData;
58
- _context.next = 15;
59
- break;
40
+ case 7:
41
+ configData = defaultConfig;
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,32 @@
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, rejected) {
14
+ var _this = this;
15
+
16
+ var handler = {
17
+ fulfilled: fulfilled,
18
+ rejected: rejected
19
+ };
20
+ this.handlers.push(handler);
21
+ return function () {
22
+ _this.handlers = _this.handlers.filter(function (h) {
23
+ return h !== handler;
24
+ });
25
+ };
26
+ }
27
+ }]);
28
+
29
+ return Hook;
30
+ }();
31
+
32
+ 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;
package/lib/base.d.ts ADDED
@@ -0,0 +1,24 @@
1
+ import Hook from './utils/hookManager';
2
+ import { IAppConfig } from './types';
3
+ export default class BaseLoader {
4
+ static create(): BaseLoader;
5
+ beforeResolve: Hook<IAppConfig>;
6
+ afterResolve: Hook<IAppConfig>;
7
+ beforeLoad: Hook<IAppConfig>;
8
+ afterLoad: Hook<IAppConfig>;
9
+ config: IAppConfig;
10
+ constructor();
11
+ register<P = {}, C = {}>(config: IAppConfig<P> & C): Promise<IAppConfig<any>>;
12
+ /**
13
+ * resolve config and rewrite manifest and url
14
+ * @param config
15
+ * @returns
16
+ */
17
+ private resolve;
18
+ /**
19
+ * loadApp from remote
20
+ * @param config
21
+ * @returns
22
+ */
23
+ private load;
24
+ }