@modern-js/utils 1.1.2 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/js/modern/alias.js +10 -10
  3. package/dist/js/modern/compatRequire.js +11 -0
  4. package/dist/js/modern/constants.js +28 -3
  5. package/dist/js/modern/getEntryOptions.js +2 -2
  6. package/dist/js/modern/logger.js +2 -2
  7. package/dist/js/modern/monorepo.js +2 -2
  8. package/dist/js/modern/runtimeExports.js +5 -2
  9. package/dist/js/modern/watch.js +1 -1
  10. package/dist/js/node/alias.js +10 -10
  11. package/dist/js/node/compatRequire.js +16 -2
  12. package/dist/js/node/constants.js +33 -5
  13. package/dist/js/node/getEntryOptions.js +2 -2
  14. package/dist/js/node/logger.js +2 -2
  15. package/dist/js/node/monorepo.js +2 -2
  16. package/dist/js/node/runtimeExports.js +8 -2
  17. package/dist/js/node/watch.js +1 -1
  18. package/dist/js/treeshaking/alias.js +9 -9
  19. package/dist/js/treeshaking/compatRequire.js +14 -0
  20. package/dist/js/treeshaking/constants.js +28 -3
  21. package/dist/js/treeshaking/formatWebpackMessages.js +1 -1
  22. package/dist/js/treeshaking/getEntryOptions.js +2 -2
  23. package/dist/js/treeshaking/is/type.js +1 -1
  24. package/dist/js/treeshaking/logger.js +3 -3
  25. package/dist/js/treeshaking/monorepo.js +2 -2
  26. package/dist/js/treeshaking/runtimeExports.js +5 -1
  27. package/dist/js/treeshaking/watch.js +1 -1
  28. package/dist/types/compatRequire.d.ts +2 -1
  29. package/dist/types/constants.d.ts +17 -2
  30. package/dist/types/runtimeExports.d.ts +1 -1
  31. package/dist/types/watch.d.ts +1 -1
  32. package/package.json +5 -4
  33. package/src/alias.ts +7 -7
  34. package/src/compatRequire.ts +15 -0
  35. package/src/constants.ts +26 -2
  36. package/src/runtimeExports.ts +43 -30
  37. package/src/watch.ts +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # @modern-js/utils
2
2
 
3
+ ## 1.1.5
4
+
5
+ ### Patch Changes
6
+
7
+ - ca7dcb32: change watch logic
8
+
9
+ ## 1.1.4
10
+
11
+ ### Patch Changes
12
+
13
+ - d927bc83: update plugins list
14
+ - d73ff455: support multi process product
15
+ - 9c1ab865: fix: filter invalid ts paths
16
+ - d73ff455: support multi process product
17
+ - d73ff455: support multi process product
18
+ - d73ff455: support multi process product
19
+ - d73ff455: support multi process product
20
+
21
+ ## 1.1.3
22
+
23
+ ### Patch Changes
24
+
25
+ - 085a6a58: refactor server plugin
26
+ - 085a6a58: refactor server plugin
27
+ - 085a6a58: refactor server conifg
28
+ - d280ea33: chore: runtime exports can choose to generate d.ts file
29
+ - 085a6a58: support server runtime
30
+ - 085a6a58: feat: refactor server plugin
31
+
3
32
  ## 1.1.2
4
33
 
5
34
  ### Patch Changes
@@ -1,6 +1,6 @@
1
- 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; }
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] != 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; }
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
- export const getUserAlias = (alias = {}) => {
68
- const keys = Object.keys(alias);
69
- const userKeys = keys.filter(key => !key.includes('@modern-js/runtime'));
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
- return o;
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
  };
@@ -47,7 +47,18 @@ export const SERVER_RENDER_FUNCTION_NAME = 'serverRender';
47
47
  */
48
48
 
49
49
  export const LOADABLE_STATS_FILE = 'loadable-stats.json';
50
+ /**
51
+ * real entry generate by modern.js
52
+ */
53
+
50
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';
51
62
  /**
52
63
  * Internal plugins that work as soon as they are installed.
53
64
  */
@@ -118,6 +129,10 @@ export const INTERNAL_PLUGINS = {
118
129
  '@modern-js/plugin-server-build': {
119
130
  cli: '@modern-js/plugin-server-build'
120
131
  },
132
+ '@modern-js/plugin-server': {
133
+ cli: '@modern-js/plugin-server/cli',
134
+ server: '@modern-js/plugin-server/server'
135
+ },
121
136
  '@modern-js/plugin-micro-frontend': {
122
137
  cli: '@modern-js/plugin-micro-frontend/cli'
123
138
  },
@@ -144,6 +159,12 @@ export const INTERNAL_PLUGINS = {
144
159
  },
145
160
  '@modern-js/plugin-polyfill': {
146
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'
147
168
  }
148
169
  };
