@modern-js/server 2.48.6 → 2.49.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 (80) hide show
  1. package/dist/cjs/createDevServer.js +95 -0
  2. package/dist/cjs/{server/index.js → helpers/devOptions.js} +11 -28
  3. package/dist/cjs/helpers/fileReader.js +51 -0
  4. package/dist/cjs/helpers/index.js +107 -0
  5. package/dist/cjs/{server/workerSSRRender.js → helpers/repack.js} +27 -21
  6. package/dist/cjs/helpers/utils.js +29 -0
  7. package/dist/cjs/index.js +3 -13
  8. package/dist/esm/createDevServer.js +99 -0
  9. package/dist/esm/helpers/devOptions.js +10 -0
  10. package/dist/esm/helpers/fileReader.js +45 -0
  11. package/dist/esm/helpers/index.js +119 -0
  12. package/dist/esm/helpers/repack.js +31 -0
  13. package/dist/esm/helpers/utils.js +5 -0
  14. package/dist/esm/index.js +2 -12
  15. package/dist/esm-node/createDevServer.js +61 -0
  16. package/dist/esm-node/helpers/devOptions.js +10 -0
  17. package/dist/esm-node/helpers/fileReader.js +27 -0
  18. package/dist/esm-node/helpers/index.js +69 -0
  19. package/dist/esm-node/helpers/repack.js +27 -0
  20. package/dist/esm-node/helpers/utils.js +5 -0
  21. package/dist/esm-node/index.js +2 -11
  22. package/dist/types/createDevServer.d.ts +6 -0
  23. package/dist/types/{constants.d.ts → helpers/constants.d.ts} +1 -1
  24. package/dist/types/helpers/devOptions.d.ts +4 -0
  25. package/dist/types/helpers/fileReader.d.ts +2 -0
  26. package/dist/types/helpers/index.d.ts +14 -0
  27. package/dist/types/helpers/repack.d.ts +3 -0
  28. package/dist/types/helpers/utils.d.ts +1 -0
  29. package/dist/types/index.d.ts +2 -6
  30. package/dist/types/types.d.ts +4 -11
  31. package/package.json +10 -11
  32. package/dist/cjs/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -61
  33. package/dist/cjs/dev-tools/dev-middleware/hmr-client/index.js +0 -159
  34. package/dist/cjs/dev-tools/dev-middleware/index.js +0 -90
  35. package/dist/cjs/dev-tools/dev-middleware/socketServer.js +0 -173
  36. package/dist/cjs/dev-tools/https/index.js +0 -54
  37. package/dist/cjs/dev-tools/mock/getMockData.js +0 -104
  38. package/dist/cjs/dev-tools/mock/index.js +0 -85
  39. package/dist/cjs/dev-tools/register/index.js +0 -144
  40. package/dist/cjs/server/devServer.js +0 -267
  41. package/dist/cjs/server/devServerOld.js +0 -346
  42. package/dist/esm/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -54
  43. package/dist/esm/dev-tools/dev-middleware/hmr-client/index.js +0 -162
  44. package/dist/esm/dev-tools/dev-middleware/index.js +0 -82
  45. package/dist/esm/dev-tools/dev-middleware/socketServer.js +0 -149
  46. package/dist/esm/dev-tools/https/index.js +0 -74
  47. package/dist/esm/dev-tools/mock/getMockData.js +0 -102
  48. package/dist/esm/dev-tools/mock/index.js +0 -88
  49. package/dist/esm/dev-tools/register/index.js +0 -109
  50. package/dist/esm/server/devServer.js +0 -449
  51. package/dist/esm/server/devServerOld.js +0 -519
  52. package/dist/esm/server/index.js +0 -45
  53. package/dist/esm/server/workerSSRRender.js +0 -43
  54. package/dist/esm-node/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -36
  55. package/dist/esm-node/dev-tools/dev-middleware/hmr-client/index.js +0 -145
  56. package/dist/esm-node/dev-tools/dev-middleware/index.js +0 -60
  57. package/dist/esm-node/dev-tools/dev-middleware/socketServer.js +0 -143
  58. package/dist/esm-node/dev-tools/https/index.js +0 -30
  59. package/dist/esm-node/dev-tools/mock/getMockData.js +0 -80
  60. package/dist/esm-node/dev-tools/mock/index.js +0 -51
  61. package/dist/esm-node/dev-tools/register/index.js +0 -110
  62. package/dist/esm-node/server/devServer.js +0 -233
  63. package/dist/esm-node/server/devServerOld.js +0 -312
  64. package/dist/esm-node/server/index.js +0 -26
  65. package/dist/esm-node/server/workerSSRRender.js +0 -21
  66. package/dist/types/dev-tools/dev-middleware/hmr-client/createSocketUrl.d.ts +0 -7
  67. package/dist/types/dev-tools/dev-middleware/hmr-client/index.d.ts +0 -1
  68. package/dist/types/dev-tools/dev-middleware/index.d.ts +0 -21
  69. package/dist/types/dev-tools/dev-middleware/socketServer.d.ts +0 -25
  70. package/dist/types/dev-tools/https/index.d.ts +0 -7
  71. package/dist/types/dev-tools/mock/getMockData.d.ts +0 -18
  72. package/dist/types/dev-tools/mock/index.d.ts +0 -4
  73. package/dist/types/dev-tools/register/index.d.ts +0 -2
  74. package/dist/types/server/devServer.d.ts +0 -38
  75. package/dist/types/server/devServerOld.d.ts +0 -37
  76. package/dist/types/server/index.d.ts +0 -8
  77. package/dist/types/server/workerSSRRender.d.ts +0 -10
  78. /package/dist/cjs/{constants.js → helpers/constants.js} +0 -0
  79. /package/dist/esm/{constants.js → helpers/constants.js} +0 -0
  80. /package/dist/esm-node/{constants.js → helpers/constants.js} +0 -0
