@modern-js/app-tools 2.4.0 → 3.0.0-beta.0

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.
Files changed (42) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/dist/js/modern/analyze/getServerRoutes.js +5 -2
  3. package/dist/js/modern/analyze/index.js +6 -2
  4. package/dist/js/modern/builder/builder-webpack/webpackPlugins/RouterPlugin.js +3 -0
  5. package/dist/js/modern/builder/generator/getBuilderTargets.js +10 -1
  6. package/dist/js/modern/builder/shared/builderPlugins/adapterModern.js +23 -7
  7. package/dist/js/node/analyze/getServerRoutes.js +3 -1
  8. package/dist/js/node/analyze/index.js +6 -2
  9. package/dist/js/node/builder/builder-webpack/webpackPlugins/RouterPlugin.js +3 -0
  10. package/dist/js/node/builder/generator/getBuilderTargets.js +4 -0
  11. package/dist/js/node/builder/shared/builderPlugins/adapterModern.js +23 -7
  12. package/dist/js/treeshaking/analyze/generateCode.js +14 -14
  13. package/dist/js/treeshaking/analyze/getBundleEntry.js +2 -2
  14. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutes.js +1 -1
  15. package/dist/js/treeshaking/analyze/getClientRoutes/getRoutesLegacy.js +1 -1
  16. package/dist/js/treeshaking/analyze/getFileSystemEntry.js +1 -1
  17. package/dist/js/treeshaking/analyze/getServerRoutes.js +8 -6
  18. package/dist/js/treeshaking/analyze/index.js +8 -8
  19. package/dist/js/treeshaking/analyze/nestedRoutes.js +5 -5
  20. package/dist/js/treeshaking/analyze/templates.js +6 -6
  21. package/dist/js/treeshaking/analyze/utils.js +3 -3
  22. package/dist/js/treeshaking/builder/builder-webpack/builderPlugins/compatModern.js +4 -4
  23. package/dist/js/treeshaking/builder/builder-webpack/index.js +2 -2
  24. package/dist/js/treeshaking/builder/builder-webpack/webpackPlugins/RouterPlugin.js +5 -2
  25. package/dist/js/treeshaking/builder/generator/createBuilderOptions.js +2 -2
  26. package/dist/js/treeshaking/builder/generator/getBuilderTargets.js +5 -1
  27. package/dist/js/treeshaking/builder/generator/index.js +2 -2
  28. package/dist/js/treeshaking/builder/shared/builderPlugins/adapterModern.js +62 -13
  29. package/dist/js/treeshaking/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +2 -2
  30. package/dist/js/treeshaking/commands/dev.js +2 -2
  31. package/dist/js/treeshaking/commands/serve.js +2 -2
  32. package/dist/js/treeshaking/config/initialize/inits.js +2 -2
  33. package/dist/js/treeshaking/config/legacy/createHtmlConfig.js +1 -1
  34. package/dist/js/treeshaking/config/legacy/createOutputConfig.js +1 -1
  35. package/dist/js/treeshaking/config/legacy/createSourceConfig.js +1 -1
  36. package/dist/js/treeshaking/config/legacy/createToolsConfig.js +1 -1
  37. package/dist/js/treeshaking/initialize/index.js +2 -2
  38. package/dist/js/treeshaking/utils/config.js +2 -2
  39. package/dist/js/treeshaking/utils/getServerInternalPlugins.js +2 -2
  40. package/dist/types/types/hooks.d.ts +5 -4
  41. package/dist/types/types/index.d.ts +3 -1
  42. package/package.json +20 -20
@@ -197,7 +197,7 @@ var createRoute = function(routeInfo, rootDir, filename, entryName) {
197
197
  };