149
170
  /**
@@ -175,7 +196,10 @@ export const PLUGIN_SCHEMAS = {
175
196
  type: 'object',
176
197
  properties: {
177
198
  prefix: {
178
- type: 'string'
199
+ type: ['string', 'array'],
200
+ items: {
201
+ type: 'string'
202
+ }
179
203
  },
180
204
  fetcher: {
181
205
  type: 'string'
@@ -183,7 +207,7 @@ export const PLUGIN_SCHEMAS = {
183
207
  proxy: {
184
208
  type: 'object'
185
209
  },
186
- requestCreater: {
210
+ requestCreator: {
187
211
  type: 'string'
188
212
  }
189
213
  }
@@ -286,5 +310,6 @@ export const PLUGIN_SCHEMAS = {
286
310
  schema: {
287
311
  type: ['object']
288
312
  }
289
- }]
313
+ }],
314
+ '@modern-js/plugin-nocode': []
290
315
  };
@@ -1,6 +1,6 @@
1
- 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; }
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] != 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; }
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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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'}`); // const ensure = () => {
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
  }
@@ -8,7 +8,7 @@ export const WatchChangeType = {
8
8
  };
9
9
  export const watch = (watchDir, runTask, ignored = []) => {
10
10
  let ready = false;
11
- const watcher = chokidar.watch(`${watchDir}/**/*.{js,jsx,ts,tsx}`, {
11
+ const watcher = chokidar.watch(watchDir, {
12
12
  ignored
13
13
  });
14
14
  watcher.on('ready', () => ready = true);
@@ -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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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
- const keys = Object.keys(alias);
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
- return o;
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.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 = 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
@@ -63,13 +63,27 @@ const SERVER_RENDER_FUNCTION_NAME = 'serverRender';
63
63
 
64
64
  exports.SERVER_RENDER_FUNCTION_NAME = SERVER_RENDER_FUNCTION_NAME;
65
65
  const LOADABLE_STATS_FILE = 'loadable-stats.json';
66
+ /**
67
+ * real entry generate by modern.js
68
+ */
69
+
66
70
  exports.LOADABLE_STATS_FILE = LOADABLE_STATS_FILE;
67
71
  const HIDE_MODERN_JS_DIR = './node_modules/.modern-js';
68
72
  /**
69
- * Internal plugins that work as soon as they are installed.
73
+ * internal specified folder
70
74
  */
71
75
 
72
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;
73
87
  const INTERNAL_PLUGINS = {
74
88
  '@modern-js/app-tools': {
75
89
  cli: '@modern-js/app-tools/cli'
@@ -136,6 +150,10 @@ const INTERNAL_PLUGINS = {
136
150
  '@modern-js/plugin-server-build': {
137
151
  cli: '@modern-js/plugin-server-build'
138
152
  },
153
+ '@modern-js/plugin-server': {
154
+ cli: '@modern-js/plugin-server/cli',
155
+ server: '@modern-js/plugin-server/server'
156
+ },
139
157
  '@modern-js/plugin-micro-frontend': {
140
158
  cli: '@modern-js/plugin-micro-frontend/cli'
141
159
  },
@@ -162,6 +180,12 @@ const INTERNAL_PLUGINS = {
162
180
  },
163
181
  '@modern-js/plugin-polyfill': {
164
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'
165
189
  }
166
190
  };
167
191
  /**
@@ -194,7 +218,10 @@ const PLUGIN_SCHEMAS = {
194
218
  type: 'object',
195
219
  properties: {
196
220
  prefix: {
197
- type: 'string'
221
+ type: ['string', 'array'],
222
+ items: {
223
+ type: 'string'
224
+ }
198
225
  },
199
226
  fetcher: {
200
227
  type: 'string'
@@ -202,7 +229,7 @@ const PLUGIN_SCHEMAS = {
202
229
  proxy: {
203
230
  type: 'object'
204
231
  },
205
- requestCreater: {
232
+ requestCreator: {
206
233
  type: 'string'
207
234
  }
208
235
  }
@@ -305,6 +332,7 @@ const PLUGIN_SCHEMAS = {
305
332
  schema: {
306
333
  type: ['object']
307
334
  }
308
- }]
335
+ }],
336
+ '@modern-js/plugin-nocode': []
309
337
  };
310
338
  exports.PLUGIN_SCHEMAS = PLUGIN_SCHEMAS;
@@ -9,9 +9,9 @@ var _is = require("./is");
9
9
 
10
10
  var _constants = require("./constants");
11
11
 
12
- 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; }
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] != 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; }
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
 
@@ -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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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
 
@@ -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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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'}`); // const ensure = () => {
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
  }