@@ -0,0 +1,119 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
3
+ import path from "path";
4
+ import { SERVER_BUNDLE_DIRECTORY, SERVER_DIR, logger } from "@modern-js/utils";
5
+ import { AGGRED_DIR } from "@modern-js/server-core/base";
6
+ import { registerMockHandlers } from "@modern-js/server-core/base/node";
7
+ import Watcher, { mergeWatchOptions } from "../dev-tools/watcher";
8
+ import { debug } from "./utils";
9
+ export * from "./repack";
10
+ export * from "./devOptions";
11
+ export * from "./fileReader";
12
+ function onServerChange(_) {
13
+ return _onServerChange.apply(this, arguments);
14
+ }
15
+ function _onServerChange() {
16
+ _onServerChange = _async_to_generator(function(param) {
17
+ var pwd, filepath, event, server, mock, mockPath, runner, e;
18
+ return _ts_generator(this, function(_state) {
19
+ switch (_state.label) {
20
+ case 0:
21
+ pwd = param.pwd, filepath = param.filepath, event = param.event, server = param.server;
22
+ mock = AGGRED_DIR.mock;
23
+ mockPath = path.normalize(path.join(pwd, mock));
24
+ runner = server.runner;
25
+ runner.reset();
26
+ if (!filepath.startsWith(mockPath))
27
+ return [
28
+ 3,
29
+ 2
30
+ ];
31
+ return [
32
+ 4,
33
+ registerMockHandlers({
34
+ pwd,
35
+ server
36
+ })
37
+ ];
38
+ case 1:
39
+ _state.sent();
40
+ logger.info("Finish registering the mock handlers");
41
+ return [
42
+ 3,
43
+ 5
44
+ ];
45
+ case 2:
46
+ _state.trys.push([
47
+ 2,
48
+ 4,
49
+ ,
50
+ 5
51
+ ]);
52
+ return [
53
+ 4,
54
+ runner.onApiChange([
55
+ {
56
+ filename: filepath,
57
+ event
58
+ }
59
+ ])
60
+ ];
61
+ case 3:
62
+ _state.sent();
63
+ debug("Finish reload server, trigger by ".concat(filepath, " ").concat(event));
64
+ return [
65
+ 3,
66
+ 5
67
+ ];
68
+ case 4:
69
+ e = _state.sent();
70
+ logger.error(e);
71
+ return [
72
+ 3,
73
+ 5
74
+ ];
75
+ case 5:
76
+ return [
77
+ 2
78
+ ];
79
+ }
80
+ });
81
+ });
82
+ return _onServerChange.apply(this, arguments);
83
+ }
84
+ function startWatcher(param) {
85
+ var pwd = param.pwd, distDir = param.distDir, apiDir = param.apiDir, sharedDir = param.sharedDir, watchOptions = param.watchOptions, server = param.server;
86
+ var mock = AGGRED_DIR.mock;
87
+ var defaultWatched = [
88
+ "".concat(mock, "/**/*"),
89
+ "".concat(SERVER_DIR, "/**/*"),
90
+ "".concat(apiDir, "/**"),
91
+ "".concat(sharedDir, "/**/*"),
92
+ "".concat(distDir, "/").concat(SERVER_BUNDLE_DIRECTORY, "/*-server-loaders.js")
93
+ ];
94
+ var mergedWatchOptions = mergeWatchOptions(watchOptions);
95
+ var defaultWatchedPaths = defaultWatched.map(function(p) {
96
+ var finalPath = path.isAbsolute(p) ? p : path.join(pwd, p);
97
+ return path.normalize(finalPath);
98
+ });
99
+ var watcher = new Watcher();
100
+ watcher.createDepTree();
101
+ watcher.listen(defaultWatchedPaths, mergedWatchOptions, function(filepath, event) {
102
+ if (filepath.includes("-server-loaders.js")) {
103
+ delete require.cache[filepath];
104
+ } else {
105
+ watcher.updateDepTree();
106
+ watcher.cleanDepCache(filepath);
107
+ }
108
+ onServerChange({
109
+ pwd,
110
+ filepath,
111
+ event,
112
+ server
113
+ });
114
+ });
115
+ return watcher;
116
+ }
117
+ export {
118
+ startWatcher
119
+ };
@@ -0,0 +1,31 @@
1
+ import path from "path";
2
+ import { LOADABLE_STATS_FILE } from "@modern-js/utils";
3
+ import { fileReader } from "@modern-js/runtime-utils/fileReader";
4
+ var getBundles = function(routes) {
5
+ return routes.filter(function(route) {
6
+ return route.isSSR;
7
+ }).map(function(route) {
8
+ return route.bundle;
9
+ });
10
+ };
11
+ var cleanSSRCache = function(distDir, routes) {
12
+ var bundles = getBundles(routes);
13
+ bundles.forEach(function(bundle) {
14
+ var filepath = path.join(distDir, bundle);
15
+ if (require.cache[filepath]) {
16
+ delete require.cache[filepath];
17
+ }
18
+ });
19
+ var loadable = path.join(distDir, LOADABLE_STATS_FILE);
20
+ if (require.cache[loadable]) {
21
+ delete require.cache[loadable];
22
+ }
23
+ };
24
+ var onRepack = function(distDir, runner, routes) {
25
+ cleanSSRCache(distDir, routes);
26
+ fileReader.reset();
27
+ runner.repack();
28
+ };
29
+ export {
30
+ onRepack
31
+ };
@@ -0,0 +1,5 @@
1
+ import { createDebugger } from "@modern-js/utils";
2
+ var debug = createDebugger("server");
3
+ export {
4
+ debug
5
+ };
package/dist/esm/index.js CHANGED
@@ -1,14 +1,4 @@
1
- import { DevServer as Server, DevServerForRsbuild as ServerForRsbuild } from "./server";
2
- function src_default(options) {
3
- if (options == null) {
4
- throw new Error("can not start server without options");
5
- }
6
- var server = new Server(options);
7
- return server.init();
8
- }
9
- ;
1
+ import { createDevServer } from "./createDevServer";
10
2
  export {
11
- Server,
12
- ServerForRsbuild,
13
- src_default as default
3
+ createDevServer
14
4
  };
