@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.
- package/dist/cjs/createDevServer.js +95 -0
- package/dist/cjs/{server/index.js → helpers/devOptions.js} +11 -28
- package/dist/cjs/helpers/fileReader.js +51 -0
- package/dist/cjs/helpers/index.js +107 -0
- package/dist/cjs/{server/workerSSRRender.js → helpers/repack.js} +27 -21
- package/dist/cjs/helpers/utils.js +29 -0
- package/dist/cjs/index.js +3 -13
- package/dist/esm/createDevServer.js +99 -0
- package/dist/esm/helpers/devOptions.js +10 -0
- package/dist/esm/helpers/fileReader.js +45 -0
- package/dist/esm/helpers/index.js +119 -0
- package/dist/esm/helpers/repack.js +31 -0
- package/dist/esm/helpers/utils.js +5 -0
- package/dist/esm/index.js +2 -12
- package/dist/esm-node/createDevServer.js +61 -0
- package/dist/esm-node/helpers/devOptions.js +10 -0
- package/dist/esm-node/helpers/fileReader.js +27 -0
- package/dist/esm-node/helpers/index.js +69 -0
- package/dist/esm-node/helpers/repack.js +27 -0
- package/dist/esm-node/helpers/utils.js +5 -0
- package/dist/esm-node/index.js +2 -11
- package/dist/types/createDevServer.d.ts +6 -0
- package/dist/types/{constants.d.ts → helpers/constants.d.ts} +1 -1
- package/dist/types/helpers/devOptions.d.ts +4 -0
- package/dist/types/helpers/fileReader.d.ts +2 -0
- package/dist/types/helpers/index.d.ts +14 -0
- package/dist/types/helpers/repack.d.ts +3 -0
- package/dist/types/helpers/utils.d.ts +1 -0
- package/dist/types/index.d.ts +2 -6
- package/dist/types/types.d.ts +4 -11
- package/package.json +10 -11
- package/dist/cjs/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -61
- package/dist/cjs/dev-tools/dev-middleware/hmr-client/index.js +0 -159
- package/dist/cjs/dev-tools/dev-middleware/index.js +0 -90
- package/dist/cjs/dev-tools/dev-middleware/socketServer.js +0 -173
- package/dist/cjs/dev-tools/https/index.js +0 -54
- package/dist/cjs/dev-tools/mock/getMockData.js +0 -104
- package/dist/cjs/dev-tools/mock/index.js +0 -85
- package/dist/cjs/dev-tools/register/index.js +0 -144
- package/dist/cjs/server/devServer.js +0 -267
- package/dist/cjs/server/devServerOld.js +0 -346
- package/dist/esm/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -54
- package/dist/esm/dev-tools/dev-middleware/hmr-client/index.js +0 -162
- package/dist/esm/dev-tools/dev-middleware/index.js +0 -82
- package/dist/esm/dev-tools/dev-middleware/socketServer.js +0 -149
- package/dist/esm/dev-tools/https/index.js +0 -74
- package/dist/esm/dev-tools/mock/getMockData.js +0 -102
- package/dist/esm/dev-tools/mock/index.js +0 -88
- package/dist/esm/dev-tools/register/index.js +0 -109
- package/dist/esm/server/devServer.js +0 -449
- package/dist/esm/server/devServerOld.js +0 -519
- package/dist/esm/server/index.js +0 -45
- package/dist/esm/server/workerSSRRender.js +0 -43
- package/dist/esm-node/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -36
- package/dist/esm-node/dev-tools/dev-middleware/hmr-client/index.js +0 -145
- package/dist/esm-node/dev-tools/dev-middleware/index.js +0 -60
- package/dist/esm-node/dev-tools/dev-middleware/socketServer.js +0 -143
- package/dist/esm-node/dev-tools/https/index.js +0 -30
- package/dist/esm-node/dev-tools/mock/getMockData.js +0 -80
- package/dist/esm-node/dev-tools/mock/index.js +0 -51
- package/dist/esm-node/dev-tools/register/index.js +0 -110
- package/dist/esm-node/server/devServer.js +0 -233
- package/dist/esm-node/server/devServerOld.js +0 -312
- package/dist/esm-node/server/index.js +0 -26
- package/dist/esm-node/server/workerSSRRender.js +0 -21
- package/dist/types/dev-tools/dev-middleware/hmr-client/createSocketUrl.d.ts +0 -7
- package/dist/types/dev-tools/dev-middleware/hmr-client/index.d.ts +0 -1
- package/dist/types/dev-tools/dev-middleware/index.d.ts +0 -21
- package/dist/types/dev-tools/dev-middleware/socketServer.d.ts +0 -25
- package/dist/types/dev-tools/https/index.d.ts +0 -7
- package/dist/types/dev-tools/mock/getMockData.d.ts +0 -18
- package/dist/types/dev-tools/mock/index.d.ts +0 -4
- package/dist/types/dev-tools/register/index.d.ts +0 -2
- package/dist/types/server/devServer.d.ts +0 -38
- package/dist/types/server/devServerOld.d.ts +0 -37
- package/dist/types/server/index.d.ts +0 -8
- package/dist/types/server/workerSSRRender.d.ts +0 -10
- /package/dist/cjs/{constants.js → helpers/constants.js} +0 -0
- /package/dist/esm/{constants.js → helpers/constants.js} +0 -0
- /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
|
+
};
|
package/dist/esm/index.js
CHANGED
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
-
|
|
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
|
+
};
|
package/dist/esm-node/index.js
CHANGED
|
@@ -1,13 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
-
|
|
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 '
|
|
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,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 @@
|
|
|
1
|
+
export declare const debug: import("@modern-js/utils/compiled/debug").Debugger;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,6 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
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';
|
package/dist/types/types.d.ts
CHANGED
|
@@ -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
|
|
40
|
+
getMiddlewares?: () => Pick<RsbuildDevServer, 'middlewares' | 'onHTTPUpgrade' | 'close'>;
|
|
49
41
|
};
|
|
50
|
-
export type
|
|
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.
|
|
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
|
-
"
|
|
51
|
-
"@modern-js/
|
|
52
|
-
"@modern-js/server-utils": "2.
|
|
53
|
-
"@modern-js/
|
|
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.
|
|
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.
|
|
72
|
-
"@scripts/build": "2.
|
|
73
|
-
"@scripts/jest-config": "2.
|
|
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
|
-
});
|