@modern-js/utils 1.1.1 → 1.1.4
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/CHANGELOG.md +30 -0
- package/dist/js/modern/alias.js +10 -10
- package/dist/js/modern/compatRequire.js +11 -0
- package/dist/js/modern/constants.js +33 -3
- package/dist/js/modern/getEntryOptions.js +15 -6
- package/dist/js/modern/is/type.js +3 -0
- package/dist/js/modern/logger.js +2 -2
- package/dist/js/modern/monorepo.js +2 -2
- package/dist/js/modern/runtimeExports.js +5 -2
- package/dist/js/node/alias.js +10 -10
- package/dist/js/node/compatRequire.js +16 -2
- package/dist/js/node/constants.js +40 -6
- package/dist/js/node/getEntryOptions.js +16 -6
- package/dist/js/node/is/type.js +5 -0
- package/dist/js/node/logger.js +2 -2
- package/dist/js/node/monorepo.js +2 -2
- package/dist/js/node/runtimeExports.js +8 -2
- package/dist/js/treeshaking/alias.js +9 -9
- package/dist/js/treeshaking/compatRequire.js +14 -0
- package/dist/js/treeshaking/constants.js +33 -3
- package/dist/js/treeshaking/formatWebpackMessages.js +1 -1
- package/dist/js/treeshaking/getEntryOptions.js +16 -5
- package/dist/js/treeshaking/is/type.js +4 -1
- package/dist/js/treeshaking/logger.js +3 -3
- package/dist/js/treeshaking/monorepo.js +2 -2
- package/dist/js/treeshaking/runtimeExports.js +8 -2
- package/dist/types/compatRequire.d.ts +2 -1
- package/dist/types/constants.d.ts +22 -2
- package/dist/types/getEntryOptions.d.ts +1 -1
- package/dist/types/is/type.d.ts +2 -1
- package/dist/types/runtimeExports.d.ts +1 -1
- package/package.json +5 -4
- package/src/alias.ts +7 -7
- package/src/compatRequire.ts +15 -0
- package/src/constants.ts +31 -2
- package/src/getEntryOptions.ts +23 -4
- package/src/is/type.ts +4 -0
- package/src/runtimeExports.ts +12 -1
- package/tests/getEntryOptions.test.ts +11 -0
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,35 @@
|
|
1
1
|
# @modern-js/utils
|
2
2
|
|
3
|
+
## 1.1.4
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- d927bc83: update plugins list
|
8
|
+
- d73ff455: support multi process product
|
9
|
+
- 9c1ab865: fix: filter invalid ts paths
|
10
|
+
- d73ff455: support multi process product
|
11
|
+
- d73ff455: support multi process product
|
12
|
+
- d73ff455: support multi process product
|
13
|
+
- d73ff455: support multi process product
|
14
|
+
|
15
|
+
## 1.1.3
|
16
|
+
|
17
|
+
### Patch Changes
|
18
|
+
|
19
|
+
- 085a6a58: refactor server plugin
|
20
|
+
- 085a6a58: refactor server plugin
|
21
|
+
- 085a6a58: refactor server conifg
|
22
|
+
- d280ea33: chore: runtime exports can choose to generate d.ts file
|
23
|
+
- 085a6a58: support server runtime
|
24
|
+
- 085a6a58: feat: refactor server plugin
|
25
|
+
|
26
|
+
## 1.1.2
|
27
|
+
|
28
|
+
### Patch Changes
|
29
|
+
|
30
|
+
- 0fa83663: support more .env files
|
31
|
+
- f594fbc8: fix apple icon and favicon support
|
32
|
+
|
3
33
|
## 1.1.1
|
4
34
|
|
5
35
|
### Patch Changes
|
package/dist/js/modern/alias.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
1
|
+
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; }
|
2
2
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
3
|
+
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; }
|
4
4
|
|
5
5
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
6
6
|
|
@@ -63,12 +63,12 @@ export const getAlias = (aliasOption, option) => {
|
|
63
63
|
}
|
64
64
|
|
65
65
|
return aliasConfig;
|
66
|
-
};
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
return userKeys.reduce((o, k) => {
|
66
|
+
}; // filter invalid ts paths that are not array
|
67
|
+
|
68
|
+
export const getUserAlias = (alias = {}) => Object.keys(alias).reduce((o, k) => {
|
69
|
+
if (Array.isArray(alias[k])) {
|
71
70
|
o[k] = alias[k];
|
72
|
-
|
73
|
-
|
74
|
-
|
71
|
+
}
|
72
|
+
|
73
|
+
return o;
|
74
|
+
}, {});
|
@@ -1,10 +1,21 @@
|
|
1
|
+
import { findExists } from "./findExists";
|
1
2
|
/**
|
2
3
|
* Require function compatible with esm and cjs module.
|
3
4
|
* @param filePath - File to required.
|
4
5
|
* @returns module export object.
|
5
6
|
*/
|
7
|
+
|
6
8
|
export const compatRequire = filePath => {
|
7
9
|
const mod = require(filePath);
|
8
10
|
|
9
11
|
return mod !== null && mod !== void 0 && mod.__esModule ? mod.default : mod;
|
12
|
+
};
|
13
|
+
export const requireExistModule = (filename, extensions = ['.ts', '.js']) => {
|
14
|
+
const exist = findExists(extensions.map(ext => `${filename}${ext}`));
|
15
|
+
|
16
|
+
if (!exist) {
|
17
|
+
return null;
|
18
|
+
}
|
19
|
+
|
20
|
+
return compatRequire(exist);
|
10
21
|
};
|
@@ -17,6 +17,11 @@ export const HMR_SOCK_PATH = '/_modern_js_hmr_ws';
|
|
17
17
|
*/
|
18
18
|
|
19
19
|
export const ROUTE_SPEC_FILE = 'route.json';
|
20
|
+
/**
|
21
|
+
* main entry name
|
22
|
+
*/
|
23
|
+
|
24
|
+
export const MAIN_ENTRY_NAME = 'main';
|
20
25
|
/**
|
21
26
|
* open editor request path
|
22
27
|
*/
|
@@ -42,7 +47,18 @@ export const SERVER_RENDER_FUNCTION_NAME = 'serverRender';
|
|
42
47
|
*/
|
43
48
|
|
44
49
|
export const LOADABLE_STATS_FILE = 'loadable-stats.json';
|
50
|
+
/**
|
51
|
+
* real entry generate by modern.js
|
52
|
+
*/
|
53
|
+
|
45
54
|
export const HIDE_MODERN_JS_DIR = './node_modules/.modern-js';
|
55
|
+
/**
|
56
|
+
* internal specified folder
|
57
|
+
*/
|
58
|
+
|
59
|
+
export const API_DIR = 'api';
|
60
|
+
export const SERVER_DIR = 'server';
|
61
|
+
export const SHARED_DIR = 'shared';
|
46
62
|
/**
|
47
63
|
* Internal plugins that work as soon as they are installed.
|
48
64
|
*/
|
@@ -113,6 +129,10 @@ export const INTERNAL_PLUGINS = {
|
|
113
129
|
'@modern-js/plugin-server-build': {
|
114
130
|
cli: '@modern-js/plugin-server-build'
|
115
131
|
},
|
132
|
+
'@modern-js/plugin-server': {
|
133
|
+
cli: '@modern-js/plugin-server/cli',
|
134
|
+
server: '@modern-js/plugin-server/server'
|
135
|
+
},
|
116
136
|
'@modern-js/plugin-micro-frontend': {
|
117
137
|
cli: '@modern-js/plugin-micro-frontend/cli'
|
118
138
|
},
|
@@ -139,6 +159,12 @@ export const INTERNAL_PLUGINS = {
|
|
139
159
|
},
|
140
160
|
'@modern-js/plugin-polyfill': {
|
141
161
|
server: '@modern-js/plugin-polyfill'
|
162
|
+
},
|
163
|
+
'@modern-js/plugin-multiprocess': {
|
164
|
+
cli: '@modern-js/plugin-multiprocess/cli'
|
165
|
+
},
|
166
|
+
'@modern-js/plugin-nocode': {
|
167
|
+
cli: '@modern-js/plugin-nocode/cli'
|
142
168
|
}
|
143
169
|
};
|
144
170
|
/**
|
@@ -170,7 +196,10 @@ export const PLUGIN_SCHEMAS = {
|
|
170
196
|
type: 'object',
|
171
197
|
properties: {
|
172
198
|
prefix: {
|
173
|
-
type: 'string'
|
199
|
+
type: ['string', 'array'],
|
200
|
+
items: {
|
201
|
+
type: 'string'
|
202
|
+
}
|
174
203
|
},
|
175
204
|
fetcher: {
|
176
205
|
type: 'string'
|
@@ -178,7 +207,7 @@ export const PLUGIN_SCHEMAS = {
|
|
178
207
|
proxy: {
|
179
208
|
type: 'object'
|
180
209
|
},
|
181
|
-
|
210
|
+
requestCreator: {
|
182
211
|
type: 'string'
|
183
212
|
}
|
184
213
|
}
|
@@ -281,5 +310,6 @@ export const PLUGIN_SCHEMAS = {
|
|
281
310
|
schema: {
|
282
311
|
type: ['object']
|
283
312
|
}
|
284
|
-
}]
|
313
|
+
}],
|
314
|
+
'@modern-js/plugin-nocode': []
|
285
315
|
};
|
@@ -1,15 +1,24 @@
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
1
|
+
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; }
|
2
2
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
3
|
+
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; }
|
4
4
|
|
5
5
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
6
6
|
|
7
7
|
import { isPlainObject } from "./is";
|
8
|
-
|
8
|
+
import { MAIN_ENTRY_NAME } from "./constants";
|
9
|
+
export const getEntryOptions = (name, baseOptions, optionsByEntries, packageName) => {
|
9
10
|
if (optionsByEntries) {
|
10
|
-
//
|
11
|
-
|
11
|
+
let optionsByEntry = getOptionsByEntryName(name, optionsByEntries); // compatible with main entry using packageName as the key
|
12
|
+
|
13
|
+
if (optionsByEntry === undefined && name === MAIN_ENTRY_NAME && packageName) {
|
14
|
+
optionsByEntry = getOptionsByEntryName(packageName, optionsByEntries);
|
15
|
+
} // eslint-disable-next-line no-nested-ternary
|
16
|
+
|
17
|
+
|
18
|
+
return optionsByEntry !== undefined ? isPlainObject(optionsByEntry) && isPlainObject(baseOptions) ? _objectSpread(_objectSpread({}, baseOptions), optionsByEntry) : optionsByEntry : baseOptions;
|
12
19
|
} else {
|
13
20
|
return baseOptions;
|
14
21
|
}
|
15
|
-
};
|
22
|
+
};
|
23
|
+
|
24
|
+
const getOptionsByEntryName = (name, optionsByEntries) => optionsByEntries.hasOwnProperty(name) ? optionsByEntries[name] : undefined;
|
@@ -22,4 +22,7 @@ export function isPromise(obj) {
|
|
22
22
|
/* eslint-disable promise/prefer-await-to-then */
|
23
23
|
return Boolean(obj) && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
|
24
24
|
/* eslint-enable promise/prefer-await-to-then */
|
25
|
+
}
|
26
|
+
export function isRegExp(obj) {
|
27
|
+
return Object.prototype.toString.call(obj) === '[object RegExp]';
|
25
28
|
}
|
package/dist/js/modern/logger.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
1
|
+
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; }
|
2
2
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
3
|
+
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; }
|
4
4
|
|
5
5
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
6
6
|
|
@@ -1,6 +1,6 @@
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
1
|
+
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; }
|
2
2
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
3
|
+
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; }
|
4
4
|
|
5
5
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
6
6
|
|
@@ -18,8 +18,9 @@ const memo = fn => {
|
|
18
18
|
};
|
19
19
|
};
|
20
20
|
|
21
|
-
export const createRuntimeExportsUtils = memo((pwd, namespace) => {
|
22
|
-
const entryExportFile = path.join(pwd, `.runtime-exports/${namespace ? `${namespace}.js` : 'index.js'}`);
|
21
|
+
export const createRuntimeExportsUtils = memo((pwd = '', namespace, ts = false) => {
|
22
|
+
const entryExportFile = path.join(pwd, `.runtime-exports/${namespace ? `${namespace}.js` : 'index.js'}`);
|
23
|
+
const entryExportTsFile = path.join(pwd, `.runtime-exports/${namespace ? `${namespace}.d.ts` : 'index.d.ts'}`); // const ensure = () => {
|
23
24
|
// if (!fs.existsSync(entryExportFile)) {
|
24
25
|
// fs.outputFileSync(entryExportFile, '');
|
25
26
|
// }
|
@@ -32,9 +33,11 @@ export const createRuntimeExportsUtils = memo((pwd, namespace) => {
|
|
32
33
|
|
33
34
|
try {
|
34
35
|
fs.ensureFileSync(entryExportFile);
|
36
|
+
fs.ensureFileSync(entryExportTsFile);
|
35
37
|
|
36
38
|
if (!fs.readFileSync(entryExportFile, 'utf8').includes(statement)) {
|
37
39
|
fs.appendFileSync(entryExportFile, `${statement}\n`);
|
40
|
+
ts && fs.appendFileSync(entryExportTsFile, `${statement.replace('.js', '.d')}\n`);
|
38
41
|
}
|
39
42
|
} catch (_unused) {// FIXME:
|
40
43
|
}
|
package/dist/js/node/alias.js
CHANGED
@@ -17,9 +17,9 @@ var _applyOptionsChain = require("./applyOptionsChain");
|
|
17
17
|
|
18
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
19
19
|
|
20
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
20
|
+
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; }
|
21
21
|
|
22
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
22
|
+
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; }
|
23
23
|
|
24
24
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
25
25
|
|
@@ -81,17 +81,17 @@ const getAlias = (aliasOption, option) => {
|
|
81
81
|
}
|
82
82
|
|
83
83
|
return aliasConfig;
|
84
|
-
};
|
84
|
+
}; // filter invalid ts paths that are not array
|
85
|
+
|
85
86
|
|
86
87
|
exports.getAlias = getAlias;
|
87
88
|
|
88
|
-
const getUserAlias = (alias = {}) => {
|
89
|
-
|
90
|
-
const userKeys = keys.filter(key => !key.includes('@modern-js/runtime'));
|
91
|
-
return userKeys.reduce((o, k) => {
|
89
|
+
const getUserAlias = (alias = {}) => Object.keys(alias).reduce((o, k) => {
|
90
|
+
if (Array.isArray(alias[k])) {
|
92
91
|
o[k] = alias[k];
|
93
|
-
|
94
|
-
|
95
|
-
|
92
|
+
}
|
93
|
+
|
94
|
+
return o;
|
95
|
+
}, {});
|
96
96
|
|
97
97
|
exports.getUserAlias = getUserAlias;
|
@@ -3,7 +3,9 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.compatRequire = void 0;
|
6
|
+
exports.requireExistModule = exports.compatRequire = void 0;
|
7
|
+
|
8
|
+
var _findExists = require("./findExists");
|
7
9
|
|
8
10
|
/**
|
9
11
|
* Require function compatible with esm and cjs module.
|
@@ -16,4 +18,16 @@ const compatRequire = filePath => {
|
|
16
18
|
return mod !== null && mod !== void 0 && mod.__esModule ? mod.default : mod;
|
17
19
|
};
|
18
20
|
|
19
|
-
exports.compatRequire = compatRequire;
|
21
|
+
exports.compatRequire = compatRequire;
|
22
|
+
|
23
|
+
const requireExistModule = (filename, extensions = ['.ts', '.js']) => {
|
24
|
+
const exist = (0, _findExists.findExists)(extensions.map(ext => `${filename}${ext}`));
|
25
|
+
|
26
|
+
if (!exist) {
|
27
|
+
return null;
|
28
|
+
}
|
29
|
+
|
30
|
+
return compatRequire(exist);
|
31
|
+
};
|
32
|
+
|
33
|
+
exports.requireExistModule = requireExistModule;
|
@@ -3,7 +3,7 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.SERVER_RENDER_FUNCTION_NAME = exports.SERVER_BUNDLE_DIRECTORY = exports.ROUTE_SPEC_FILE = exports.PLUGIN_SCHEMAS = exports.LOADABLE_STATS_FILE = exports.LAUNCH_EDITOR_ENDPOINT = exports.INTERNAL_SRC_ALIAS = exports.INTERNAL_PLUGINS = exports.INTERNAL_DIR_ALAIS = exports.HMR_SOCK_PATH = exports.HIDE_MODERN_JS_DIR = exports.ENTRY_NAME_PATTERN = void 0;
|
6
|
+
exports.SHARED_DIR = exports.SERVER_RENDER_FUNCTION_NAME = exports.SERVER_DIR = exports.SERVER_BUNDLE_DIRECTORY = exports.ROUTE_SPEC_FILE = exports.PLUGIN_SCHEMAS = exports.MAIN_ENTRY_NAME = exports.LOADABLE_STATS_FILE = exports.LAUNCH_EDITOR_ENDPOINT = exports.INTERNAL_SRC_ALIAS = exports.INTERNAL_PLUGINS = exports.INTERNAL_DIR_ALAIS = exports.HMR_SOCK_PATH = exports.HIDE_MODERN_JS_DIR = exports.ENTRY_NAME_PATTERN = exports.API_DIR = void 0;
|
7
7
|
|
8
8
|
/**
|
9
9
|
* alias to src directory
|
@@ -28,10 +28,16 @@ const HMR_SOCK_PATH = '/_modern_js_hmr_ws';
|
|
28
28
|
exports.HMR_SOCK_PATH = HMR_SOCK_PATH;
|
29
29
|
const ROUTE_SPEC_FILE = 'route.json';
|
30
30
|
/**
|
31
|
-
*
|
31
|
+
* main entry name
|
32
32
|
*/
|
33
33
|
|
34
34
|
exports.ROUTE_SPEC_FILE = ROUTE_SPEC_FILE;
|
35
|
+
const MAIN_ENTRY_NAME = 'main';
|
36
|
+
/**
|
37
|
+
* open editor request path
|
38
|
+
*/
|
39
|
+
|
40
|
+
exports.MAIN_ENTRY_NAME = MAIN_ENTRY_NAME;
|
35
41
|
const LAUNCH_EDITOR_ENDPOINT = '/__open-stack-frame-in-editor';
|
36
42
|
/**
|
37
43
|
* server side bundles directory, which relative to dist.
|
@@ -57,13 +63,27 @@ const SERVER_RENDER_FUNCTION_NAME = 'serverRender';
|
|
57
63
|
|
58
64
|
exports.SERVER_RENDER_FUNCTION_NAME = SERVER_RENDER_FUNCTION_NAME;
|
59
65
|
const LOADABLE_STATS_FILE = 'loadable-stats.json';
|
66
|
+
/**
|
67
|
+
* real entry generate by modern.js
|
68
|
+
*/
|
69
|
+
|
60
70
|
exports.LOADABLE_STATS_FILE = LOADABLE_STATS_FILE;
|
61
71
|
const HIDE_MODERN_JS_DIR = './node_modules/.modern-js';
|
62
72
|
/**
|
63
|
-
*
|
73
|
+
* internal specified folder
|
64
74
|
*/
|
65
75
|
|
66
76
|
exports.HIDE_MODERN_JS_DIR = HIDE_MODERN_JS_DIR;
|
77
|
+
const API_DIR = 'api';
|
78
|
+
exports.API_DIR = API_DIR;
|
79
|
+
const SERVER_DIR = 'server';
|
80
|
+
exports.SERVER_DIR = SERVER_DIR;
|
81
|
+
const SHARED_DIR = 'shared';
|
82
|
+
/**
|
83
|
+
* Internal plugins that work as soon as they are installed.
|
84
|
+
*/
|
85
|
+
|
86
|
+
exports.SHARED_DIR = SHARED_DIR;
|
67
87
|
const INTERNAL_PLUGINS = {
|
68
88
|
'@modern-js/app-tools': {
|
69
89
|
cli: '@modern-js/app-tools/cli'
|
@@ -130,6 +150,10 @@ const INTERNAL_PLUGINS = {
|
|
130
150
|
'@modern-js/plugin-server-build': {
|
131
151
|
cli: '@modern-js/plugin-server-build'
|
132
152
|
},
|
153
|
+
'@modern-js/plugin-server': {
|
154
|
+
cli: '@modern-js/plugin-server/cli',
|
155
|
+
server: '@modern-js/plugin-server/server'
|
156
|
+
},
|
133
157
|
'@modern-js/plugin-micro-frontend': {
|
134
158
|
cli: '@modern-js/plugin-micro-frontend/cli'
|
135
159
|
},
|
@@ -156,6 +180,12 @@ const INTERNAL_PLUGINS = {
|
|
156
180
|
},
|
157
181
|
'@modern-js/plugin-polyfill': {
|
158
182
|
server: '@modern-js/plugin-polyfill'
|
183
|
+
},
|
184
|
+
'@modern-js/plugin-multiprocess': {
|
185
|
+
cli: '@modern-js/plugin-multiprocess/cli'
|
186
|
+
},
|
187
|
+
'@modern-js/plugin-nocode': {
|
188
|
+
cli: '@modern-js/plugin-nocode/cli'
|
159
189
|
}
|
160
190
|
};
|
161
191
|
/**
|
@@ -188,7 +218,10 @@ const PLUGIN_SCHEMAS = {
|
|
188
218
|
type: 'object',
|
189
219
|
properties: {
|
190
220
|
prefix: {
|
191
|
-
type: 'string'
|
221
|
+
type: ['string', 'array'],
|
222
|
+
items: {
|
223
|
+
type: 'string'
|
224
|
+
}
|
192
225
|
},
|
193
226
|
fetcher: {
|
194
227
|
type: 'string'
|
@@ -196,7 +229,7 @@ const PLUGIN_SCHEMAS = {
|
|
196
229
|
proxy: {
|
197
230
|
type: 'object'
|
198
231
|
},
|
199
|
-
|
232
|
+
requestCreator: {
|
200
233
|
type: 'string'
|
201
234
|
}
|
202
235
|
}
|
@@ -299,6 +332,7 @@ const PLUGIN_SCHEMAS = {
|
|
299
332
|
schema: {
|
300
333
|
type: ['object']
|
301
334
|
}
|
302
|
-
}]
|
335
|
+
}],
|
336
|
+
'@modern-js/plugin-nocode': []
|
303
337
|
};
|
304
338
|
exports.PLUGIN_SCHEMAS = PLUGIN_SCHEMAS;
|
@@ -7,19 +7,29 @@ exports.getEntryOptions = void 0;
|
|
7
7
|
|
8
8
|
var _is = require("./is");
|
9
9
|
|
10
|
-
|
10
|
+
var _constants = require("./constants");
|
11
11
|
|
12
|
-
function
|
12
|
+
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; }
|
13
|
+
|
14
|
+
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; }
|
13
15
|
|
14
16
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
15
17
|
|
16
|
-
const getEntryOptions = (name, baseOptions, optionsByEntries) => {
|
18
|
+
const getEntryOptions = (name, baseOptions, optionsByEntries, packageName) => {
|
17
19
|
if (optionsByEntries) {
|
18
|
-
//
|
19
|
-
|
20
|
+
let optionsByEntry = getOptionsByEntryName(name, optionsByEntries); // compatible with main entry using packageName as the key
|
21
|
+
|
22
|
+
if (optionsByEntry === undefined && name === _constants.MAIN_ENTRY_NAME && packageName) {
|
23
|
+
optionsByEntry = getOptionsByEntryName(packageName, optionsByEntries);
|
24
|
+
} // eslint-disable-next-line no-nested-ternary
|
25
|
+
|
26
|
+
|
27
|
+
return optionsByEntry !== undefined ? (0, _is.isPlainObject)(optionsByEntry) && (0, _is.isPlainObject)(baseOptions) ? _objectSpread(_objectSpread({}, baseOptions), optionsByEntry) : optionsByEntry : baseOptions;
|
20
28
|
} else {
|
21
29
|
return baseOptions;
|
22
30
|
}
|
23
31
|
};
|
24
32
|
|
25
|
-
exports.getEntryOptions = getEntryOptions;
|
33
|
+
exports.getEntryOptions = getEntryOptions;
|
34
|
+
|
35
|
+
const getOptionsByEntryName = (name, optionsByEntries) => optionsByEntries.hasOwnProperty(name) ? optionsByEntries[name] : undefined;
|
package/dist/js/node/is/type.js
CHANGED
@@ -8,6 +8,7 @@ exports.isFunction = isFunction;
|
|
8
8
|
exports.isObject = isObject;
|
9
9
|
exports.isPlainObject = isPlainObject;
|
10
10
|
exports.isPromise = isPromise;
|
11
|
+
exports.isRegExp = isRegExp;
|
11
12
|
exports.isString = isString;
|
12
13
|
exports.isUndefined = isUndefined;
|
13
14
|
|
@@ -41,4 +42,8 @@ function isPromise(obj) {
|
|
41
42
|
/* eslint-disable promise/prefer-await-to-then */
|
42
43
|
return Boolean(obj) && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
|
43
44
|
/* eslint-enable promise/prefer-await-to-then */
|
45
|
+
}
|
46
|
+
|
47
|
+
function isRegExp(obj) {
|
48
|
+
return Object.prototype.toString.call(obj) === '[object RegExp]';
|
44
49
|
}
|
package/dist/js/node/logger.js
CHANGED
@@ -9,9 +9,9 @@ var _chalk = _interopRequireDefault(require("chalk"));
|
|
9
9
|
|
10
10
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
11
11
|
|
12
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
12
|
+
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; }
|
13
13
|
|
14
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
14
|
+
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; }
|
15
15
|
|
16
16
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
17
17
|
|
package/dist/js/node/monorepo.js
CHANGED
@@ -15,9 +15,9 @@ var _yaml = _interopRequireDefault(require("yaml"));
|
|
15
15
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
17
17
|
|
18
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
18
|
+
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; }
|
19
19
|
|
20
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
20
|
+
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; }
|
21
21
|
|
22
22
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
23
23
|
|
@@ -29,8 +29,10 @@ const memo = fn => {
|
|
29
29
|
};
|
30
30
|
};
|
31
31
|
|
32
|
-
const createRuntimeExportsUtils = memo((pwd, namespace) => {
|
33
|
-
const entryExportFile = _path.default.join(pwd, `.runtime-exports/${namespace ? `${namespace}.js` : 'index.js'}`);
|
32
|
+
const createRuntimeExportsUtils = memo((pwd = '', namespace, ts = false) => {
|
33
|
+
const entryExportFile = _path.default.join(pwd, `.runtime-exports/${namespace ? `${namespace}.js` : 'index.js'}`);
|
34
|
+
|
35
|
+
const entryExportTsFile = _path.default.join(pwd, `.runtime-exports/${namespace ? `${namespace}.d.ts` : 'index.d.ts'}`); // const ensure = () => {
|
34
36
|
// if (!fs.existsSync(entryExportFile)) {
|
35
37
|
// fs.outputFileSync(entryExportFile, '');
|
36
38
|
// }
|
@@ -45,8 +47,12 @@ const createRuntimeExportsUtils = memo((pwd, namespace) => {
|
|
45
47
|
try {
|
46
48
|
_fsExtra.default.ensureFileSync(entryExportFile);
|
47
49
|
|
50
|
+
_fsExtra.default.ensureFileSync(entryExportTsFile);
|
51
|
+
|
48
52
|
if (!_fsExtra.default.readFileSync(entryExportFile, 'utf8').includes(statement)) {
|
49
53
|
_fsExtra.default.appendFileSync(entryExportFile, `${statement}\n`);
|
54
|
+
|
55
|
+
ts && _fsExtra.default.appendFileSync(entryExportTsFile, `${statement.replace('.js', '.d')}\n`);
|
50
56
|
}
|
51
57
|
} catch (_unused) {// FIXME:
|
52
58
|
}
|
@@ -1,6 +1,6 @@
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
1
|
+
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; }
|
2
2
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
3
|
+
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; }
|
4
4
|
|
5
5
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
6
6
|
|
@@ -58,15 +58,15 @@ export var getAlias = function getAlias(aliasOption, option) {
|
|
58
58
|
}
|
59
59
|
|
60
60
|
return aliasConfig;
|
61
|
-
};
|
61
|
+
}; // filter invalid ts paths that are not array
|
62
|
+
|
62
63
|
export var getUserAlias = function getUserAlias() {
|
63
64
|
var alias = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
o[k] = alias[k];
|
65
|
+
return Object.keys(alias).reduce(function (o, k) {
|
66
|
+
if (Array.isArray(alias[k])) {
|
67
|
+
o[k] = alias[k];
|
68
|
+
}
|
69
|
+
|
70
70
|
return o;
|
71
71
|
}, {});
|
72
72
|
};
|
@@ -1,10 +1,24 @@
|
|
1
|
+
import { findExists } from "./findExists";
|
1
2
|
/**
|
2
3
|
* Require function compatible with esm and cjs module.
|
3
4
|
* @param filePath - File to required.
|
4
5
|
* @returns module export object.
|
5
6
|
*/
|
7
|
+
|
6
8
|
export var compatRequire = function compatRequire(filePath) {
|
7
9
|
var mod = require(filePath);
|
8
10
|
|
9
11
|
return mod !== null && mod !== void 0 && mod.__esModule ? mod["default"] : mod;
|
12
|
+
};
|
13
|
+
export var requireExistModule = function requireExistModule(filename) {
|
14
|
+
var extensions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ['.ts', '.js'];
|
15
|
+
var exist = findExists(extensions.map(function (ext) {
|
16
|
+
return "".concat(filename).concat(ext);
|
17
|
+
}));
|
18
|
+
|
19
|
+
if (!exist) {
|
20
|
+
return null;
|
21
|
+
}
|
22
|
+
|
23
|
+
return compatRequire(exist);
|
10
24
|
};
|
@@ -19,6 +19,11 @@ export var HMR_SOCK_PATH = '/_modern_js_hmr_ws';
|
|
19
19
|
*/
|
20
20
|
|
21
21
|
export var ROUTE_SPEC_FILE = 'route.json';
|
22
|
+
/**
|
23
|
+
* main entry name
|
24
|
+
*/
|
25
|
+
|
26
|
+
export var MAIN_ENTRY_NAME = 'main';
|
22
27
|
/**
|
23
28
|
* open editor request path
|
24
29
|
*/
|
@@ -44,7 +49,18 @@ export var SERVER_RENDER_FUNCTION_NAME = 'serverRender';
|
|
44
49
|
*/
|
45
50
|
|
46
51
|
export var LOADABLE_STATS_FILE = 'loadable-stats.json';
|
52
|
+
/**
|
53
|
+
* real entry generate by modern.js
|
54
|
+
*/
|
55
|
+
|
47
56
|
export var HIDE_MODERN_JS_DIR = './node_modules/.modern-js';
|
57
|
+
/**
|
58
|
+
* internal specified folder
|
59
|
+
*/
|
60
|
+
|
61
|
+
export var API_DIR = 'api';
|
62
|
+
export var SERVER_DIR = 'server';
|
63
|
+
export var SHARED_DIR = 'shared';
|
48
64
|
/**
|
49
65
|
* Internal plugins that work as soon as they are installed.
|
50
66
|
*/
|
@@ -115,6 +131,10 @@ export var INTERNAL_PLUGINS = {
|
|
115
131
|
'@modern-js/plugin-server-build': {
|
116
132
|
cli: '@modern-js/plugin-server-build'
|
117
133
|
},
|
134
|
+
'@modern-js/plugin-server': {
|
135
|
+
cli: '@modern-js/plugin-server/cli',
|
136
|
+
server: '@modern-js/plugin-server/server'
|
137
|
+
},
|
118
138
|
'@modern-js/plugin-micro-frontend': {
|
119
139
|
cli: '@modern-js/plugin-micro-frontend/cli'
|
120
140
|
},
|
@@ -141,6 +161,12 @@ export var INTERNAL_PLUGINS = {
|
|
141
161
|
},
|
142
162
|
'@modern-js/plugin-polyfill': {
|
143
163
|
server: '@modern-js/plugin-polyfill'
|
164
|
+
},
|
165
|
+
'@modern-js/plugin-multiprocess': {
|
166
|
+
cli: '@modern-js/plugin-multiprocess/cli'
|
167
|
+
},
|
168
|
+
'@modern-js/plugin-nocode': {
|
169
|
+
cli: '@modern-js/plugin-nocode/cli'
|
144
170
|
}
|
145
171
|
};
|
146
172
|
/**
|
@@ -170,7 +196,10 @@ export var PLUGIN_SCHEMAS = {
|
|
170
196
|
type: 'object',
|
171
197
|
properties: {
|
172
198
|
prefix: {
|
173
|
-
type: 'string'
|
199
|
+
type: ['string', 'array'],
|
200
|
+
items: {
|
201
|
+
type: 'string'
|
202
|
+
}
|
174
203
|
},
|
175
204
|
fetcher: {
|
176
205
|
type: 'string'
|
@@ -178,7 +207,7 @@ export var PLUGIN_SCHEMAS = {
|
|
178
207
|
proxy: {
|
179
208
|
type: 'object'
|
180
209
|
},
|
181
|
-
|
210
|
+
requestCreator: {
|
182
211
|
type: 'string'
|
183
212
|
}
|
184
213
|
}
|
@@ -281,5 +310,6 @@ export var PLUGIN_SCHEMAS = {
|
|
281
310
|
schema: {
|
282
311
|
type: ['object']
|
283
312
|
}
|
284
|
-
}]
|
313
|
+
}],
|
314
|
+
'@modern-js/plugin-nocode': []
|
285
315
|
};
|
@@ -10,7 +10,7 @@ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Sy
|
|
10
10
|
|
11
11
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
12
12
|
|
13
|
-
function _typeof(obj) { "@babel/helpers - typeof";
|
13
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
14
14
|
|
15
15
|
/* eslint-disable no-param-reassign */
|
16
16
|
|
@@ -1,15 +1,26 @@
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
1
|
+
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; }
|
2
2
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
3
|
+
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; }
|
4
4
|
|
5
5
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
6
6
|
|
7
7
|
import { isPlainObject } from "./is";
|
8
|
-
|
8
|
+
import { MAIN_ENTRY_NAME } from "./constants";
|
9
|
+
export var getEntryOptions = function getEntryOptions(name, baseOptions, optionsByEntries, packageName) {
|
9
10
|
if (optionsByEntries) {
|
10
|
-
//
|
11
|
-
|
11
|
+
var optionsByEntry = getOptionsByEntryName(name, optionsByEntries); // compatible with main entry using packageName as the key
|
12
|
+
|
13
|
+
if (optionsByEntry === undefined && name === MAIN_ENTRY_NAME && packageName) {
|
14
|
+
optionsByEntry = getOptionsByEntryName(packageName, optionsByEntries);
|
15
|
+
} // eslint-disable-next-line no-nested-ternary
|
16
|
+
|
17
|
+
|
18
|
+
return optionsByEntry !== undefined ? isPlainObject(optionsByEntry) && isPlainObject(baseOptions) ? _objectSpread(_objectSpread({}, baseOptions), optionsByEntry) : optionsByEntry : baseOptions;
|
12
19
|
} else {
|
13
20
|
return baseOptions;
|
14
21
|
}
|
22
|
+
};
|
23
|
+
|
24
|
+
var getOptionsByEntryName = function getOptionsByEntryName(name, optionsByEntries) {
|
25
|
+
return optionsByEntries.hasOwnProperty(name) ? optionsByEntries[name] : undefined;
|
15
26
|
};
|
@@ -1,4 +1,4 @@
|
|
1
|
-
function _typeof(obj) { "@babel/helpers - typeof";
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
2
2
|
|
3
3
|
export function isString(str) {
|
4
4
|
return typeof str === 'string';
|
@@ -24,4 +24,7 @@ export function isPromise(obj) {
|
|
24
24
|
/* eslint-disable promise/prefer-await-to-then */
|
25
25
|
return Boolean(obj) && (_typeof(obj) === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
|
26
26
|
/* eslint-enable promise/prefer-await-to-then */
|
27
|
+
}
|
28
|
+
export function isRegExp(obj) {
|
29
|
+
return Object.prototype.toString.call(obj) === '[object RegExp]';
|
27
30
|
}
|
@@ -10,9 +10,9 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb
|
|
10
10
|
|
11
11
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
12
12
|
|
13
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
13
|
+
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; }
|
14
14
|
|
15
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
15
|
+
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; }
|
16
16
|
|
17
17
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
18
18
|
|
@@ -20,7 +20,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|
20
20
|
|
21
21
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
22
22
|
|
23
|
-
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
23
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
24
24
|
|
25
25
|
import chalk from 'chalk';
|
26
26
|
var grey = chalk.grey,
|
@@ -1,6 +1,6 @@
|
|
1
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
1
|
+
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; }
|
2
2
|
|
3
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
3
|
+
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; }
|
4
4
|
|
5
5
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
6
6
|
|
@@ -22,8 +22,12 @@ var memo = function memo(fn) {
|
|
22
22
|
};
|
23
23
|
};
|
24
24
|
|
25
|
-
export var createRuntimeExportsUtils = memo(function (
|
26
|
-
var
|
25
|
+
export var createRuntimeExportsUtils = memo(function () {
|
26
|
+
var pwd = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
|
27
|
+
var namespace = arguments.length > 1 ? arguments[1] : undefined;
|
28
|
+
var ts = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
29
|
+
var entryExportFile = path.join(pwd, ".runtime-exports/".concat(namespace ? "".concat(namespace, ".js") : 'index.js'));
|
30
|
+
var entryExportTsFile = path.join(pwd, ".runtime-exports/".concat(namespace ? "".concat(namespace, ".d.ts") : 'index.d.ts')); // const ensure = () => {
|
27
31
|
// if (!fs.existsSync(entryExportFile)) {
|
28
32
|
// fs.outputFileSync(entryExportFile, '');
|
29
33
|
// }
|
@@ -36,9 +40,11 @@ export var createRuntimeExportsUtils = memo(function (pwd, namespace) {
|
|
36
40
|
|
37
41
|
try {
|
38
42
|
fs.ensureFileSync(entryExportFile);
|
43
|
+
fs.ensureFileSync(entryExportTsFile);
|
39
44
|
|
40
45
|
if (!fs.readFileSync(entryExportFile, 'utf8').includes(statement)) {
|
41
46
|
fs.appendFileSync(entryExportFile, "".concat(statement, "\n"));
|
47
|
+
ts && fs.appendFileSync(entryExportTsFile, "".concat(statement.replace('.js', '.d'), "\n"));
|
42
48
|
}
|
43
49
|
} catch (_unused) {// FIXME:
|
44
50
|
}
|
@@ -3,4 +3,5 @@
|
|
3
3
|
* @param filePath - File to required.
|
4
4
|
* @returns module export object.
|
5
5
|
*/
|
6
|
-
export declare const compatRequire: (filePath: string) => any;
|
6
|
+
export declare const compatRequire: (filePath: string) => any;
|
7
|
+
export declare const requireExistModule: (filename: string, extensions?: string[]) => any;
|
@@ -17,6 +17,11 @@ export declare const HMR_SOCK_PATH = "/_modern_js_hmr_ws";
|
|
17
17
|
*/
|
18
18
|
|
19
19
|
export declare const ROUTE_SPEC_FILE = "route.json";
|
20
|
+
/**
|
21
|
+
* main entry name
|
22
|
+
*/
|
23
|
+
|
24
|
+
export declare const MAIN_ENTRY_NAME = "main";
|
20
25
|
/**
|
21
26
|
* open editor request path
|
22
27
|
*/
|
@@ -42,7 +47,18 @@ export declare const SERVER_RENDER_FUNCTION_NAME = "serverRender";
|
|
42
47
|
*/
|
43
48
|
|
44
49
|
export declare const LOADABLE_STATS_FILE = "loadable-stats.json";
|
50
|
+
/**
|
51
|
+
* real entry generate by modern.js
|
52
|
+
*/
|
53
|
+
|
45
54
|
export declare const HIDE_MODERN_JS_DIR = "./node_modules/.modern-js";
|
55
|
+
/**
|
56
|
+
* internal specified folder
|
57
|
+
*/
|
58
|
+
|
59
|
+
export declare const API_DIR = "api";
|
60
|
+
export declare const SERVER_DIR = "server";
|
61
|
+
export declare const SHARED_DIR = "shared";
|
46
62
|
/**
|
47
63
|
* Internal plugins that work as soon as they are installed.
|
48
64
|
*/
|
@@ -83,7 +99,10 @@ export declare const PLUGIN_SCHEMAS: {
|
|
83
99
|
type: string;
|
84
100
|
properties: {
|
85
101
|
prefix: {
|
86
|
-
type: string;
|
102
|
+
type: string[];
|
103
|
+
items: {
|
104
|
+
type: string;
|
105
|
+
};
|
87
106
|
};
|
88
107
|
fetcher: {
|
89
108
|
type: string;
|
@@ -91,7 +110,7 @@ export declare const PLUGIN_SCHEMAS: {
|
|
91
110
|
proxy: {
|
92
111
|
type: string;
|
93
112
|
};
|
94
|
-
|
113
|
+
requestCreator: {
|
95
114
|
type: string;
|
96
115
|
};
|
97
116
|
};
|
@@ -175,4 +194,5 @@ export declare const PLUGIN_SCHEMAS: {
|
|
175
194
|
type: string[];
|
176
195
|
};
|
177
196
|
}[];
|
197
|
+
'@modern-js/plugin-nocode': never[];
|
178
198
|
};
|
@@ -1 +1 @@
|
|
1
|
-
export declare const getEntryOptions: <T>(name: string, baseOptions?: T | undefined, optionsByEntries?: Record<string, T> | undefined) => T | undefined;
|
1
|
+
export declare const getEntryOptions: <T>(name: string, baseOptions?: T | undefined, optionsByEntries?: Record<string, T> | undefined, packageName?: string | undefined) => T | undefined;
|
package/dist/types/is/type.d.ts
CHANGED
@@ -4,4 +4,5 @@ export declare function isArray(obj: any): obj is any[];
|
|
4
4
|
export declare function isFunction(func: any): func is Function;
|
5
5
|
export declare function isObject(obj: any): obj is object;
|
6
6
|
export declare function isPlainObject(obj: any): obj is Record<string, any>;
|
7
|
-
export declare function isPromise(obj: any): obj is Promise<any>;
|
7
|
+
export declare function isPromise(obj: any): obj is Promise<any>;
|
8
|
+
export declare function isRegExp(obj: any): obj is RegExp;
|
package/package.json
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
"modern",
|
12
12
|
"modern.js"
|
13
13
|
],
|
14
|
-
"version": "1.1.
|
14
|
+
"version": "1.1.4",
|
15
15
|
"jsnext:source": "./src/index.ts",
|
16
16
|
"types": "./dist/types/index.d.ts",
|
17
17
|
"main": "./dist/js/node/index.js",
|
@@ -65,8 +65,8 @@
|
|
65
65
|
"@types/recursive-readdir": "^2.2.0",
|
66
66
|
"typescript": "^4",
|
67
67
|
"webpack": "^5.54.0",
|
68
|
-
"@modern-js/plugin-testing": "^1.1.
|
69
|
-
"@modern-js/module-tools": "^1.1.
|
68
|
+
"@modern-js/plugin-testing": "^1.1.1",
|
69
|
+
"@modern-js/module-tools": "^1.1.1"
|
70
70
|
},
|
71
71
|
"peerDependencies": {
|
72
72
|
"typescript": "^4.4.3"
|
@@ -80,5 +80,6 @@
|
|
80
80
|
"new": "modern new",
|
81
81
|
"build": "modern build",
|
82
82
|
"test": "modern test --passWithNoTests"
|
83
|
-
}
|
83
|
+
},
|
84
|
+
"readme": "\n<p align=\"center\">\n <a href=\"https://modernjs.dev\" target=\"blank\"><img src=\"https://lf3-static.bytednsdoc.com/obj/eden-cn/ylaelkeh7nuhfnuhf/modernjs-cover.png\" width=\"300\" alt=\"Modern.js Logo\" /></a>\n</p>\n<p align=\"center\">\n现代 Web 工程体系\n <br/>\n <a href=\"https://modernjs.dev\" target=\"blank\">\n modernjs.dev\n </a>\n</p>\n<p align=\"center\">\n The meta-framework suite designed from scratch for frontend-focused modern web development\n</p>\n\n# Introduction\n\n> The doc site ([modernjs.dev](https://modernjs.dev)) and articles are only available in Chinese for now, we are planning to add English versions soon.\n\n- [Modern.js: Hello, World!](https://zhuanlan.zhihu.com/p/426707646)\n\n## Getting Started\n\n- [Quick Start](https://modernjs.dev/docs/start)\n- [Guides](https://modernjs.dev/docs/guides)\n- [API References](https://modernjs.dev/docs/apis)\n\n## Contributing\n\n- [Contributing Guide](https://github.com/modern-js-dev/modern.js/blob/main/CONTRIBUTING.md)\n"
|
84
85
|
}
|
package/src/alias.ts
CHANGED
@@ -80,11 +80,11 @@ export const getAlias = (
|
|
80
80
|
return aliasConfig;
|
81
81
|
};
|
82
82
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
83
|
+
// filter invalid ts paths that are not array
|
84
|
+
export const getUserAlias = (alias: Record<string, string | string[]> = {}) =>
|
85
|
+
Object.keys(alias).reduce((o, k) => {
|
86
|
+
if (Array.isArray(alias[k])) {
|
87
|
+
o[k] = alias[k];
|
88
|
+
}
|
88
89
|
return o;
|
89
|
-
}, {});
|
90
|
-
};
|
90
|
+
}, {} as Record<string, string | string[]>);
|
package/src/compatRequire.ts
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
import { findExists } from './findExists';
|
2
|
+
|
1
3
|
/**
|
2
4
|
* Require function compatible with esm and cjs module.
|
3
5
|
* @param filePath - File to required.
|
@@ -8,3 +10,16 @@ export const compatRequire = (filePath: string) => {
|
|
8
10
|
|
9
11
|
return mod?.__esModule ? mod.default : mod;
|
10
12
|
};
|
13
|
+
|
14
|
+
export const requireExistModule = (
|
15
|
+
filename: string,
|
16
|
+
extensions = ['.ts', '.js'],
|
17
|
+
) => {
|
18
|
+
const exist = findExists(extensions.map(ext => `${filename}${ext}`));
|
19
|
+
|
20
|
+
if (!exist) {
|
21
|
+
return null;
|
22
|
+
}
|
23
|
+
|
24
|
+
return compatRequire(exist);
|
25
|
+
};
|
package/src/constants.ts
CHANGED
@@ -18,6 +18,11 @@ export const HMR_SOCK_PATH = '/_modern_js_hmr_ws';
|
|
18
18
|
*/
|
19
19
|
export const ROUTE_SPEC_FILE = 'route.json';
|
20
20
|
|
21
|
+
/**
|
22
|
+
* main entry name
|
23
|
+
*/
|
24
|
+
export const MAIN_ENTRY_NAME = 'main';
|
25
|
+
|
21
26
|
/**
|
22
27
|
* open editor request path
|
23
28
|
*/
|
@@ -43,8 +48,20 @@ export const SERVER_RENDER_FUNCTION_NAME = 'serverRender';
|
|
43
48
|
*/
|
44
49
|
export const LOADABLE_STATS_FILE = 'loadable-stats.json';
|
45
50
|
|
51
|
+
/**
|
52
|
+
* real entry generate by modern.js
|
53
|
+
*/
|
46
54
|
export const HIDE_MODERN_JS_DIR = './node_modules/.modern-js';
|
47
55
|
|
56
|
+
/**
|
57
|
+
* internal specified folder
|
58
|
+
*/
|
59
|
+
export const API_DIR = 'api';
|
60
|
+
|
61
|
+
export const SERVER_DIR = 'server';
|
62
|
+
|
63
|
+
export const SHARED_DIR = 'shared';
|
64
|
+
|
48
65
|
/**
|
49
66
|
* Internal plugins that work as soon as they are installed.
|
50
67
|
*/
|
@@ -86,6 +103,10 @@ export const INTERNAL_PLUGINS: {
|
|
86
103
|
},
|
87
104
|
'@modern-js/plugin-unbundle': { cli: '@modern-js/plugin-unbundle' },
|
88
105
|
'@modern-js/plugin-server-build': { cli: '@modern-js/plugin-server-build' },
|
106
|
+
'@modern-js/plugin-server': {
|
107
|
+
cli: '@modern-js/plugin-server/cli',
|
108
|
+
server: '@modern-js/plugin-server/server',
|
109
|
+
},
|
89
110
|
'@modern-js/plugin-micro-frontend': {
|
90
111
|
cli: '@modern-js/plugin-micro-frontend/cli',
|
91
112
|
},
|
@@ -99,6 +120,10 @@ export const INTERNAL_PLUGINS: {
|
|
99
120
|
cli: '@modern-js/plugin-static-hosting/cli',
|
100
121
|
},
|
101
122
|
'@modern-js/plugin-polyfill': { server: '@modern-js/plugin-polyfill' },
|
123
|
+
'@modern-js/plugin-multiprocess': {
|
124
|
+
cli: '@modern-js/plugin-multiprocess/cli',
|
125
|
+
},
|
126
|
+
'@modern-js/plugin-nocode': { cli: '@modern-js/plugin-nocode/cli' },
|
102
127
|
};
|
103
128
|
|
104
129
|
/**
|
@@ -128,10 +153,13 @@ export const PLUGIN_SCHEMAS = {
|
|
128
153
|
schema: {
|
129
154
|
type: 'object',
|
130
155
|
properties: {
|
131
|
-
prefix: {
|
156
|
+
prefix: {
|
157
|
+
type: ['string', 'array'],
|
158
|
+
items: { type: 'string' },
|
159
|
+
},
|
132
160
|
fetcher: { type: 'string' },
|
133
161
|
proxy: { type: 'object' },
|
134
|
-
|
162
|
+
requestCreator: { type: 'string' },
|
135
163
|
},
|
136
164
|
},
|
137
165
|
},
|
@@ -230,4 +258,5 @@ export const PLUGIN_SCHEMAS = {
|
|
230
258
|
schema: { type: ['object'] },
|
231
259
|
},
|
232
260
|
],
|
261
|
+
'@modern-js/plugin-nocode': [],
|
233
262
|
};
|
package/src/getEntryOptions.ts
CHANGED
@@ -1,18 +1,37 @@
|
|
1
1
|
import { isPlainObject } from './is';
|
2
|
+
import { MAIN_ENTRY_NAME } from './constants';
|
2
3
|
|
3
4
|
export const getEntryOptions = <T>(
|
4
5
|
name: string,
|
5
6
|
baseOptions?: T,
|
6
7
|
optionsByEntries?: Record<string, T>,
|
8
|
+
packageName?: string,
|
7
9
|
) => {
|
8
10
|
if (optionsByEntries) {
|
11
|
+
let optionsByEntry = getOptionsByEntryName(name, optionsByEntries);
|
12
|
+
|
13
|
+
// compatible with main entry using packageName as the key
|
14
|
+
if (
|
15
|
+
optionsByEntry === undefined &&
|
16
|
+
name === MAIN_ENTRY_NAME &&
|
17
|
+
packageName
|
18
|
+
) {
|
19
|
+
optionsByEntry = getOptionsByEntryName(packageName, optionsByEntries);
|
20
|
+
}
|
21
|
+
|
9
22
|
// eslint-disable-next-line no-nested-ternary
|
10
|
-
return
|
11
|
-
? isPlainObject(
|
12
|
-
? { ...baseOptions, ...
|
13
|
-
:
|
23
|
+
return optionsByEntry !== undefined
|
24
|
+
? isPlainObject(optionsByEntry) && isPlainObject(baseOptions)
|
25
|
+
? { ...baseOptions, ...optionsByEntry }
|
26
|
+
: optionsByEntry
|
14
27
|
: baseOptions;
|
15
28
|
} else {
|
16
29
|
return baseOptions;
|
17
30
|
}
|
18
31
|
};
|
32
|
+
|
33
|
+
const getOptionsByEntryName = <T>(
|
34
|
+
name: string,
|
35
|
+
optionsByEntries: Record<string, T>,
|
36
|
+
) =>
|
37
|
+
optionsByEntries.hasOwnProperty(name) ? optionsByEntries[name] : undefined;
|
package/src/is/type.ts
CHANGED
package/src/runtimeExports.ts
CHANGED
@@ -21,11 +21,15 @@ const memo = <T extends (...args: any[]) => any>(fn: T) => {
|
|
21
21
|
};
|
22
22
|
|
23
23
|
export const createRuntimeExportsUtils = memo(
|
24
|
-
(pwd
|
24
|
+
(pwd = '', namespace: string, ts = false) => {
|
25
25
|
const entryExportFile = path.join(
|
26
26
|
pwd,
|
27
27
|
`.runtime-exports/${namespace ? `${namespace}.js` : 'index.js'}`,
|
28
28
|
);
|
29
|
+
const entryExportTsFile = path.join(
|
30
|
+
pwd,
|
31
|
+
`.runtime-exports/${namespace ? `${namespace}.d.ts` : 'index.d.ts'}`,
|
32
|
+
);
|
29
33
|
|
30
34
|
// const ensure = () => {
|
31
35
|
// if (!fs.existsSync(entryExportFile)) {
|
@@ -39,8 +43,15 @@ export const createRuntimeExportsUtils = memo(
|
|
39
43
|
statement = normalizeOutputPath(statement);
|
40
44
|
try {
|
41
45
|
fs.ensureFileSync(entryExportFile);
|
46
|
+
fs.ensureFileSync(entryExportTsFile);
|
47
|
+
|
42
48
|
if (!fs.readFileSync(entryExportFile, 'utf8').includes(statement)) {
|
43
49
|
fs.appendFileSync(entryExportFile, `${statement}\n`);
|
50
|
+
ts &&
|
51
|
+
fs.appendFileSync(
|
52
|
+
entryExportTsFile,
|
53
|
+
`${statement.replace('.js', '.d')}\n`,
|
54
|
+
);
|
44
55
|
}
|
45
56
|
} catch {
|
46
57
|
// FIXME:
|
@@ -15,6 +15,17 @@ describe('get entry options', () => {
|
|
15
15
|
).toEqual('a');
|
16
16
|
});
|
17
17
|
|
18
|
+
test(`should compatible with main entry using packageName as key`, () => {
|
19
|
+
expect(
|
20
|
+
getEntryOptions(
|
21
|
+
'main',
|
22
|
+
'default value',
|
23
|
+
{ 'package-name': 'a' },
|
24
|
+
'package-name',
|
25
|
+
),
|
26
|
+
).toEqual('a');
|
27
|
+
});
|
28
|
+
|
18
29
|
expect(
|
19
30
|
getEntryOptions(
|
20
31
|
'page-a',
|