@@ -0,0 +1,61 @@
1
+ import path from "node:path";
2
+ import { createServerBase } from "@modern-js/server-core/base";
3
+ import { registerMockHandlers, createNodeServer, connectMid2HonoMid } from "@modern-js/server-core/base/node";
4
+ import { API_DIR, SHARED_DIR } from "@modern-js/utils";
5
+ import { startWatcher, onRepack, getDevOptions, initFileReader } from "./helpers";
6
+ const createDevServer = async (options, initProdMiddlewares) => {
7
+ const { config, pwd, routes = [], getMiddlewares, rsbuild, appContext } = options;
8
+ const dev = getDevOptions(options);
9
+ const distDir = path.resolve(pwd, config.output.path || "dist");
10
+ const apiDir = (appContext === null || appContext === void 0 ? void 0 : appContext.apiDirectory) || API_DIR;
11
+ const sharedDir = (appContext === null || appContext === void 0 ? void 0 : appContext.sharedDirectory) || SHARED_DIR;
12
+ const prodServerOptions = {
13
+ ...options,
14
+ pwd: distDir
15
+ };
16
+ const server = createServerBase(prodServerOptions);
17
+ const closeCb = [];
18
+ await registerMockHandlers({
19
+ pwd,
20
+ server
21
+ });
22
+ const { middlewares: rsbuildMiddlewares, close, onHTTPUpgrade } = (getMiddlewares === null || getMiddlewares === void 0 ? void 0 : getMiddlewares()) || {};
23
+ close && closeCb.push(close);
24
+ rsbuildMiddlewares && server.all("*", connectMid2HonoMid(rsbuildMiddlewares));
25
+ server.use("*", initFileReader());
26
+ await server.init();
27
+ const nodeServer = createNodeServer(server.handle.bind(server));
28
+ rsbuild === null || rsbuild === void 0 ? void 0 : rsbuild.onDevCompileDone(({ stats }) => {
29
+ if (stats.toJson({
30
+ all: false
31
+ }).name !== "server") {
32
+ onRepack(distDir, server.runner, routes);
33
+ }
34
+ });
35
+ onHTTPUpgrade && nodeServer.on("upgrade", onHTTPUpgrade);
36
+ await server.runner.beforeServerInit({
37
+ app: nodeServer
38
+ });
39
+ await initProdMiddlewares(server, prodServerOptions);
40
+ if (dev.watch) {
41
+ const { watchOptions } = config.server;
42
+ const watcher = startWatcher({
43
+ pwd,
44
+ distDir,
45
+ apiDir,
46
+ sharedDir,
47
+ watchOptions,
48
+ server
49
+ });
50
+ closeCb.push(watcher.close.bind(watcher));
51
+ }
52
+ closeCb.length > 0 && nodeServer.on("close", () => {
53
+ closeCb.forEach((cb) => {
54
+ cb();
55
+ });
56
+ });
57
+ return nodeServer;
58
+ };
59
+ export {
60
+ createDevServer
61
+ };
@@ -0,0 +1,10 @@
1
+ import { merge } from "@modern-js/utils/lodash";
2
+ import { getDefaultDevOptions } from "./constants";
3
+ const getDevOptions = (options) => {
4
+ const devOptions = options.dev;
5
+ const defaultOptions = getDefaultDevOptions();
6
+ return merge(defaultOptions, devOptions);
7
+ };
8
+ export {
9
+ getDevOptions
10
+ };
@@ -0,0 +1,27 @@
1
+ import { fileReader } from "@modern-js/runtime-utils/fileReader";
2
+ const initFileReader = () => {
3
+ let isInit = false;
4
+ return async (ctx, next) => {
5
+ var _res_locals;
6
+ if (isInit) {
7
+ return next();
8
+ }
9
+ isInit = true;
10
+ const { res } = ctx.env.node;
11
+ if (!((_res_locals = res.locals) === null || _res_locals === void 0 ? void 0 : _res_locals.webpack)) {
12
+ fileReader.reset();
13
+ return next();
14
+ }
15
+ const { devMiddleware: webpackDevMid } = res.locals.webpack;
16
+ const { outputFileSystem } = webpackDevMid;
17
+ if (outputFileSystem) {
18
+ fileReader.reset(outputFileSystem);
19
+ } else {
20
+ fileReader.reset();
21
+ }
22
+ return next();
23
+ };
24
+ };
25
+ export {
26
+ initFileReader
27
+ };
@@ -0,0 +1,69 @@
1
+ import path from "path";
2
+ import { SERVER_BUNDLE_DIRECTORY, SERVER_DIR, logger } from "@modern-js/utils";
3
+ import { AGGRED_DIR } from "@modern-js/server-core/base";
4
+ import { registerMockHandlers } from "@modern-js/server-core/base/node";
5
+ import Watcher, { mergeWatchOptions } from "../dev-tools/watcher";
6
+ import { debug } from "./utils";
7
+ export * from "./repack";
8
+ export * from "./devOptions";
9
+ export * from "./fileReader";
10
+ async function onServerChange({ pwd, filepath, event, server }) {
11
+ const { mock } = AGGRED_DIR;
12
+ const mockPath = path.normalize(path.join(pwd, mock));
13
+ const { runner } = server;
14
+ runner.reset();
15
+ if (filepath.startsWith(mockPath)) {
16
+ await registerMockHandlers({
17
+ pwd,
18
+ server
19
+ });
20
+ logger.info("Finish registering the mock handlers");
21
+ } else {
22
+ try {
23
+ await runner.onApiChange([
24
+ {
25
+ filename: filepath,
26
+ event
27
+ }
28
+ ]);
29
+ debug(`Finish reload server, trigger by ${filepath} ${event}`);
30
+ } catch (e) {
31
+ logger.error(e);
32
+ }
33
+ }
34
+ }
35
+ function startWatcher({ pwd, distDir, apiDir, sharedDir, watchOptions, server }) {
36
+ const { mock } = AGGRED_DIR;
37
+ const defaultWatched = [
38
+ `${mock}/**/*`,
39
+ `${SERVER_DIR}/**/*`,
40
+ `${apiDir}/**`,
41
+ `${sharedDir}/**/*`,
42
+ `${distDir}/${SERVER_BUNDLE_DIRECTORY}/*-server-loaders.js`
43
+ ];
44
+ const mergedWatchOptions = mergeWatchOptions(watchOptions);
45
+ const defaultWatchedPaths = defaultWatched.map((p) => {
46
+ const finalPath = path.isAbsolute(p) ? p : path.join(pwd, p);
47
+ return path.normalize(finalPath);
48
+ });
49
+ const watcher = new Watcher();
50
+ watcher.createDepTree();
51
+ watcher.listen(defaultWatchedPaths, mergedWatchOptions, (filepath, event) => {
52
+ if (filepath.includes("-server-loaders.js")) {
53
+ delete require.cache[filepath];
54
+ } else {
55
+ watcher.updateDepTree();
56
+ watcher.cleanDepCache(filepath);
57
+ }
58
+ onServerChange({
59
+ pwd,
60
+ filepath,
61
+ event,
62
+ server
63
+ });
64
+ });
65
+ return watcher;
66
+ }
67
+ export {
68
+ startWatcher
69
+ };
@@ -0,0 +1,27 @@
1
+ import path from "path";
2
+ import { LOADABLE_STATS_FILE } from "@modern-js/utils";
3
+ import { fileReader } from "@modern-js/runtime-utils/fileReader";
4
+ const getBundles = (routes) => {
5
+ return routes.filter((route) => route.isSSR).map((route) => route.bundle);
6
+ };
7
+ const cleanSSRCache = (distDir, routes) => {
8
+ const bundles = getBundles(routes);
9
+ bundles.forEach((bundle) => {
10
+ const filepath = path.join(distDir, bundle);
11
+ if (require.cache[filepath]) {
12
+ delete require.cache[filepath];
13
+ }
14
+ });
15
+ const loadable = path.join(distDir, LOADABLE_STATS_FILE);
16
+ if (require.cache[loadable]) {
17
+ delete require.cache[loadable];
18
+ }
19
+ };
20
+ const onRepack = (distDir, runner, routes) => {
21
+ cleanSSRCache(distDir, routes);
22
+ fileReader.reset();
23
+ runner.repack();
24
+ };
25
+ export {
26
+ onRepack
27
+ };
@@ -0,0 +1,5 @@
1
+ import { createDebugger } from "@modern-js/utils";
2
+ const debug = createDebugger("server");
3
+ export {
4
+ debug
5
+ };
@@ -1,13 +1,4 @@
1
- import { DevServer as Server, DevServerForRsbuild as ServerForRsbuild } from "./server";
2
- var src_default = (options) => {
3
- if (options == null) {
4
- throw new Error("can not start server without options");
5
- }
6
- const server = new Server(options);
7
- return server.init();
8
- };
1
+ import { createDevServer } from "./createDevServer";
9
2
  export {
10
- Server,
11
- ServerForRsbuild,
12
- src_default as default
3
+ createDevServer
13
4
  };