@@ -24,7 +24,7 @@ exports.WatchChangeType = WatchChangeType;
24
24
 
25
25
  const watch = (watchDir, runTask, ignored = []) => {
26
26
  let ready = false;
27
- const watcher = chokidar.watch(`${watchDir}/**/*.{js,jsx,ts,tsx}`, {
27
+ const watcher = chokidar.watch(watchDir, {
28
28
  ignored
29
29
  });
30
30
  watcher.on('ready', () => ready = true);
@@ -1,6 +1,6 @@
1
- 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; }
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] != 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; }
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
- var keys = Object.keys(alias);
65
- var userKeys = keys.filter(function (key) {
66
- return !key.includes('@modern-js/runtime');
67
- });
68
- return userKeys.reduce(function (o, k) {
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
  };
@@ -49,7 +49,18 @@ export var SERVER_RENDER_FUNCTION_NAME = 'serverRender';
49
49
  */
50
50
 
51
51
  export var LOADABLE_STATS_FILE = 'loadable-stats.json';
52
+ /**
53
+ * real entry generate by modern.js
54
+ */
55
+
52
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';
53
64
  /**
54
65
  * Internal plugins that work as soon as they are installed.
55
66
  */
@@ -120,6 +131,10 @@ export var INTERNAL_PLUGINS = {
120
131
  '@modern-js/plugin-server-build': {
121
132
  cli: '@modern-js/plugin-server-build'
122
133
  },
134
+ '@modern-js/plugin-server': {
135
+ cli: '@modern-js/plugin-server/cli',
136
+ server: '@modern-js/plugin-server/server'
137
+ },
123
138
  '@modern-js/plugin-micro-frontend': {
124
139
  cli: '@modern-js/plugin-micro-frontend/cli'
125
140
  },
@@ -146,6 +161,12 @@ export var INTERNAL_PLUGINS = {
146
161
  },
147
162
  '@modern-js/plugin-polyfill': {
148
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'
149
170
  }
150
171
  };
151
172
  /**
@@ -175,7 +196,10 @@ export var PLUGIN_SCHEMAS = {
175
196
  type: 'object',
176
197
  properties: {
177
198
  prefix: {
178
- type: 'string'
199
+ type: ['string', 'array'],
200
+ items: {
201
+ type: 'string'
202
+ }
179
203
  },
180
204
  fetcher: {
181
205
  type: 'string'
@@ -183,7 +207,7 @@ export var PLUGIN_SCHEMAS = {
183
207
  proxy: {
184
208
  type: 'object'
185
209
  },
186
- requestCreater: {
210
+ requestCreator: {
187
211
  type: 'string'
188
212
  }
189
213
  }
@@ -286,5 +310,6 @@ export var PLUGIN_SCHEMAS = {
286
310
  schema: {
287
311
  type: ['object']
288
312
  }
289
- }]
313
+ }],
314
+ '@modern-js/plugin-nocode': []
290
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"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
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,6 +1,6 @@
1
- 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; }
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] != 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; }
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,4 +1,4 @@
1
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
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';
@@ -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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
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] != 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; }
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
 
@@ -25,7 +25,9 @@ var memo = function memo(fn) {
25
25
  export var createRuntimeExportsUtils = memo(function () {
26
26
  var pwd = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
27
27
  var namespace = arguments.length > 1 ? arguments[1] : undefined;
28
- var entryExportFile = path.join(pwd, ".runtime-exports/".concat(namespace ? "".concat(namespace, ".js") : 'index.js')); // const ensure = () => {
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 = () => {
29
31
  // if (!fs.existsSync(entryExportFile)) {
30
32
  // fs.outputFileSync(entryExportFile, '');
31
33
  // }
@@ -38,9 +40,11 @@ export var createRuntimeExportsUtils = memo(function () {
38
40
 
39
41
  try {
40
42
  fs.ensureFileSync(entryExportFile);
43
+ fs.ensureFileSync(entryExportTsFile);
41
44
 
42
45
  if (!fs.readFileSync(entryExportFile, 'utf8').includes(statement)) {
43
46
  fs.appendFileSync(entryExportFile, "".concat(statement, "\n"));
47
+ ts && fs.appendFileSync(entryExportTsFile, "".concat(statement.replace('.js', '.d'), "\n"));
44
48
  }
45
49
  } catch (_unused) {// FIXME:
46
50
  }
@@ -15,7 +15,7 @@ export var WatchChangeType = {
15
15
  export var watch = function watch(watchDir, runTask) {
16
16
  var ignored = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
17
17
  var ready = false;
18
- var watcher = chokidar.watch("".concat(watchDir, "/**/*.{js,jsx,ts,tsx}"), {
18
+ var watcher = chokidar.watch(watchDir, {
19
19
  ignored: ignored
20
20
  });
21
21
  watcher.on('ready', function () {
@@ -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;
@@ -47,7 +47,18 @@ export declare const SERVER_RENDER_FUNCTION_NAME = "serverRender";
47
47
  */
48
48
 
49
49
  export declare const LOADABLE_STATS_FILE = "loadable-stats.json";
50
+ /**
51
+ * real entry generate by modern.js
52
+ */
53
+
50
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";
51
62
  /**
52
63
  * Internal plugins that work as soon as they are installed.
53
64
  */
@@ -88,7 +99,10 @@ export declare const PLUGIN_SCHEMAS: {
88
99
  type: string;
89
100
  properties: {
90
101
  prefix: {
91
- type: string;
102
+ type: string[];
103
+ items: {
104
+ type: string;
105
+ };
92
106
  };
93
107
  fetcher: {
94
108
  type: string;
@@ -96,7 +110,7 @@ export declare const PLUGIN_SCHEMAS: {
96
110
  proxy: {
97
111
  type: string;
98
112
  };
99
- requestCreater: {
113
+ requestCreator: {
100
114
  type: string;
101
115
  };
102
116
  };
@@ -180,4 +194,5 @@ export declare const PLUGIN_SCHEMAS: {
180
194
  type: string[];
181
195
  };
182
196
  }[];
197
+ '@modern-js/plugin-nocode': never[];
183
198
  };
@@ -1,4 +1,4 @@
1
- export declare const createRuntimeExportsUtils: (pwd: any, namespace: string) => {
1
+ export declare const createRuntimeExportsUtils: (pwd: any, namespace: string, ts?: any) => {
2
2
  addExport: (statement: string) => void;
3
3
  getPath: () => string;
4
4
  };
@@ -4,5 +4,5 @@ declare type RunTaskType = (option: {
4
4
  changedFilePath: string;
5
5
  changeType: WatchChangeTypeValueT;
6
6
  }) => void | Promise<void>;
7
- export declare const watch: (watchDir: string, runTask: RunTaskType, ignored?: string[]) => import("chokidar").FSWatcher;
7
+ export declare const watch: (watchDir: string | string[], runTask: RunTaskType, ignored?: string[]) => import("chokidar").FSWatcher;
8
8
  export {};
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "modern",
12
12
  "modern.js"
13
13
  ],
14
- "version": "1.1.2",
14
+ "version": "1.1.5",
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.0",
69
- "@modern-js/module-tools": "^1.1.0"
68
+ "@modern-js/plugin-testing": "^1.1.1",
69
+ "@modern-js/module-tools": "^1.1.2"
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
- export const getUserAlias = (alias: Record<string, string | string[]> = {}) => {
84
- const keys = Object.keys(alias);
85
- const userKeys = keys.filter(key => !key.includes('@modern-js/runtime'));
86
- return userKeys.reduce<Record<string, string | string[]>>((o, k) => {
87
- o[k] = alias[k];
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[]>);
@@ -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
@@ -48,8 +48,20 @@ export const SERVER_RENDER_FUNCTION_NAME = 'serverRender';
48
48
  */
49
49
  export const LOADABLE_STATS_FILE = 'loadable-stats.json';
50
50
 
51
+ /**
52
+ * real entry generate by modern.js
53
+ */
51
54
  export const HIDE_MODERN_JS_DIR = './node_modules/.modern-js';
52
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
+
53
65
  /**
54
66
  * Internal plugins that work as soon as they are installed.
55
67
  */
@@ -91,6 +103,10 @@ export const INTERNAL_PLUGINS: {
91
103
  },
92
104
  '@modern-js/plugin-unbundle': { cli: '@modern-js/plugin-unbundle' },
93
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
+ },
94
110
  '@modern-js/plugin-micro-frontend': {
95
111
  cli: '@modern-js/plugin-micro-frontend/cli',
96
112
  },
@@ -104,6 +120,10 @@ export const INTERNAL_PLUGINS: {
104
120
  cli: '@modern-js/plugin-static-hosting/cli',
105
121
  },
106
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' },
107
127
  };
108
128
 
109
129
  /**
@@ -133,10 +153,13 @@ export const PLUGIN_SCHEMAS = {
133
153
  schema: {
134
154
  type: 'object',
135
155
  properties: {
136
- prefix: { type: 'string' },
156
+ prefix: {
157
+ type: ['string', 'array'],
158
+ items: { type: 'string' },
159
+ },
137
160
  fetcher: { type: 'string' },
138
161
  proxy: { type: 'object' },
139
- requestCreater: { type: 'string' },
162
+ requestCreator: { type: 'string' },
140
163
  },
141
164
  },
142
165
  },
@@ -235,4 +258,5 @@ export const PLUGIN_SCHEMAS = {
235
258
  schema: { type: ['object'] },
236
259
  },
237
260
  ],
261
+ '@modern-js/plugin-nocode': [],
238
262
  };
@@ -20,36 +20,49 @@ const memo = <T extends (...args: any[]) => any>(fn: T) => {
20
20
  };
21
21
  };
22
22
 
23
- export const createRuntimeExportsUtils = memo((pwd = '', namespace: string) => {
24
- const entryExportFile = path.join(
25
- pwd,
26
- `.runtime-exports/${namespace ? `${namespace}.js` : 'index.js'}`,
27
- );
28
-
29
- // const ensure = () => {
30
- // if (!fs.existsSync(entryExportFile)) {
31
- // fs.outputFileSync(entryExportFile, '');
32
- // }
33
- // fs.ensureFileSync(entryExportFile);
34
- // };
35
-
36
- const addExport = (statement: string) => {
37
- // eslint-disable-next-line no-param-reassign
38
- statement = normalizeOutputPath(statement);
39
- try {
40
- fs.ensureFileSync(entryExportFile);
41
- if (!fs.readFileSync(entryExportFile, 'utf8').includes(statement)) {
42
- fs.appendFileSync(entryExportFile, `${statement}\n`);
23
+ export const createRuntimeExportsUtils = memo(
24
+ (pwd = '', namespace: string, ts = false) => {
25
+ const entryExportFile = path.join(
26
+ pwd,
27
+ `.runtime-exports/${namespace ? `${namespace}.js` : 'index.js'}`,
28
+ );
29
+ const entryExportTsFile = path.join(
30
+ pwd,
31
+ `.runtime-exports/${namespace ? `${namespace}.d.ts` : 'index.d.ts'}`,
32
+ );
33
+
34
+ // const ensure = () => {
35
+ // if (!fs.existsSync(entryExportFile)) {
36
+ // fs.outputFileSync(entryExportFile, '');
37
+ // }
38
+ // fs.ensureFileSync(entryExportFile);
39
+ // };
40
+
41
+ const addExport = (statement: string) => {
42
+ // eslint-disable-next-line no-param-reassign
43
+ statement = normalizeOutputPath(statement);
44
+ try {
45
+ fs.ensureFileSync(entryExportFile);
46
+ fs.ensureFileSync(entryExportTsFile);
47
+
48
+ if (!fs.readFileSync(entryExportFile, 'utf8').includes(statement)) {
49
+ fs.appendFileSync(entryExportFile, `${statement}\n`);
50
+ ts &&
51
+ fs.appendFileSync(
52
+ entryExportTsFile,
53
+ `${statement.replace('.js', '.d')}\n`,
54
+ );
55
+ }
56
+ } catch {
57
+ // FIXME:
43
58
  }
44
- } catch {
45
- // FIXME:
46
- }
47
- };
59
+ };
48
60
 
49
- const getPath = () => entryExportFile;
61
+ const getPath = () => entryExportFile;
50
62
 
51
- return {
52
- addExport,
53
- getPath,
54
- };
55
- });
63
+ return {
64
+ addExport,
65
+ getPath,
66
+ };
67
+ },
68
+ );
package/src/watch.ts CHANGED
@@ -20,12 +20,12 @@ type RunTaskType = (option: {
20
20
  }) => void | Promise<void>;
21
21
 
22
22
  export const watch = (
23
- watchDir: string,
23
+ watchDir: string | string[],
24
24
  runTask: RunTaskType,
25
25
  ignored: string[] = [],
26
26
  ) => {
27
27
  let ready = false;
28
- const watcher = chokidar.watch(`${watchDir}/**/*.{js,jsx,ts,tsx}`, {
28
+ const watcher = chokidar.watch(watchDir, {
29
29
  ignored,
30
30
  });
31
31