198
198
  var walk = function() {
199
199
  var _ref = _asyncToGenerator(function(dirname, rootDir, alias, entryName) {
200
- var ref, isDirectory, relativeDir, pathSegments, lastSegment, isRoot, isPathlessLayout, isWithoutLayoutPath, routePath, route, pageLoaderFile, pageRoute, splatLoaderFile, splatRoute, items, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, item, itemPath, extname, itemWithoutExt, isDirectory2, childRoute, ref1, ref2, ref3, err, finalRoute, childRoute1, path2;
200
+ var _route_children, isDirectory, relativeDir, pathSegments, lastSegment, isRoot, isPathlessLayout, isWithoutLayoutPath, routePath, route, pageLoaderFile, pageRoute, splatLoaderFile, splatRoute, items, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, item, itemPath, extname, itemWithoutExt, isDirectory2, childRoute, _route_children1, _route_children2, _route_children3, err, finalRoute, childRoute1, path2;
201
201
  return __generator(this, function(_state) {
202
202
  switch(_state.label){
203
203
  case 0:
@@ -288,7 +288,7 @@ var walk = function() {
288
288
  childRoute = _state.sent();
289
289
  if (childRoute) {
290
290
  ;
291
- (ref1 = route.children) === null || ref1 === void 0 ? void 0 : ref1.push(childRoute);
291
+ (_route_children1 = route.children) === null || _route_children1 === void 0 ? void 0 : _route_children1.push(childRoute);
292
292
  }
293
293
  _state.label = 8;
294
294
  case 8:
@@ -317,7 +317,7 @@ var walk = function() {
317
317
  if (pageLoaderFile) {
318
318
  pageRoute.loader = pageLoaderFile;
319
319
  }
320
- (ref2 = route.children) === null || ref2 === void 0 ? void 0 : ref2.push(pageRoute);
320
+ (_route_children2 = route.children) === null || _route_children2 === void 0 ? void 0 : _route_children2.push(pageRoute);
321
321
  }
322
322
  if (itemWithoutExt === NESTED_ROUTE.SPLATE_LOADER_FILE) {
323
323
  splatLoaderFile = itemPath;
@@ -331,7 +331,7 @@ var walk = function() {
331
331
  if (splatLoaderFile) {
332
332
  splatRoute.loader = splatLoaderFile;
333
333
  }
334
- (ref3 = route.children) === null || ref3 === void 0 ? void 0 : ref3.push(splatRoute);
334
+ (_route_children3 = route.children) === null || _route_children3 === void 0 ? void 0 : _route_children3.push(splatRoute);
335
335
  }
336
336
  if (itemWithoutExt === NESTED_ROUTE.LOADING_FILE) {
337
337
  route.loading = replaceWithAlias(alias.basename, itemPath, alias.name);
@@ -377,7 +377,7 @@ var walk = function() {
377
377
  if (isPathlessLayout) {
378
378
  delete finalRoute.path;
379
379
  }
380
- route.children = (ref = route.children) === null || ref === void 0 ? void 0 : ref.filter(function(childRoute) {
380
+ route.children = (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.filter(function(childRoute) {
381
381
  return childRoute;
382
382
  });
383
383
  if (route.children && route.children.length === 0 && !route.index) {
@@ -243,8 +243,8 @@ var routesForServer = function(param) {
243
243
  var traverseRouteTree = function(route) {
244
244
  var children;
245
245
  if ("children" in route && route.children) {
246
- var ref;
247
- children = route === null || route === void 0 ? void 0 : (ref = route.children) === null || ref === void 0 ? void 0 : ref.map(traverseRouteTree);
246
+ var _route_children;
247
+ children = route === null || route === void 0 ? void 0 : (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.map(traverseRouteTree);
248
248
  }
249
249
  var loader;
250
250
  if (route.type === "nested") {
@@ -296,7 +296,7 @@ var routesForServer = function(param) {
296
296
  };
297
297
  var fileSystemRoutes = function() {
298
298
  var _ref = _asyncToGenerator(function(param) {
299
- var routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, loadings, errors, loaders, loadersMap, loadersMapFile, importLazyCode, rootLayoutCode, getDataLoaderPath, traverseRouteTree, routeComponentsCode, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, route, newRoute, component, finalRoute, importLoadingCode, importErrorComponentsCode, importLoadersCode, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, _value, key, loaderInfo;
299
+ var routes, ssrMode, nestedRoutesEntry, entryName, internalDirectory, loadings, errors, loaders, loadersMap, loadersMapFile, importLazyCode, rootLayoutCode, getDataLoaderPath, traverseRouteTree, routeComponentsCode, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, route, newRoute, component, finalRoute, importLoadingCode, importErrorComponentsCode, importLoadersCode, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, _step_value, key, loaderInfo;
300
300
  return __generator(this, function(_state) {
301
301
  switch(_state.label){
302
302
  case 0:
@@ -321,8 +321,8 @@ var fileSystemRoutes = function() {
321
321
  traverseRouteTree = function(route) {
322
322
  var children;
323
323
  if ("children" in route && route.children) {
324
- var ref;
325
- children = route === null || route === void 0 ? void 0 : (ref = route.children) === null || ref === void 0 ? void 0 : ref.map(traverseRouteTree);
324
+ var _route_children;
325
+ children = route === null || route === void 0 ? void 0 : (_route_children = route.children) === null || _route_children === void 0 ? void 0 : _route_children.map(traverseRouteTree);
326
326
  }
327
327
  var loading;
328
328
  var error;
@@ -417,7 +417,7 @@ var fileSystemRoutes = function() {
417
417
  _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
418
418
  try {
419
419
  for(_iterator1 = Object.entries(loadersMap)[Symbol.iterator](); !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
420
- _value = _slicedToArray(_step1.value, 2), key = _value[0], loaderInfo = _value[1];
420
+ _step_value = _slicedToArray(_step1.value, 2), key = _step_value[0], loaderInfo = _step_value[1];
421
421
  if (loaderInfo.inline) {
422
422
  importLoadersCode += "import { loader as ".concat(key, ' } from "').concat(getDataLoaderPath(key)).concat(slash(loaderInfo.filePath), '";\n');
423
423
  } else {
@@ -333,7 +333,7 @@ var parseModule = function() {
333
333
  }();
334
334
  var hasLoader = function() {
335
335
  var _ref = _asyncToGenerator(function(filename) {
336
- var source, ref, moduleExports;
336
+ var source, _ref, moduleExports;
337
337
  return __generator(this, function(_state) {
338
338
  switch(_state.label){
339
339
  case 0:
@@ -351,10 +351,10 @@ var hasLoader = function() {
351
351
  })
352
352
  ];
353
353
  case 2:
354
- ref = _slicedToArray.apply(void 0, [
354
+ _ref = _slicedToArray.apply(void 0, [
355
355
  _state.sent(),
356
356
  2
357
- ]), moduleExports = ref[1];
357
+ ]), moduleExports = _ref[1];
358
358
  return [
359
359
  2,
360
360
  moduleExports.some(function(e) {
@@ -33,15 +33,15 @@ var PluginCompatModern = function(options) {
33
33
  var modernConfig = options.normalizedConfig, appContext = options.appContext;
34
34
  api.modifyWebpackChain(function(chain, param) {
35
35
  var CHAIN_ID = param.CHAIN_ID;
36
- var ref;
36
+ var _modernConfig_runtime;
37
37
  chain.resolve.modules.add("node_modules").add(join(api.context.rootPath, "node_modules"));
38
38
  if (chain.plugins.has(CHAIN_ID.PLUGIN.COPY)) {
39
39
  var defaultCopyPattern = createCopyPattern(appContext, modernConfig, "public", chain);
40
40
  chain.plugin(CHAIN_ID.PLUGIN.COPY).tap(function(args) {
41
- var ref;
41
+ var _args_;
42
42
  return [
43
43
  {
44
- patterns: _toConsumableArray(((ref = args[0]) === null || ref === void 0 ? void 0 : ref.patterns) || []).concat([
44
+ patterns: _toConsumableArray(((_args_ = args[0]) === null || _args_ === void 0 ? void 0 : _args_.patterns) || []).concat([
45
45
  defaultCopyPattern
46
46
  ])
47
47
  }
@@ -52,7 +52,7 @@ var PluginCompatModern = function(options) {
52
52
  var existNestedRoutes = entrypoints.some(function(entrypoint) {
53
53
  return entrypoint.nestedRoutesEntry;
54
54
  });
55
- var routerConfig = modernConfig === null || modernConfig === void 0 ? void 0 : (ref = modernConfig.runtime) === null || ref === void 0 ? void 0 : ref.router;
55
+ var routerConfig = modernConfig === null || modernConfig === void 0 ? void 0 : (_modernConfig_runtime = modernConfig.runtime) === null || _modernConfig_runtime === void 0 ? void 0 : _modernConfig_runtime.router;
56
56
  var routerManifest = Boolean(routerConfig === null || routerConfig === void 0 ? void 0 : routerConfig.manifest);
57
57
  if (existNestedRoutes || routerManifest) {
58
58
  chain.plugin("route-plugin").use(RouterPlugin);
@@ -248,7 +248,7 @@ function applyBuilderPlugins(builder, options) {
248
248
  }
249
249
  function _applyBuilderPlugins() {
250
250
  _applyBuilderPlugins = _asyncToGenerator(function(builder, options) {
251
- var normalizedConfig, PluginNodePolyfill, _tools, esbuildOptions, PluginEsbuild;
251
+ var normalizedConfig, PluginNodePolyfill, _normalizedConfig_tools, esbuildOptions, PluginEsbuild;
252
252
  return __generator(this, function(_state) {
253
253
  switch(_state.label){
254
254
  case 0:
@@ -272,7 +272,7 @@ function _applyBuilderPlugins() {
272
272
  3,
273
273
  4
274
274
  ];
275
- _tools = normalizedConfig.tools, esbuildOptions = _tools.esbuild;
275
+ _normalizedConfig_tools = normalizedConfig.tools, esbuildOptions = _normalizedConfig_tools.esbuild;
276
276
  return [
277
277
  4,
278
278
  import("@modern-js/builder-plugin-esbuild")
@@ -215,6 +215,9 @@ var RouterPlugin = /*#__PURE__*/ function() {
215
215
  if (target === "node" || Array.isArray(target) && target.includes("node")) {
216
216
  return;
217
217
  }
218
+ if (target === "webworker" || Array.isArray(target) && target.includes("webworker")) {
219
+ return;
220
+ }
218
221
  var webpack = compiler.webpack;
219
222
  var Compilation = webpack.Compilation, sources = webpack.sources;
220
223
  var RawSource = sources.RawSource;
@@ -232,7 +235,7 @@ var RouterPlugin = /*#__PURE__*/ function() {
232
235
  name: PLUGIN_NAME,
233
236
  stage: PROCESS_ASSETS_STAGE_REPORT
234
237
  }, /*#__PURE__*/ _asyncToGenerator(function() {
235
- var stats, publicPath, routeAssets, namedChunkGroups, assetsByChunkName, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, name, chunkGroup, manifest, injectedContent, entrypointsArray, entryChunkIds, entryChunks, entryChunkFiles, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, file, asset, newContent, filename;
238
+ var stats, publicPath, routeAssets, namedChunkGroups, assetsByChunkName, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step_value, name, chunkGroup, manifest, injectedContent, entrypointsArray, entryChunkIds, entryChunks, entryChunkFiles, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, file, asset, newContent, filename;
236
239
  return __generator(this, function(_state) {
237
240
  switch(_state.label){
238
241
  case 0:
@@ -252,7 +255,7 @@ var RouterPlugin = /*#__PURE__*/ function() {
252
255
  _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
253
256
  try {
254
257
  for(_iterator = Object.entries(namedChunkGroups)[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
255
- _value = _slicedToArray(_step.value, 2), name = _value[0], chunkGroup = _value[1];
258
+ _step_value = _slicedToArray(_step.value, 2), name = _step_value[0], chunkGroup = _step_value[1];
256
259
  if (assetsByChunkName[name]) {
257
260
  routeAssets[name] = {
258
261
  chunkIds: chunkGroup.chunks,
@@ -1,10 +1,10 @@
1
1
  function createBuilderOptions(target, appContext) {
2
2
  var entries = {};
3
- var _entrypoints = appContext.entrypoints, entrypoints = _entrypoints === void 0 ? [] : _entrypoints, checkedEntries = appContext.checkedEntries;
3
+ var _appContext_entrypoints = appContext.entrypoints, entrypoints = _appContext_entrypoints === void 0 ? [] : _appContext_entrypoints, checkedEntries = appContext.checkedEntries;
4
4
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
5
5
  try {
6
6
  for(var _iterator = entrypoints[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
7
- var _value = _step.value, entryName = _value.entryName, entry = _value.entry;
7
+ var _step_value = _step.value, entryName = _step_value.entryName, entry = _step_value.entry;
8
8
  if (checkedEntries && !checkedEntries.includes(entryName)) {
9
9
  continue;
10
10
  }
@@ -1,4 +1,4 @@
1
- import { isProd, isSSR, isUseSSRBundle } from "@modern-js/utils";
1
+ import { isProd, isServiceWorker, isSSR, isUseSSRBundle } from "@modern-js/utils";
2
2
  function getBuilderTargets(normalizedConfig) {
3
3
  var targets = [
4
4
  "web"
@@ -7,6 +7,10 @@ function getBuilderTargets(normalizedConfig) {
7
7
  if (useNodeTarget) {
8
8
  targets.push("node");
9
9
  }
10
+ var useWorkerTarget = isProd() ? isServiceWorker(normalizedConfig) : false;
11
+ if (useWorkerTarget) {
12
+ targets.push("service-worker");
13
+ }
10
14
  return targets;
11
15
  }
12
16
  export { getBuilderTargets };
@@ -131,12 +131,12 @@ function generateBuilder(options, generateProvider, utils) {
131
131
  }
132
132
  function _generateBuilder() {
133
133
  _generateBuilder = _asyncToGenerator(function(options, generateProvider, utils) {
134
- var normalizedConfig, appContext, ref, modifyBuilderConfig, modifyBuilderInstance, builderConfig, provider, target, builderOptions, builder;
134
+ var normalizedConfig, appContext, _ref, modifyBuilderConfig, modifyBuilderInstance, builderConfig, provider, target, builderOptions, builder;
135
135
  return __generator(this, function(_state) {
136
136
  switch(_state.label){
137
137
  case 0:
138
138
  normalizedConfig = options.normalizedConfig, appContext = options.appContext;
139
- ref = utils || {}, modifyBuilderConfig = ref.modifyBuilderConfig, modifyBuilderInstance = ref.modifyBuilderInstance;
139
+ _ref = utils || {}, modifyBuilderConfig = _ref.modifyBuilderConfig, modifyBuilderInstance = _ref.modifyBuilderInstance;
140
140
  builderConfig = createBuilderProviderConfig(normalizedConfig, appContext, modifyBuilderConfig);
141
141
  provider = generateProvider({
142
142
  builderConfig: builderConfig
@@ -95,8 +95,8 @@ var builderPluginAdapterModern = function(options) {
95
95
  name: "builder-plugin-adapter-modern",
96
96
  setup: function setup(api) {
97
97
  var isHtmlEnabled = function isHtmlEnabled(config, target) {
98
- var ref;
99
- return ((ref = config.tools) === null || ref === void 0 ? void 0 : ref.htmlPlugin) !== false && target !== "node" && target !== "web-worker";
98
+ var _config_tools;
99
+ return ((_config_tools = config.tools) === null || _config_tools === void 0 ? void 0 : _config_tools.htmlPlugin) !== false && target !== "node" && target !== "service-worker" && target !== "web-worker";
100
100
  };
101
101
  var normalizedConfig = options.normalizedConfig, appContext = options.appContext;
102
102
  api.modifyBuilderConfig(function(config) {
@@ -114,13 +114,17 @@ var builderPluginAdapterModern = function(options) {
114
114
  var builderConfig = api.getNormalizedConfig();
115
115
  if (target === "node") {
116
116
  chain.name("server");
117
+ } else if (target === "service-worker") {
118
+ chain.name("service-worker");
119
+ } else if (target === "web-worker") {
120
+ chain.name("worker");
117
121
  } else if (target === "modern-web") {
118
122
  chain.name("modern");
119
123
  } else {
120
124
  chain.name("client");
121
125
  }
122
- if (target === "node") {
123
- applyNodeCompat(chain, normalizedConfig, isProd);
126
+ if (target === "node" || target === "service-worker") {
127
+ applyNodeCompat(target, chain, normalizedConfig, isProd);
124
128
  }
125
129
  if (isHtmlEnabled(builderConfig, target)) {
126
130
  applyBottomHtmlPlugin({
@@ -136,7 +140,7 @@ var builderPluginAdapterModern = function(options) {
136
140
  CHAIN_ID: CHAIN_ID
137
141
  });
138
142
  }
139
- if (target !== "node") {
143
+ if (target !== "node" && target !== "web-worker" && target !== "service-worker") {
140
144
  var bareServerModuleReg = /\.(server|node)\.[tj]sx?$/;
141
145
  chain.module.rule(CHAIN_ID.RULE.JS).exclude.add(bareServerModuleReg);
142
146
  chain.module.rule("bare-server-module").test(bareServerModuleReg).use("server-module-loader").loader(require.resolve("../loaders/serverModuleLoader"));
@@ -203,11 +207,11 @@ function applyAsyncChunkHtmlPlugin(param) {
203
207
  ]);
204
208
  }
205
209
  }
206
- function applyNodeCompat(chain, modernConfig, isProd) {
210
+ function applyNodeCompat(target, chain, modernConfig, isProd) {
207
211
  var filterEntriesBySSRConfig = function filterEntriesBySSRConfig(isProd2, chain2, serverConfig, outputConfig) {
208
- var ref;
212
+ var _outputConfig_ssg;
209
213
  var entries = chain2.entryPoints.entries();
210
- if (isProd2 && ((outputConfig === null || outputConfig === void 0 ? void 0 : outputConfig.ssg) === true || typeof (outputConfig === null || outputConfig === void 0 ? void 0 : (ref = outputConfig.ssg) === null || ref === void 0 ? void 0 : ref[0]) === "function")) {
214
+ if (isProd2 && ((outputConfig === null || outputConfig === void 0 ? void 0 : outputConfig.ssg) === true || typeof (outputConfig === null || outputConfig === void 0 ? void 0 : (_outputConfig_ssg = outputConfig.ssg) === null || _outputConfig_ssg === void 0 ? void 0 : _outputConfig_ssg[0]) === "function")) {
211
215
  return;
212
216
  }
213
217
  if (typeof entries === "undefined") {
@@ -226,14 +230,14 @@ function applyNodeCompat(chain, modernConfig, isProd) {
226
230
  }
227
231
  });
228
232
  }
229
- var ref1 = serverConfig || {}, ssr = ref1.ssr, ssrByEntries = ref1.ssrByEntries;
233
+ var _ref = serverConfig || {}, ssr = _ref.ssr, ssrByEntries = _ref.ssrByEntries;
230
234
  entryNames.forEach(function(name) {
231
235
  if (!ssgEntries.includes(name) && (ssr && (ssrByEntries === null || ssrByEntries === void 0 ? void 0 : ssrByEntries[name]) === false || !ssr && !(ssrByEntries === null || ssrByEntries === void 0 ? void 0 : ssrByEntries[name]))) {
232
236
  chain2.entryPoints.delete(name);
233
237
  }
234
238
  });
235
239
  };
236
- for(var _i = 0, _iter = [
240
+ var nodeExts = [
237
241
  ".node.js",
238
242
  ".node.jsx",
239
243
  ".node.ts",
@@ -242,9 +246,54 @@ function applyNodeCompat(chain, modernConfig, isProd) {
242
246
  ".server.ts",
243
247
  ".server.ts",
244
248
  ".server.tsx"
245
- ]; _i < _iter.length; _i++){
246
- var ext = _iter[_i];
247
- chain.resolve.extensions.prepend(ext);
249
+ ];
250
+ var webWorkerExts = [
251
+ ".worker.js",
252
+ ".worker.jsx",
253
+ ".worker.ts",
254
+ ".worker.tsx"
255
+ ];
256
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
257
+ try {
258
+ for(var _iterator = nodeExts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
259
+ var ext = _step.value;
260
+ chain.resolve.extensions.prepend(ext);
261
+ }
262
+ } catch (err) {
263
+ _didIteratorError = true;
264
+ _iteratorError = err;
265
+ } finally{
266
+ try {
267
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
268
+ _iterator.return();
269
+ }
270
+ } finally{
271
+ if (_didIteratorError) {
272
+ throw _iteratorError;
273
+ }
274
+ }
275
+ }
276
+ if (target === "service-worker") {
277
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
278
+ try {
279
+ for(var _iterator1 = webWorkerExts[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
280
+ var ext1 = _step1.value;
281
+ chain.resolve.extensions.prepend(ext1);
282
+ }
283
+ } catch (err) {
284
+ _didIteratorError1 = true;
285
+ _iteratorError1 = err;
286
+ } finally{
287
+ try {
288
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
289
+ _iterator1.return();
290
+ }
291
+ } finally{
292
+ if (_didIteratorError1) {
293
+ throw _iteratorError1;
294
+ }
295
+ }
296
+ }
248
297
  }
249
298
  filterEntriesBySSRConfig(isProd, chain, modernConfig.server, modernConfig.output);
250
299
  }
@@ -48,8 +48,8 @@ var BottomTemplatePlugin = /*#__PURE__*/ function() {
48
48
  var _this = this;
49
49
  compiler.hooks.compilation.tap(this.name, function(compilation) {
50
50
  _this.htmlWebpackPlugin.getHooks(compilation).beforeEmit.tap(_this.name, function(data) {
51
- var ref;
52
- if (!((ref = data.plugin.options) === null || ref === void 0 ? void 0 : ref.__internal__)) {
51
+ var _data_plugin_options;
52
+ if (!((_data_plugin_options = data.plugin.options) === null || _data_plugin_options === void 0 ? void 0 : _data_plugin_options.__internal__)) {
53
53
  return data;
54
54
  }
55
55
  if (_this.bottomTemplateReg.test(data.html)) {
@@ -182,7 +182,7 @@ import { buildServerConfig } from "../utils/config";
182
182
  import { getServerInternalPlugins } from "../utils/getServerInternalPlugins";
183
183
  var dev = function() {
184
184
  var _ref = _asyncToGenerator(function(api, options) {
185
- var ref, normalizedConfig, appContext, hookRunners, appDirectory, distDirectory, port, apiOnly, serverConfigFile, serverInternalPlugins, serverOptions, app, server;
185
+ var _normalizedConfig_tools, normalizedConfig, appContext, hookRunners, appDirectory, distDirectory, port, apiOnly, serverConfigFile, serverInternalPlugins, serverOptions, app, server;
186
186
  return __generator(this, function(_state) {
187
187
  switch(_state.label){
188
188
  case 0:
@@ -237,7 +237,7 @@ var dev = function() {
237
237
  dev: _objectSpread({
238
238
  port: port,
239
239
  https: normalizedConfig.dev.https
240
- }, (ref = normalizedConfig.tools) === null || ref === void 0 ? void 0 : ref.devServer),
240
+ }, (_normalizedConfig_tools = normalizedConfig.tools) === null || _normalizedConfig_tools === void 0 ? void 0 : _normalizedConfig_tools.devServer),
241
241
  pwd: appDirectory,
242
242
  config: normalizedConfig,
243
243
  serverConfigFile: serverConfigFile,
@@ -129,7 +129,7 @@ import { injectDataLoaderPlugin } from "../utils/createServer";
129
129
  import { getServerInternalPlugins } from "../utils/getServerInternalPlugins";
130
130
  var start = function() {
131
131
  var _ref = _asyncToGenerator(function(api) {
132
- var ref, appContext, userConfig, hookRunners, appDirectory, port, serverConfigFile, apiOnly, serverInternalPlugins, app;
132
+ var _userConfig_source, appContext, userConfig, hookRunners, appDirectory, port, serverConfigFile, apiOnly, serverInternalPlugins, app;
133
133
  return __generator(this, function(_state) {
134
134
  switch(_state.label){
135
135
  case 0:
@@ -140,7 +140,7 @@ var start = function() {
140
140
  logger.log(chalk.cyan("Starting the modern server..."));
141
141
  return [
142
142
  4,
143
- isApiOnly(appContext.appDirectory, userConfig === null || userConfig === void 0 ? void 0 : (ref = userConfig.source) === null || ref === void 0 ? void 0 : ref.entriesDir)
143
+ isApiOnly(appContext.appDirectory, userConfig === null || userConfig === void 0 ? void 0 : (_userConfig_source = userConfig.source) === null || _userConfig_source === void 0 ? void 0 : _userConfig_source.entriesDir)
144
144
  ];
145
145
  case 1:
146
146
  apiOnly = _state.sent();
@@ -107,7 +107,7 @@ function initHtmlConfig(config, appContext) {
107
107
  }
108
108
  function initSourceConfig(config, appContext, bundler) {
109
109
  var createBuilderGlobalVars = function createBuilderGlobalVars(config2, appContext2) {
110
- var _source = config2.source, _globalVars = _source.globalVars, globalVars = _globalVars === void 0 ? {} : _globalVars;
110
+ var _config2_source = config2.source, _config2_source_globalVars = _config2_source.globalVars, globalVars = _config2_source_globalVars === void 0 ? {} : _config2_source_globalVars;
111
111
  var publicEnv = getAutoInjectEnv(appContext2);
112
112
  return _objectSpread({}, globalVars, publicEnv);
113
113
  };
@@ -199,7 +199,7 @@ function initToolsConfig(config) {
199
199
  ]
200
200
  }
201
201
  };
202
- var _tools = config.tools, tsChecker = _tools.tsChecker, tsLoader = _tools.tsLoader;
202
+ var _config_tools = config.tools, tsChecker = _config_tools.tsChecker, tsLoader = _config_tools.tsLoader;
203
203
  config.tools.tsChecker = applyOptionsChain(defaultTsChecker, tsChecker);
204
204
  tsLoader && (config.tools.tsLoader = function(tsLoaderConfig, utils) {
205
205
  applyOptionsChain(_objectSpreadProps(_objectSpread({}, tsLoaderConfig), {
@@ -1,5 +1,5 @@
1
1
  function createHtmlConfig(config) {
2
- var _output = config.output, disableHtmlFolder = _output.disableHtmlFolder, favicon = _output.favicon, faviconByEntries = _output.faviconByEntries, inject = _output.inject, injectByEntries = _output.injectByEntries, meta = _output.meta, metaByEntries = _output.metaByEntries, mountId = _output.mountId, title = _output.title, titleByEntries = _output.titleByEntries, templateParameters = _output.templateParameters, templateParametersByEntries = _output.templateParametersByEntries, crossorigin = _output.crossorigin;
2
+ var _config_output = config.output, disableHtmlFolder = _config_output.disableHtmlFolder, favicon = _config_output.favicon, faviconByEntries = _config_output.faviconByEntries, inject = _config_output.inject, injectByEntries = _config_output.injectByEntries, meta = _config_output.meta, metaByEntries = _config_output.metaByEntries, mountId = _config_output.mountId, title = _config_output.title, titleByEntries = _config_output.titleByEntries, templateParameters = _config_output.templateParameters, templateParametersByEntries = _config_output.templateParametersByEntries, crossorigin = _config_output.crossorigin;
3
3
  return {
4
4
  disableHtmlFolder: disableHtmlFolder,
5
5
  favicon: favicon,
@@ -1,5 +1,5 @@
1
1
  function createOutputConfig(config) {
2
- var _output = config.output, assetPrefix = _output.assetPrefix, copy = _output.copy, cssModuleLocalIdentName = _output.cssModuleLocalIdentName, cssPath = _output.cssPath, jsPath = _output.jsPath, htmlPath = _output.htmlPath, mediaPath = _output.mediaPath, enableTsLoader = _output.enableTsLoader, path = _output.path, disableInlineRuntimeChunk = _output.disableInlineRuntimeChunk, disableCssExtract = _output.disableCssExtract, disableMinimize = _output.disableMinimize, disableSourceMap = _output.disableSourceMap, disableTsChecker = _output.disableTsChecker, enableCssModuleTSDeclaration = _output.enableCssModuleTSDeclaration, enableInlineScripts = _output.enableInlineScripts, enableInlineStyles = _output.enableInlineStyles, polyfill = _output.polyfill, dataUriLimit = _output.dataUriLimit, disableAssetsCache = _output.disableAssetsCache, enableLatestDecorators = _output.enableLatestDecorators, disableCssModuleExtension = _output.disableCssModuleExtension, ssg = _output.ssg, disableNodePolyfill = _output.disableNodePolyfill;
2
+ var _config_output = config.output, assetPrefix = _config_output.assetPrefix, copy = _config_output.copy, cssModuleLocalIdentName = _config_output.cssModuleLocalIdentName, cssPath = _config_output.cssPath, jsPath = _config_output.jsPath, htmlPath = _config_output.htmlPath, mediaPath = _config_output.mediaPath, enableTsLoader = _config_output.enableTsLoader, path = _config_output.path, disableInlineRuntimeChunk = _config_output.disableInlineRuntimeChunk, disableCssExtract = _config_output.disableCssExtract, disableMinimize = _config_output.disableMinimize, disableSourceMap = _config_output.disableSourceMap, disableTsChecker = _config_output.disableTsChecker, enableCssModuleTSDeclaration = _config_output.enableCssModuleTSDeclaration, enableInlineScripts = _config_output.enableInlineScripts, enableInlineStyles = _config_output.enableInlineStyles, polyfill = _config_output.polyfill, dataUriLimit = _config_output.dataUriLimit, disableAssetsCache = _config_output.disableAssetsCache, enableLatestDecorators = _config_output.enableLatestDecorators, disableCssModuleExtension = _config_output.disableCssModuleExtension, ssg = _config_output.ssg, disableNodePolyfill = _config_output.disableNodePolyfill;
3
3
  return {
4
4
  assetPrefix: assetPrefix,
5
5
  copy: copy,
@@ -1,5 +1,5 @@
1
1
  function createSourceConfig(config) {
2
- var _source = config.source, alias = _source.alias, envVars = _source.envVars, globalVars = _source.globalVars, include = _source.include, moduleScopes = _source.moduleScopes, preEntry = _source.preEntry, entries = _source.entries, enableAsyncEntry = _source.enableAsyncEntry, disableDefaultEntries = _source.disableDefaultEntries, entriesDir = _source.entriesDir, configDir = _source.configDir;
2
+ var _config_source = config.source, alias = _config_source.alias, envVars = _config_source.envVars, globalVars = _config_source.globalVars, include = _config_source.include, moduleScopes = _config_source.moduleScopes, preEntry = _config_source.preEntry, entries = _config_source.entries, enableAsyncEntry = _config_source.enableAsyncEntry, disableDefaultEntries = _config_source.disableDefaultEntries, entriesDir = _config_source.entriesDir, configDir = _config_source.configDir;
3
3
  var builderGlobalVars = globalVars || {};
4
4
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
5
5
  try {
@@ -1,5 +1,5 @@
1
1
  function createToolsConfig(config) {
2
- var _tools = config.tools, autoprefixer = _tools.autoprefixer, babel = _tools.babel, minifyCss = _tools.minifyCss, terser = _tools.terser, webpack = _tools.webpack, webpackChain = _tools.webpackChain, tsLoader = _tools.tsLoader, styledComponents = _tools.styledComponents, sass = _tools.sass, postcss = _tools.postcss, less = _tools.less, htmlPlugin = _tools.htmlPlugin, devServer = _tools.devServer, tailwindcss = _tools.tailwindcss, jest = _tools.jest, esbuild = _tools.esbuild;
2
+ var _config_tools = config.tools, autoprefixer = _config_tools.autoprefixer, babel = _config_tools.babel, minifyCss = _config_tools.minifyCss, terser = _config_tools.terser, webpack = _config_tools.webpack, webpackChain = _config_tools.webpackChain, tsLoader = _config_tools.tsLoader, styledComponents = _config_tools.styledComponents, sass = _config_tools.sass, postcss = _config_tools.postcss, less = _config_tools.less, htmlPlugin = _config_tools.htmlPlugin, devServer = _config_tools.devServer, tailwindcss = _config_tools.tailwindcss, jest = _config_tools.jest, esbuild = _config_tools.esbuild;
3
3
  var enableTsLoader = config.output.enableTsLoader;
4
4
  return {
5
5
  tsLoader: enableTsLoader ? tsLoader : void 0,
@@ -198,7 +198,7 @@ var initialize_default = function(param) {
198
198
  resolvedConfig: function resolvedConfig(param) {
199
199
  var resolved = param.resolved;
200
200
  return _asyncToGenerator(function() {
201
- var ref, appContext, userConfig, port, normalizedConfig;
201
+ var _resolved_output_distPath, appContext, userConfig, port, normalizedConfig;
202
202
  return __generator(this, function(_state) {
203
203
  switch(_state.label){
204
204
  case 0:
@@ -212,7 +212,7 @@ var initialize_default = function(param) {
212
212
  port = _state.sent();
213
213
  appContext = _objectSpreadProps(_objectSpread({}, appContext), {
214
214
  port: port,
215
- distDirectory: ensureAbsolutePath(appContext.distDirectory, ((ref = resolved.output.distPath) === null || ref === void 0 ? void 0 : ref.root) || "dist")
215
+ distDirectory: ensureAbsolutePath(appContext.distDirectory, ((_resolved_output_distPath = resolved.output.distPath) === null || _resolved_output_distPath === void 0 ? void 0 : _resolved_output_distPath.root) || "dist")
216
216
  });
217
217
  api.setAppContext(appContext);
218
218
  normalizedConfig = checkIsLegacyConfig(resolved) ? transformNormalizedConfig(resolved) : resolved;
@@ -275,11 +275,11 @@ var safeReplacer = function() {
275
275
  };
276
276
  var emitResolvedConfig = function() {
277
277
  var _ref = _asyncToGenerator(function(appDirectory, resolvedConfig) {
278
- var ref, outputPath;
278
+ var _resolvedConfig_output_distPath, outputPath;
279
279
  return __generator(this, function(_state) {
280
280
  switch(_state.label){
281
281
  case 0:
282
- outputPath = path.join(appDirectory, ((ref = resolvedConfig.output.distPath) === null || ref === void 0 ? void 0 : ref.root) || "./dist", OUTPUT_CONFIG_FILE);
282
+ outputPath = path.join(appDirectory, ((_resolvedConfig_output_distPath = resolvedConfig.output.distPath) === null || _resolvedConfig_output_distPath === void 0 ? void 0 : _resolvedConfig_output_distPath.root) || "./dist", OUTPUT_CONFIG_FILE);
283
283
  return [
284
284
  4,
285
285
  fs.writeJSON(outputPath, resolvedConfig, {
@@ -179,7 +179,7 @@ function getServerInternalPlugins(api) {
179
179
  }
180
180
  function _getServerInternalPlugins() {
181
181
  _getServerInternalPlugins = _asyncToGenerator(function(api) {
182
- var hookRunners, ref, serverPlugins, serverInternalPlugins;
182
+ var hookRunners, _ref, serverPlugins, serverInternalPlugins;
183
183
  return __generator(this, function(_state) {
184
184
  switch(_state.label){
185
185
  case 0:
@@ -191,7 +191,7 @@ function _getServerInternalPlugins() {
191
191
  })
192
192
  ];
193
193
  case 1:
194
- ref = _state.sent(), serverPlugins = ref.plugins;
194
+ _ref = _state.sent(), serverPlugins = _ref.plugins;
195
195
  serverInternalPlugins = serverPlugins.reduce(function(result, plugin) {
196
196
  return Object.assign(result, plugin);
197
197
  }, {});
@@ -4,6 +4,7 @@ import type { Entrypoint, HtmlPartials, NestedRoute, PageRoute, RouteLegacy, Ser
4
4
  import type { RegisterBuildPlatformResult, DevToolData } from '@modern-js/core';
5
5
  import type { Stats, MultiStats } from '@modern-js/builder-shared';
6
6
  import type { Rspack } from '@modern-js/builder-rspack-provider';
7
+ import { Bundler } from './utils';
7
8
  export interface ImportSpecifier {
8
9
  local?: string;
9
10
  imported?: string;
@@ -18,7 +19,7 @@ export interface RuntimePlugin {
18
19
  options: string;
19
20
  args?: string;
20
21
  }
21
- export type AppToolsHooks = {
22
+ export type AppToolsHooks<B extends Bundler = 'webpack'> = {
22
23
  modifyEntryExport: AsyncWaterfall<{
23
24
  entrypoint: Entrypoint;
24
25
  exportStatement: string;
@@ -61,16 +62,16 @@ export type AppToolsHooks = {
61
62
  beforeDev: AsyncWorkflow<void, unknown>;
62
63
  afterDev: AsyncWorkflow<void, unknown>;
63
64
  beforeCreateCompiler: AsyncWorkflow<{
64
- bundlerConfigs: webpack.Configuration[] | Rspack.Configuration[];
65
+ bundlerConfigs?: B extends 'rspack' ? Rspack.Configuration[] : webpack.Configuration[];
65
66
  }, unknown>;
66
67
  afterCreateCompiler: AsyncWorkflow<{
67
- compiler?: webpack.Compiler | webpack.MultiCompiler | Rspack.Compiler;
68
+ compiler?: B extends 'rspack' ? Rspack.Compiler : webpack.Compiler | webpack.MultiCompiler;
68
69
  }, unknown>;
69
70
  beforePrintInstructions: AsyncWaterfall<{
70
71
  instructions: string;
71
72
  }>;
72
73
  beforeBuild: AsyncWorkflow<{
73
- bundlerConfigs?: webpack.Configuration[] | Rspack.Configuration[];
74
+ bundlerConfigs?: B extends 'rspack' ? Rspack.Configuration[] : webpack.Configuration[];
74
75
  }, unknown>;
75
76
  afterBuild: AsyncWorkflow<{
76
77
  stats?: Stats | MultiStats;
@@ -6,11 +6,13 @@ import { Bundler, FromConfig } from './utils';
6
6
  export * from './hooks';
7
7
  export * from './config';
8
8
  export * from './legacyConfig';
9
+ export type { webpack } from '@modern-js/builder-webpack-provider';
10
+ export type { Rspack } from '@modern-js/builder-rspack-provider';
9
11
  export type { Bundler } from './utils';
10
12
  export type { ServerUserConfig, ServerNormalizedConfig, BffUserConfig, BffNormalizedConfig, SSR, SSRByEntries } from '@modern-js/server-core';
11
13
  export type { IAppContext, PluginAPI, CliPlugin, NormalizedConfig, UserConfig } from '@modern-js/core';
12
14
  export type AppTools<B extends Bundler = 'webpack'> = {
13
- hooks: AppToolsHooks;
15
+ hooks: AppToolsHooks<B>;
14
16
  userConfig: FromConfig<B, {
15
17
  rspack: RsAppToolsUserConfig;
16
18
  webpack: AppToolsUserConfig;