@@ -0,0 +1,6 @@
1
+ /// <reference types="node" />
2
+ import { Server as NodeServer } from 'node:http';
3
+ import { ServerBaseOptions } from '@modern-js/server-core/base';
4
+ import { InitProdMiddlewares, ModernDevServerOptions } from './types';
5
+ export type { ModernDevServerOptions, InitProdMiddlewares } from './types';
6
+ export declare const createDevServer: <O extends ServerBaseOptions>(options: ModernDevServerOptions<O>, initProdMiddlewares: InitProdMiddlewares<O>) => Promise<NodeServer>;
@@ -1,2 +1,2 @@
1
- import { DevServerOptions } from './types';
1
+ import { DevServerOptions } from '../types';
2
2
  export declare const getDefaultDevOptions: () => DevServerOptions;
@@ -0,0 +1,4 @@
1
+ import { ModernDevServerOptions } from '../types';
2
+ export declare const getDevOptions: (options: ModernDevServerOptions) => import("@modern-js/types/server/devServer").DevServerOptions & Pick<import("@modern-js/types/server/devServer").DevServerOptions, "watch" | "https"> & {
3
+ writeToDisk?: boolean | ((filename: string) => boolean) | undefined;
4
+ };
@@ -0,0 +1,2 @@
1
+ import { Middleware } from '@modern-js/server-core/base';
2
+ export declare const initFileReader: () => Middleware;
@@ -0,0 +1,14 @@
1
+ import { WatchOptions } from '@modern-js/utils';
2
+ import { ServerBase } from '@modern-js/server-core/base';
3
+ import Watcher from '../dev-tools/watcher';
4
+ export * from './repack';
5
+ export * from './devOptions';
6
+ export * from './fileReader';
7
+ export declare function startWatcher({ pwd, distDir, apiDir, sharedDir, watchOptions, server, }: {
8
+ pwd: string;
9
+ distDir: string;
10
+ apiDir: string;
11
+ sharedDir: string;
12
+ watchOptions?: WatchOptions;
13
+ server: ServerBase;
14
+ }): Watcher;
@@ -0,0 +1,3 @@
1
+ import { ServerRoute } from '@modern-js/types';
2
+ import { ServerHookRunner } from '@modern-js/server-core';
3
+ export declare const onRepack: (distDir: string, runner: ServerHookRunner, routes: ServerRoute[]) => void;
@@ -0,0 +1 @@
1
+ export declare const debug: import("@modern-js/utils/compiled/debug").Debugger;
@@ -1,6 +1,2 @@
1
- import { DevServer as Server, DevServerForRsbuild as ServerForRsbuild } from './server';
2
- import type { ModernDevServerOptions, ModernDevServerOptionsNew } from './types';
3
- export { Server, ServerForRsbuild };
4
- export type { ModernDevServerOptions, ModernDevServerOptionsNew };
5
- declare const _default: (options: ModernDevServerOptions) => Promise<Server>;
6
- export default _default;
1
+ export { createDevServer } from './createDevServer';
2
+ export type { ModernDevServerOptions, InitProdMiddlewares, } from './createDevServer';
@@ -1,10 +1,8 @@
1
1
  /// <reference types="node" />
