@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/dist/index.js +4 -4
- package/es/base.js +200 -0
- package/es/createMicroApp.js +1 -0
- package/es/index.js +2 -1
- package/es/utils/cacheManager.js +79 -0
- package/es/utils/getAlfaConfig.js +32 -42
- package/es/utils/getAlfaLocale.js +28 -18
- package/es/utils/getAlfaManifest.js +13 -14
- package/es/utils/getAlfaRelease.js +37 -0
- package/es/utils/hookManager.js +32 -0
- package/es/utils/index.js +9 -5
- package/lib/base.d.ts +24 -0
- package/lib/base.js +213 -0
- package/lib/createMicroApp.js +1 -0
- package/lib/index.d.ts +2 -1
- package/lib/index.js +16 -0
- package/lib/types/index.d.ts +30 -20
- package/lib/utils/cacheManager.d.ts +11 -0
- package/lib/utils/cacheManager.js +92 -0
- package/lib/utils/getAlfaConfig.d.ts +3 -3
- package/lib/utils/getAlfaConfig.js +32 -42
- package/lib/utils/getAlfaLocale.d.ts +7 -2
- package/lib/utils/getAlfaLocale.js +28 -18
- package/lib/utils/getAlfaManifest.d.ts +2 -2
- package/lib/utils/getAlfaManifest.js +13 -15
- package/lib/utils/getAlfaRelease.d.ts +2 -0
- package/lib/utils/getAlfaRelease.js +52 -0
- package/lib/utils/hookManager.d.ts +12 -0
- package/lib/utils/hookManager.js +40 -0
- package/lib/utils/index.d.ts +4 -13
- package/lib/utils/index.js +9 -5
- package/package.json +1 -1
package/lib/base.js
ADDED
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
|
+
|
|
14
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
15
|
+
|
|
16
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
17
|
+
|
|
18
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
19
|
+
|
|
20
|
+
var _consoleOsKernal = require("@alicloud/console-os-kernal");
|
|
21
|
+
|
|
22
|
+
var _utils = require("./utils");
|
|
23
|
+
|
|
24
|
+
var _hookManager = _interopRequireDefault(require("./utils/hookManager"));
|
|
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; }
|
|
27
|
+
|
|
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; }
|
|
29
|
+
|
|
30
|
+
var BaseLoader = /*#__PURE__*/function () {
|
|
31
|
+
function BaseLoader() {
|
|
32
|
+
(0, _classCallCheck2.default)(this, BaseLoader);
|
|
33
|
+
this.beforeResolve = new _hookManager.default();
|
|
34
|
+
this.afterResolve = new _hookManager.default();
|
|
35
|
+
this.beforeLoad = new _hookManager.default();
|
|
36
|
+
this.afterLoad = new _hookManager.default();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
(0, _createClass2.default)(BaseLoader, [{
|
|
40
|
+
key: "register",
|
|
41
|
+
value: function () {
|
|
42
|
+
var _register = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(config) {
|
|
43
|
+
var chains, flattenHookHandlers, promise;
|
|
44
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
45
|
+
while (1) {
|
|
46
|
+
switch (_context.prev = _context.next) {
|
|
47
|
+
case 0:
|
|
48
|
+
if (config) {
|
|
49
|
+
_context.next = 2;
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
return _context.abrupt("return", Promise.reject(new Error('[alfa-core] register config is not existed.')));
|
|
54
|
+
|
|
55
|
+
case 2:
|
|
56
|
+
this.config = config;
|
|
57
|
+
chains = [];
|
|
58
|
+
|
|
59
|
+
flattenHookHandlers = function flattenHookHandlers(handler) {
|
|
60
|
+
var fulfilled = handler.fulfilled,
|
|
61
|
+
rejected = handler.rejected;
|
|
62
|
+
chains.push(fulfilled, rejected);
|
|
63
|
+
}; // resolve entry from config
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
this.beforeResolve.handlers.forEach(flattenHookHandlers); // TODO: handle beforeResolve error
|
|
67
|
+
|
|
68
|
+
chains.push(this.resolve, undefined); // modify resolved config
|
|
69
|
+
|
|
70
|
+
this.afterResolve.handlers.forEach(flattenHookHandlers); // update props before load
|
|
71
|
+
|
|
72
|
+
this.beforeLoad.handlers.forEach(flattenHookHandlers); // TODO: handle beforeLoad error
|
|
73
|
+
|
|
74
|
+
chains.push(this.load, undefined); // modify context after load
|
|
75
|
+
|
|
76
|
+
this.afterLoad.handlers.forEach(flattenHookHandlers);
|
|
77
|
+
promise = Promise.resolve(this.config);
|
|
78
|
+
|
|
79
|
+
while (chains.length) {
|
|
80
|
+
promise = promise.then(chains.shift(), chains.shift());
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return _context.abrupt("return", promise);
|
|
84
|
+
|
|
85
|
+
case 14:
|
|
86
|
+
case "end":
|
|
87
|
+
return _context.stop();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}, _callee, this);
|
|
91
|
+
}));
|
|
92
|
+
|
|
93
|
+
function register(_x) {
|
|
94
|
+
return _register.apply(this, arguments);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
return register;
|
|
98
|
+
}()
|
|
99
|
+
/**
|
|
100
|
+
* resolve config and rewrite manifest and url
|
|
101
|
+
* @param config
|
|
102
|
+
* @returns
|
|
103
|
+
*/
|
|
104
|
+
|
|
105
|
+
}, {
|
|
106
|
+
key: "resolve",
|
|
107
|
+
value: function () {
|
|
108
|
+
var _resolve = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(config) {
|
|
109
|
+
var manifest, url;
|
|
110
|
+
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
111
|
+
while (1) {
|
|
112
|
+
switch (_context2.prev = _context2.next) {
|
|
113
|
+
case 0:
|
|
114
|
+
manifest = (0, _utils.getManifestFromConfig)(config);
|
|
115
|
+
url = (0, _utils.getURL)(config);
|
|
116
|
+
|
|
117
|
+
if (!(!manifest && !url)) {
|
|
118
|
+
_context2.next = 4;
|
|
119
|
+
break;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
throw new Error("No entry or manifest in ".concat(config.name));
|
|
123
|
+
|
|
124
|
+
case 4:
|
|
125
|
+
return _context2.abrupt("return", _objectSpread(_objectSpread({}, config), {}, {
|
|
126
|
+
manifest: manifest,
|
|
127
|
+
url: url
|
|
128
|
+
}));
|
|
129
|
+
|
|
130
|
+
case 5:
|
|
131
|
+
case "end":
|
|
132
|
+
return _context2.stop();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}, _callee2);
|
|
136
|
+
}));
|
|
137
|
+
|
|
138
|
+
function resolve(_x2) {
|
|
139
|
+
return _resolve.apply(this, arguments);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
return resolve;
|
|
143
|
+
}()
|
|
144
|
+
/**
|
|
145
|
+
* loadApp from remote
|
|
146
|
+
* @param config
|
|
147
|
+
* @returns
|
|
148
|
+
*/
|
|
149
|
+
|
|
150
|
+
}, {
|
|
151
|
+
key: "load",
|
|
152
|
+
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;
|
|
155
|
+
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
156
|
+
while (1) {
|
|
157
|
+
switch (_context3.prev = _context3.next) {
|
|
158
|
+
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;
|
|
160
|
+
_context3.next = 3;
|
|
161
|
+
return (0, _consoleOsKernal.createMicroApp)({
|
|
162
|
+
name: name,
|
|
163
|
+
dom: container,
|
|
164
|
+
manifest: manifest,
|
|
165
|
+
customProps: props,
|
|
166
|
+
deps: deps,
|
|
167
|
+
url: url,
|
|
168
|
+
logger: logger,
|
|
169
|
+
appWillMount: beforeMount,
|
|
170
|
+
appDidMount: afterMount,
|
|
171
|
+
appWillUnmount: beforeUnmount,
|
|
172
|
+
appDidUnmount: afterUnmount,
|
|
173
|
+
appWillUpdate: beforeUpdate
|
|
174
|
+
}, {
|
|
175
|
+
sandbox: sandbox // parcel
|
|
176
|
+
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
case 3:
|
|
180
|
+
app = _context3.sent;
|
|
181
|
+
_context3.next = 6;
|
|
182
|
+
return app.load();
|
|
183
|
+
|
|
184
|
+
case 6:
|
|
185
|
+
return _context3.abrupt("return", _objectSpread(_objectSpread({}, config), {}, {
|
|
186
|
+
app: app
|
|
187
|
+
}));
|
|
188
|
+
|
|
189
|
+
case 7:
|
|
190
|
+
case "end":
|
|
191
|
+
return _context3.stop();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}, _callee3);
|
|
195
|
+
}));
|
|
196
|
+
|
|
197
|
+
function load(_x3) {
|
|
198
|
+
return _load.apply(this, arguments);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
return load;
|
|
202
|
+
}()
|
|
203
|
+
}], [{
|
|
204
|
+
key: "create",
|
|
205
|
+
value: // just create instance, will be mounted in loader
|
|
206
|
+
function create() {
|
|
207
|
+
return new this();
|
|
208
|
+
}
|
|
209
|
+
}]);
|
|
210
|
+
return BaseLoader;
|
|
211
|
+
}();
|
|
212
|
+
|
|
213
|
+
exports.default = BaseLoader;
|
package/lib/createMicroApp.js
CHANGED
|
@@ -9,6 +9,7 @@ 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
15
|
var manifest = (0, _utils.getManifestFromConfig)(appConfig);
|
package/lib/index.d.ts
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';
|
package/lib/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
@@ -9,12 +11,24 @@ Object.defineProperty(exports, "AlfaConfig", {
|
|
|
9
11
|
return _types.AlfaDynamicConfig;
|
|
10
12
|
}
|
|
11
13
|
});
|
|
14
|
+
Object.defineProperty(exports, "AlfaEnvEnum", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function get() {
|
|
17
|
+
return _types.EnvEnum;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
12
20
|
Object.defineProperty(exports, "AlfaFactoryOption", {
|
|
13
21
|
enumerable: true,
|
|
14
22
|
get: function get() {
|
|
15
23
|
return _types.AlfaFactoryOption;
|
|
16
24
|
}
|
|
17
25
|
});
|
|
26
|
+
Object.defineProperty(exports, "BaseLoader", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function get() {
|
|
29
|
+
return _base.default;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
18
32
|
Object.defineProperty(exports, "IAppConfig", {
|
|
19
33
|
enumerable: true,
|
|
20
34
|
get: function get() {
|
|
@@ -78,6 +92,8 @@ var _getAlfaConfig = require("./utils/getAlfaConfig");
|
|
|
78
92
|
|
|
79
93
|
var _getAlfaLocale = require("./utils/getAlfaLocale");
|
|
80
94
|
|
|
95
|
+
var _base = _interopRequireDefault(require("./base"));
|
|
96
|
+
|
|
81
97
|
var _consoleOsKernal = require("@alicloud/console-os-kernal");
|
|
82
98
|
|
|
83
99
|
var _types = require("./types");
|
package/lib/types/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { OSApplication, SandBoxOption } from '@alicloud/console-os-kernal';
|
|
2
|
+
import { OSApplication, SandBoxOption, AppInfo } from '@alicloud/console-os-kernal';
|
|
3
3
|
declare type Channel = string;
|
|
4
4
|
declare type ChannelLinks = Partial<Record<string, string>>;
|
|
5
5
|
declare type ChannelFeatures = Partial<Record<string, {
|
|
@@ -11,10 +11,10 @@ declare type ChannelFeatures = Partial<Record<string, {
|
|
|
11
11
|
};
|
|
12
12
|
};
|
|
13
13
|
}>>;
|
|
14
|
-
declare type FeatureStatus = Partial<Record<string,
|
|
14
|
+
declare type FeatureStatus = Partial<Record<string, boolean>>;
|
|
15
15
|
export interface IWin {
|
|
16
16
|
ALIYUN_CONSOLE_I18N_MESSAGE?: Record<string, string>;
|
|
17
|
-
ALIYUN_CONSOLE_CONFIG?: {
|
|
17
|
+
ALIYUN_CONSOLE_CONFIG?: Partial<{
|
|
18
18
|
fEnv: string;
|
|
19
19
|
LOCALE: string;
|
|
20
20
|
CHANNEL: string;
|
|
@@ -25,18 +25,20 @@ export interface IWin {
|
|
|
25
25
|
portalType: string;
|
|
26
26
|
MAIN_ACCOUNT_PK: string;
|
|
27
27
|
CURRENT_PK: string;
|
|
28
|
-
}
|
|
28
|
+
}>;
|
|
29
29
|
}
|
|
30
30
|
export interface IAppManifest {
|
|
31
31
|
scripts: string[];
|
|
32
32
|
styles?: string[];
|
|
33
33
|
}
|
|
34
|
-
export interface IAppConfig<
|
|
34
|
+
export interface IAppConfig<P = any> extends IOptions {
|
|
35
35
|
entry?: IAppManifest | string;
|
|
36
36
|
name: string;
|
|
37
|
+
version?: string;
|
|
37
38
|
container?: HTMLElement | null;
|
|
38
|
-
props?:
|
|
39
|
-
manifest?:
|
|
39
|
+
props?: P;
|
|
40
|
+
manifest?: AppInfo['manifest'];
|
|
41
|
+
url?: string;
|
|
40
42
|
logger?: {
|
|
41
43
|
debug: () => {};
|
|
42
44
|
error: () => {};
|
|
@@ -46,15 +48,17 @@ export interface IAppConfig<T = any> {
|
|
|
46
48
|
deps?: {
|
|
47
49
|
[key: string]: any;
|
|
48
50
|
};
|
|
51
|
+
app?: OSApplication;
|
|
52
|
+
env?: EnvEnum;
|
|
49
53
|
}
|
|
50
54
|
export interface IOptions {
|
|
51
|
-
sandbox?:
|
|
52
|
-
beforeMount?:
|
|
53
|
-
afterMount?:
|
|
54
|
-
beforeUnmount?:
|
|
55
|
-
afterUnmount?:
|
|
56
|
-
beforeUpdate?:
|
|
57
|
-
afterUpdate?:
|
|
55
|
+
sandbox?: SandBoxOption;
|
|
56
|
+
beforeMount?: AppInfo['appWillMount'];
|
|
57
|
+
afterMount?: AppInfo['appDidMount'];
|
|
58
|
+
beforeUnmount?: AppInfo['appWillUnmount'];
|
|
59
|
+
afterUnmount?: AppInfo['appDidUnmount'];
|
|
60
|
+
beforeUpdate?: AppInfo['appWillUpdate'];
|
|
61
|
+
afterUpdate?: AppInfo['appWillUpdate'];
|
|
58
62
|
}
|
|
59
63
|
export interface AlfaVersion {
|
|
60
64
|
entry: string;
|
|
@@ -63,11 +67,15 @@ export declare type LOCALE = 'en_US' | 'zh_CN' | 'zh_TW' | 'zh_HK' | 'ja_JP';
|
|
|
63
67
|
export declare type AlfaLocaleVersion = {
|
|
64
68
|
[key in LOCALE | 'entry']: string;
|
|
65
69
|
};
|
|
66
|
-
declare type Version = string;
|
|
70
|
+
export declare type Version = string;
|
|
71
|
+
export interface AlfaConfigVersion {
|
|
72
|
+
[key: string]: string;
|
|
73
|
+
}
|
|
67
74
|
export interface AlfaReleaseConfig {
|
|
68
|
-
'dist-tags'
|
|
69
|
-
versions
|
|
70
|
-
'locales-versions'
|
|
75
|
+
'dist-tags'?: Partial<Record<string, string>>;
|
|
76
|
+
versions?: Record<Version, Partial<AlfaVersion>>;
|
|
77
|
+
'locales-versions'?: Record<Version, Partial<AlfaLocaleVersion>>;
|
|
78
|
+
'config-versions'?: Record<Version, Partial<AlfaConfigVersion>>;
|
|
71
79
|
}
|
|
72
80
|
declare type AlfaChannelLinks = Partial<Record<Channel, ChannelLinks>>;
|
|
73
81
|
declare type AlfaChannelFeatures = Partial<Record<Channel, ChannelFeatures>>;
|
|
@@ -86,7 +94,10 @@ export interface AlfaDynamicConfig {
|
|
|
86
94
|
ALL_FEATURE_STATUS: AlfaFeatures;
|
|
87
95
|
}
|
|
88
96
|
export declare type EnvEnum = 'prod' | 'local' | 'pre' | 'daily';
|
|
89
|
-
|
|
97
|
+
/**
|
|
98
|
+
* @deprecated
|
|
99
|
+
*/
|
|
100
|
+
export interface AlfaFactoryOption extends IAppConfig {
|
|
90
101
|
name: string;
|
|
91
102
|
version?: string;
|
|
92
103
|
env?: EnvEnum;
|
|
@@ -94,6 +105,5 @@ export interface AlfaFactoryOption extends IOptions {
|
|
|
94
105
|
url?: string;
|
|
95
106
|
manifest?: string;
|
|
96
107
|
dependencies?: Record<string, any>;
|
|
97
|
-
dynamicConfig?: boolean;
|
|
98
108
|
}
|
|
99
109
|
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
declare class Cache {
|
|
2
|
+
static create(): Cache;
|
|
3
|
+
store: Record<string, unknown>;
|
|
4
|
+
constructor();
|
|
5
|
+
getRemote<T = any>(url: string): Promise<T>;
|
|
6
|
+
get<V = any>(key: string): V;
|
|
7
|
+
set<V = any>(key: string, value: V): void;
|
|
8
|
+
clear(): void;
|
|
9
|
+
}
|
|
10
|
+
declare const _default: Cache;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
+
|
|
16
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
+
|
|
18
|
+
var _axios = _interopRequireDefault(require("axios"));
|
|
19
|
+
|
|
20
|
+
var Cache = /*#__PURE__*/function () {
|
|
21
|
+
function Cache() {
|
|
22
|
+
(0, _classCallCheck2.default)(this, Cache);
|
|
23
|
+
this.store = {};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
(0, _createClass2.default)(Cache, [{
|
|
27
|
+
key: "getRemote",
|
|
28
|
+
value: function () {
|
|
29
|
+
var _getRemote = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(url) {
|
|
30
|
+
var res, result;
|
|
31
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
32
|
+
while (1) {
|
|
33
|
+
switch (_context.prev = _context.next) {
|
|
34
|
+
case 0:
|
|
35
|
+
if (!this.store[url]) {
|
|
36
|
+
_context.next = 2;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return _context.abrupt("return", this.store[url]);
|
|
41
|
+
|
|
42
|
+
case 2:
|
|
43
|
+
_context.next = 4;
|
|
44
|
+
return _axios.default.get(url);
|
|
45
|
+
|
|
46
|
+
case 4:
|
|
47
|
+
res = _context.sent;
|
|
48
|
+
result = res.data;
|
|
49
|
+
if (result) this.store[url] = result;
|
|
50
|
+
return _context.abrupt("return", result);
|
|
51
|
+
|
|
52
|
+
case 8:
|
|
53
|
+
case "end":
|
|
54
|
+
return _context.stop();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}, _callee, this);
|
|
58
|
+
}));
|
|
59
|
+
|
|
60
|
+
function getRemote(_x) {
|
|
61
|
+
return _getRemote.apply(this, arguments);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return getRemote;
|
|
65
|
+
}()
|
|
66
|
+
}, {
|
|
67
|
+
key: "get",
|
|
68
|
+
value: function get(key) {
|
|
69
|
+
return this.store[key];
|
|
70
|
+
}
|
|
71
|
+
}, {
|
|
72
|
+
key: "set",
|
|
73
|
+
value: function set(key, value) {
|
|
74
|
+
this.store[key] = value;
|
|
75
|
+
}
|
|
76
|
+
}, {
|
|
77
|
+
key: "clear",
|
|
78
|
+
value: function clear() {
|
|
79
|
+
this.store = {};
|
|
80
|
+
}
|
|
81
|
+
}], [{
|
|
82
|
+
key: "create",
|
|
83
|
+
value: function create() {
|
|
84
|
+
return new this();
|
|
85
|
+
}
|
|
86
|
+
}]);
|
|
87
|
+
return Cache;
|
|
88
|
+
}();
|
|
89
|
+
|
|
90
|
+
var _default = Cache.create();
|
|
91
|
+
|
|
92
|
+
exports.default = _default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { IAppConfig } from '../types';
|
|
2
2
|
/**
|
|
3
3
|
* 获取 Alfa 平台配置的 Config
|
|
4
|
-
* @param
|
|
4
|
+
* @param config
|
|
5
5
|
* @returns
|
|
6
6
|
*/
|
|
7
|
-
export declare const getConfig: (
|
|
7
|
+
export declare const getConfig: (config: IAppConfig) => Promise<{}>;
|
|
@@ -9,20 +9,12 @@ exports.getConfig = 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
|
-
var
|
|
17
|
-
|
|
18
|
-
var _ = require(".");
|
|
19
|
-
|
|
20
|
-
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; }
|
|
14
|
+
var _getAlfaRelease = require("./getAlfaRelease");
|
|
21
15
|
|
|
22
|
-
|
|
16
|
+
var _cacheManager = _interopRequireDefault(require("./cacheManager"));
|
|
23
17
|
|
|
24
|
-
var cachedConfig = {};
|
|
25
|
-
var productReg = /@ali\/alfa-cloud-([a-zA-z]*)-(app|widget)-.*/;
|
|
26
18
|
var defaultConfig = {
|
|
27
19
|
ALL_CHANNEL_FEATURE_STATUS: {},
|
|
28
20
|
ALL_CHANNEL_LINKS: {},
|
|
@@ -30,60 +22,58 @@ var defaultConfig = {
|
|
|
30
22
|
};
|
|
31
23
|
/**
|
|
32
24
|
* 获取 Alfa 平台配置的 Config
|
|
33
|
-
* @param
|
|
25
|
+
* @param config
|
|
34
26
|
* @returns
|
|
35
27
|
*/
|
|
36
28
|
|
|
37
29
|
var getConfig = /*#__PURE__*/function () {
|
|
38
|
-
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(
|
|
39
|
-
var
|
|
30
|
+
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(config) {
|
|
31
|
+
var _releaseConfig$distT, _releaseConfig$config, _releaseConfig$config2;
|
|
32
|
+
|
|
33
|
+
var releaseConfig, version, configEntry, configData;
|
|
40
34
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
41
35
|
while (1) {
|
|
42
36
|
switch (_context.prev = _context.next) {
|
|
43
37
|
case 0:
|
|
44
|
-
|
|
38
|
+
_context.next = 2;
|
|
39
|
+
return (0, _getAlfaRelease.getRelease)(config);
|
|
40
|
+
|
|
41
|
+
case 2:
|
|
42
|
+
releaseConfig = _context.sent;
|
|
43
|
+
version = (_releaseConfig$distT = releaseConfig['dist-tags']) === null || _releaseConfig$distT === void 0 ? void 0 : _releaseConfig$distT['config-latest'];
|
|
44
|
+
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
|
|
45
45
|
|
|
46
|
-
if (
|
|
47
|
-
_context.next =
|
|
46
|
+
if (!(!version || configEntry)) {
|
|
47
|
+
_context.next = 7;
|
|
48
48
|
break;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
return _context.abrupt("return",
|
|
51
|
+
return _context.abrupt("return", {});
|
|
52
52
|
|
|
53
|
-
case
|
|
54
|
-
|
|
53
|
+
case 7:
|
|
54
|
+
configData = defaultConfig;
|
|
55
|
+
_context.prev = 8;
|
|
56
|
+
_context.next = 11;
|
|
57
|
+
return _cacheManager.default.getRemote(configEntry);
|
|
55
58
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
_context.prev = 5;
|
|
62
|
-
_context.next = 8;
|
|
63
|
-
return _axios.default.get((0, _.resolveConfigUrl)(_objectSpread(_objectSpread({}, option), {}, {
|
|
64
|
-
name: configId
|
|
65
|
-
})));
|
|
66
|
-
|
|
67
|
-
case 8:
|
|
68
|
-
resp = _context.sent;
|
|
69
|
-
configData = resp.data;
|
|
70
|
-
cachedConfig[configId] = configData;
|
|
71
|
-
_context.next = 15;
|
|
59
|
+
case 11:
|
|
60
|
+
configData = _context.sent;
|
|
61
|
+
_context.next = 16;
|
|
72
62
|
break;
|
|
73
63
|
|
|
74
|
-
case
|
|
75
|
-
_context.prev =
|
|
76
|
-
_context.t0 = _context["catch"](
|
|
77
|
-
|
|
78
|
-
case 15:
|
|
79
|
-
return _context.abrupt("return", cachedConfig[configId] || defaultConfig);
|
|
64
|
+
case 14:
|
|
65
|
+
_context.prev = 14;
|
|
66
|
+
_context.t0 = _context["catch"](8);
|
|
80
67
|
|
|
81
68
|
case 16:
|
|
69
|
+
return _context.abrupt("return", configData);
|
|
70
|
+
|
|
71
|
+
case 17:
|
|
82
72
|
case "end":
|
|
83
73
|
return _context.stop();
|
|
84
74
|
}
|
|
85
75
|
}
|
|
86
|
-
}, _callee, null, [[
|
|
76
|
+
}, _callee, null, [[8, 14]]);
|
|
87
77
|
}));
|
|
88
78
|
|
|
89
79
|
return function getConfig(_x) {
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { IAppConfig } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* 获取国际化文案
|
|
4
|
+
* @param config
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
export declare const getLocale: (config: IAppConfig) => Promise<Record<string, string>>;
|