2
- /// <reference types="node/http" />
3
- /// <reference types="@modern-js/prod-server/src/type" />
4
2
  import type { IncomingMessage, ServerResponse } from 'http';
5
3
  import type { DevServerOptions, DevServerHttpsOptions, NextFunction } from '@modern-js/types';
6
- import type { ModernServerOptions } from '@modern-js/prod-server';
7
4
  import type { RsbuildInstance, RsbuildDevServer } from '@rsbuild/shared';
5
+ import { ServerBase, ServerBaseOptions } from '@modern-js/server-core/base';
8
6
  export type { DevServerOptions, DevServerHttpsOptions };
9
7
  type Middleware = (req: IncomingMessage, res: ServerResponse, next: NextFunction) => Promise<void>;
10
8
  export type DevMiddlewareAPI = Middleware & {
@@ -34,17 +32,12 @@ export type DevMiddlewareOptions = {
34
32
  */
35
33
  export type DevMiddleware = (options: DevMiddlewareOptions) => DevMiddlewareAPI;
36
34
  export type ExtraOptions = {
37
- dev: boolean | Partial<DevServerOptions>;
38
- devMiddleware?: DevMiddleware;
39
- useSSRWorker?: boolean;
40
- };
41
- export type ModernDevServerOptions = ModernServerOptions & ExtraOptions;
42
- export type ExtraOptionsNew = {
43
35
  dev: Pick<DevServerOptions, 'watch' | 'https'> & {
44
36
  writeToDisk?: boolean | ((filename: string) => boolean);
45
37
  };
46
38
  useSSRWorker?: boolean;
47
39
  rsbuild: RsbuildInstance;
48
- getMiddlewares: () => Pick<RsbuildDevServer, 'middlewares' | 'onHTTPUpgrade' | 'close'>;
40
+ getMiddlewares?: () => Pick<RsbuildDevServer, 'middlewares' | 'onHTTPUpgrade' | 'close'>;
49
41
  };
50
- export type ModernDevServerOptionsNew = ModernServerOptions & ExtraOptionsNew;
42
+ export type ModernDevServerOptions<O extends ServerBaseOptions = ServerBaseOptions> = O & ExtraOptions;
43
+ export type InitProdMiddlewares<O extends ServerBaseOptions = ServerBaseOptions> = (server: ServerBase, options: O) => Promise<ServerBase>;
package/package.json CHANGED
@@ -15,7 +15,7 @@
15
15
  "modern",
16
16
  "modern.js"
17
17
  ],
18
- "version": "2.48.6",
18
+ "version": "2.49.0",
19
19
  "jsnext:source": "./src/index.ts",
20
20
  "types": "./dist/types/index.d.ts",
21
21
  "main": "./dist/cjs/index.js",
@@ -42,20 +42,19 @@
42
42
  "@babel/core": "^7.23.2",
43
43
  "@babel/register": "^7.22.15",
44
44
  "@swc/helpers": "0.5.3",
45
+ "axios": "^1.6.0",
45
46
  "connect-history-api-fallback": "^2.0.0",
46
47
  "http-compression": "1.0.6",
47
48
  "minimatch": "^3.0.4",
48
49
  "path-to-regexp": "^6.2.0",
49
50
  "ws": "^8.13.0",
50
- "axios": "^1.6.0",
51
- "@modern-js/prod-server": "2.48.6",
52
- "@modern-js/server-utils": "2.48.6",
53
- "@modern-js/types": "2.48.6",
54
- "@modern-js/utils": "2.48.6",
55
- "@modern-js/runtime-utils": "2.48.6"
51
+ "@modern-js/runtime-utils": "2.49.0",
52
+ "@modern-js/types": "2.49.0",
53
+ "@modern-js/server-utils": "2.49.0",
54
+ "@modern-js/utils": "2.49.0"
56
55
  },
57
56
  "devDependencies": {
58
- "@rsbuild/shared": "0.6.1",
57
+ "@rsbuild/shared": "0.6.3",
59
58
  "@types/connect-history-api-fallback": "^1.3.5",
60
59
  "@types/jest": "^29",
61
60
  "@types/minimatch": "^3.0.5",
@@ -68,9 +67,9 @@
68
67
  "typescript": "^5",
69
68
  "webpack": "^5.91.0",
70
69
  "websocket": "^1",
71
- "@modern-js/server-core": "2.48.6",
72
- "@scripts/build": "2.48.6",
73
- "@scripts/jest-config": "2.48.6"
70
+ "@modern-js/server-core": "2.49.0",
71
+ "@scripts/build": "2.49.0",
72
+ "@scripts/jest-config": "2.49.0"
74
73
  },
75
74
  "peerDependencies": {
76
75
  "devcert": "^1.2.2",
@@ -1,61 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var createSocketUrl_exports = {};
20
- __export(createSocketUrl_exports, {
21
- createSocketUrl: () => createSocketUrl,
22
- formatURL: () => formatURL
23
- });
24
- module.exports = __toCommonJS(createSocketUrl_exports);
25
- var import_constants = require("@modern-js/utils/universal/constants");
26
- function createSocketUrl(resourceQuery) {
27
- const searchParams = resourceQuery.substr(1).split("&");
28
- const options = {};
29
- for (const pair of searchParams) {
30
- const ary = pair.split("=");
31
- options[ary[0]] = decodeURIComponent(ary[1]);
32
- }
33
- const currentLocation = self.location;
34
- return getSocketUrl(options, currentLocation);
35
- }
36
- function formatURL({ port, protocol, hostname, pathname }) {
37
- if (typeof URL !== "undefined") {
38
- const url = new URL("http://localhost");
39
- url.port = port;
40
- url.hostname = hostname;
41
- url.protocol = protocol;
42
- url.pathname = pathname;
43
- return url.toString();
44
- }
45
- const colon = protocol.indexOf(":") === -1 ? ":" : "";
46
- return `${protocol}${colon}//${hostname}:${port}${pathname}`;
47
- }
48
- function getSocketUrl(urlParts, location) {
49
- const { host, port, path, protocol } = urlParts;
50
- return formatURL({
51
- protocol: protocol || (location.protocol === "https:" ? "wss" : "ws"),
52
- hostname: host || location.hostname,
53
- port: port || location.port,
54
- pathname: path || import_constants.HMR_SOCK_PATH
55
- });
56
- }
57
- // Annotate the CommonJS export names for ESM import in node:
58
- 0 && (module.exports = {
59
- createSocketUrl,
60
- formatURL
61
- });