@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,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var createDevServer_exports = {};
|
|
30
|
+
__export(createDevServer_exports, {
|
|
31
|
+
createDevServer: () => createDevServer
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(createDevServer_exports);
|
|
34
|
+
var import_node_path = __toESM(require("node:path"));
|
|
35
|
+
var import_base = require("@modern-js/server-core/base");
|
|
36
|
+
var import_node = require("@modern-js/server-core/base/node");
|
|
37
|
+
var import_utils = require("@modern-js/utils");
|
|
38
|
+
var import_helpers = require("./helpers");
|
|
39
|
+
const createDevServer = async (options, initProdMiddlewares) => {
|
|
40
|
+
const { config, pwd, routes = [], getMiddlewares, rsbuild, appContext } = options;
|
|
41
|
+
const dev = (0, import_helpers.getDevOptions)(options);
|
|
42
|
+
const distDir = import_node_path.default.resolve(pwd, config.output.path || "dist");
|
|
43
|
+
const apiDir = (appContext === null || appContext === void 0 ? void 0 : appContext.apiDirectory) || import_utils.API_DIR;
|
|
44
|
+
const sharedDir = (appContext === null || appContext === void 0 ? void 0 : appContext.sharedDirectory) || import_utils.SHARED_DIR;
|
|
45
|
+
const prodServerOptions = {
|
|
46
|
+
...options,
|
|
47
|
+
pwd: distDir
|
|
48
|
+
};
|
|
49
|
+
const server = (0, import_base.createServerBase)(prodServerOptions);
|
|
50
|
+
const closeCb = [];
|
|
51
|
+
await (0, import_node.registerMockHandlers)({
|
|
52
|
+
pwd,
|
|
53
|
+
server
|
|
54
|
+
});
|
|
55
|
+
const { middlewares: rsbuildMiddlewares, close, onHTTPUpgrade } = (getMiddlewares === null || getMiddlewares === void 0 ? void 0 : getMiddlewares()) || {};
|
|
56
|
+
close && closeCb.push(close);
|
|
57
|
+
rsbuildMiddlewares && server.all("*", (0, import_node.connectMid2HonoMid)(rsbuildMiddlewares));
|
|
58
|
+
server.use("*", (0, import_helpers.initFileReader)());
|
|
59
|
+
await server.init();
|
|
60
|
+
const nodeServer = (0, import_node.createNodeServer)(server.handle.bind(server));
|
|
61
|
+
rsbuild === null || rsbuild === void 0 ? void 0 : rsbuild.onDevCompileDone(({ stats }) => {
|
|
62
|
+
if (stats.toJson({
|
|
63
|
+
all: false
|
|
64
|
+
}).name !== "server") {
|
|
65
|
+
(0, import_helpers.onRepack)(distDir, server.runner, routes);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
onHTTPUpgrade && nodeServer.on("upgrade", onHTTPUpgrade);
|
|
69
|
+
await server.runner.beforeServerInit({
|
|
70
|
+
app: nodeServer
|
|
71
|
+
});
|
|
72
|
+
await initProdMiddlewares(server, prodServerOptions);
|
|
73
|
+
if (dev.watch) {
|
|
74
|
+
const { watchOptions } = config.server;
|
|
75
|
+
const watcher = (0, import_helpers.startWatcher)({
|
|
76
|
+
pwd,
|
|
77
|
+
distDir,
|
|
78
|
+
apiDir,
|
|
79
|
+
sharedDir,
|
|
80
|
+
watchOptions,
|
|
81
|
+
server
|
|
82
|
+
});
|
|
83
|
+
closeCb.push(watcher.close.bind(watcher));
|
|
84
|
+
}
|
|
85
|
+
closeCb.length > 0 && nodeServer.on("close", () => {
|
|
86
|
+
closeCb.forEach((cb) => {
|
|
87
|
+
cb();
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
return nodeServer;
|
|
91
|
+
};
|
|
92
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
93
|
+
0 && (module.exports = {
|
|
94
|
+
createDevServer
|
|
95
|
+
});
|
|
@@ -16,36 +16,19 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
|
|
22
|
-
DevServerForRsbuild: () => DevServerForRsbuild
|
|
19
|
+
var devOptions_exports = {};
|
|
20
|
+
__export(devOptions_exports, {
|
|
21
|
+
getDevOptions: () => getDevOptions
|
|
23
22
|
});
|
|
24
|
-
module.exports = __toCommonJS(
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
23
|
+
module.exports = __toCommonJS(devOptions_exports);
|
|
24
|
+
var import_lodash = require("@modern-js/utils/lodash");
|
|
25
|
+
var import_constants = require("./constants");
|
|
26
|
+
const getDevOptions = (options) => {
|
|
27
|
+
const devOptions = options.dev;
|
|
28
|
+
const defaultOptions = (0, import_constants.getDefaultDevOptions)();
|
|
29
|
+
return (0, import_lodash.merge)(defaultOptions, devOptions);
|
|
30
30
|
};
|
|
31
|
-
class DevServer extends import_prod_server.Server {
|
|
32
|
-
constructor(options) {
|
|
33
|
-
super(options);
|
|
34
|
-
if (options.dev) {
|
|
35
|
-
this.serverImpl = createDevServer;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
class DevServerForRsbuild extends import_prod_server.Server {
|
|
40
|
-
constructor(options) {
|
|
41
|
-
super(options);
|
|
42
|
-
if (options.dev) {
|
|
43
|
-
this.serverImpl = (options2) => new import_devServer.ModernDevServer(options2);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
31
|
// Annotate the CommonJS export names for ESM import in node:
|
|
48
32
|
0 && (module.exports = {
|
|
49
|
-
|
|
50
|
-
DevServerForRsbuild
|
|
33
|
+
getDevOptions
|
|
51
34
|
});
|
|
@@ -0,0 +1,51 @@
|
|
|
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 fileReader_exports = {};
|
|
20
|
+
__export(fileReader_exports, {
|
|
21
|
+
initFileReader: () => initFileReader
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(fileReader_exports);
|
|
24
|
+
var import_fileReader = require("@modern-js/runtime-utils/fileReader");
|
|
25
|
+
const initFileReader = () => {
|
|
26
|
+
let isInit = false;
|
|
27
|
+
return async (ctx, next) => {
|
|
28
|
+
var _res_locals;
|
|
29
|
+
if (isInit) {
|
|
30
|
+
return next();
|
|
31
|
+
}
|
|
32
|
+
isInit = true;
|
|
33
|
+
const { res } = ctx.env.node;
|
|
34
|
+
if (!((_res_locals = res.locals) === null || _res_locals === void 0 ? void 0 : _res_locals.webpack)) {
|
|
35
|
+
import_fileReader.fileReader.reset();
|
|
36
|
+
return next();
|
|
37
|
+
}
|
|
38
|
+
const { devMiddleware: webpackDevMid } = res.locals.webpack;
|
|
39
|
+
const { outputFileSystem } = webpackDevMid;
|
|
40
|
+
if (outputFileSystem) {
|
|
41
|
+
import_fileReader.fileReader.reset(outputFileSystem);
|
|
42
|
+
} else {
|
|
43
|
+
import_fileReader.fileReader.reset();
|
|
44
|
+
}
|
|
45
|
+
return next();
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
49
|
+
0 && (module.exports = {
|
|
50
|
+
initFileReader
|
|
51
|
+
});
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
21
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
+
mod
|
|
28
|
+
));
|
|
29
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
30
|
+
var helpers_exports = {};
|
|
31
|
+
__export(helpers_exports, {
|
|
32
|
+
startWatcher: () => startWatcher
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(helpers_exports);
|
|
35
|
+
var import_path = __toESM(require("path"));
|
|
36
|
+
var import_utils = require("@modern-js/utils");
|
|
37
|
+
var import_base = require("@modern-js/server-core/base");
|
|
38
|
+
var import_node = require("@modern-js/server-core/base/node");
|
|
39
|
+
var import_watcher = __toESM(require("../dev-tools/watcher"));
|
|
40
|
+
var import_utils2 = require("./utils");
|
|
41
|
+
__reExport(helpers_exports, require("./repack"), module.exports);
|
|
42
|
+
__reExport(helpers_exports, require("./devOptions"), module.exports);
|
|
43
|
+
__reExport(helpers_exports, require("./fileReader"), module.exports);
|
|
44
|
+
async function onServerChange({ pwd, filepath, event, server }) {
|
|
45
|
+
const { mock } = import_base.AGGRED_DIR;
|
|
46
|
+
const mockPath = import_path.default.normalize(import_path.default.join(pwd, mock));
|
|
47
|
+
const { runner } = server;
|
|
48
|
+
runner.reset();
|
|
49
|
+
if (filepath.startsWith(mockPath)) {
|
|
50
|
+
await (0, import_node.registerMockHandlers)({
|
|
51
|
+
pwd,
|
|
52
|
+
server
|
|
53
|
+
});
|
|
54
|
+
import_utils.logger.info("Finish registering the mock handlers");
|
|
55
|
+
} else {
|
|
56
|
+
try {
|
|
57
|
+
await runner.onApiChange([
|
|
58
|
+
{
|
|
59
|
+
filename: filepath,
|
|
60
|
+
event
|
|
61
|
+
}
|
|
62
|
+
]);
|
|
63
|
+
(0, import_utils2.debug)(`Finish reload server, trigger by ${filepath} ${event}`);
|
|
64
|
+
} catch (e) {
|
|
65
|
+
import_utils.logger.error(e);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function startWatcher({ pwd, distDir, apiDir, sharedDir, watchOptions, server }) {
|
|
70
|
+
const { mock } = import_base.AGGRED_DIR;
|
|
71
|
+
const defaultWatched = [
|
|
72
|
+
`${mock}/**/*`,
|
|
73
|
+
`${import_utils.SERVER_DIR}/**/*`,
|
|
74
|
+
`${apiDir}/**`,
|
|
75
|
+
`${sharedDir}/**/*`,
|
|
76
|
+
`${distDir}/${import_utils.SERVER_BUNDLE_DIRECTORY}/*-server-loaders.js`
|
|
77
|
+
];
|
|
78
|
+
const mergedWatchOptions = (0, import_watcher.mergeWatchOptions)(watchOptions);
|
|
79
|
+
const defaultWatchedPaths = defaultWatched.map((p) => {
|
|
80
|
+
const finalPath = import_path.default.isAbsolute(p) ? p : import_path.default.join(pwd, p);
|
|
81
|
+
return import_path.default.normalize(finalPath);
|
|
82
|
+
});
|
|
83
|
+
const watcher = new import_watcher.default();
|
|
84
|
+
watcher.createDepTree();
|
|
85
|
+
watcher.listen(defaultWatchedPaths, mergedWatchOptions, (filepath, event) => {
|
|
86
|
+
if (filepath.includes("-server-loaders.js")) {
|
|
87
|
+
delete require.cache[filepath];
|
|
88
|
+
} else {
|
|
89
|
+
watcher.updateDepTree();
|
|
90
|
+
watcher.cleanDepCache(filepath);
|
|
91
|
+
}
|
|
92
|
+
onServerChange({
|
|
93
|
+
pwd,
|
|
94
|
+
filepath,
|
|
95
|
+
event,
|
|
96
|
+
server
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
return watcher;
|
|
100
|
+
}
|
|
101
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
102
|
+
0 && (module.exports = {
|
|
103
|
+
startWatcher,
|
|
104
|
+
...require("./repack"),
|
|
105
|
+
...require("./devOptions"),
|
|
106
|
+
...require("./fileReader")
|
|
107
|
+
});
|
|
@@ -26,30 +26,36 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
31
|
-
|
|
29
|
+
var repack_exports = {};
|
|
30
|
+
__export(repack_exports, {
|
|
31
|
+
onRepack: () => onRepack
|
|
32
32
|
});
|
|
33
|
-
module.exports = __toCommonJS(
|
|
34
|
-
var
|
|
33
|
+
module.exports = __toCommonJS(repack_exports);
|
|
34
|
+
var import_path = __toESM(require("path"));
|
|
35
35
|
var import_utils = require("@modern-js/utils");
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
36
|
+
var import_fileReader = require("@modern-js/runtime-utils/fileReader");
|
|
37
|
+
const getBundles = (routes) => {
|
|
38
|
+
return routes.filter((route) => route.isSSR).map((route) => route.bundle);
|
|
39
|
+
};
|
|
40
|
+
const cleanSSRCache = (distDir, routes) => {
|
|
41
|
+
const bundles = getBundles(routes);
|
|
42
|
+
bundles.forEach((bundle) => {
|
|
43
|
+
const filepath = import_path.default.join(distDir, bundle);
|
|
44
|
+
if (require.cache[filepath]) {
|
|
45
|
+
delete require.cache[filepath];
|
|
46
|
+
}
|
|
46
47
|
});
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
}
|
|
48
|
+
const loadable = import_path.default.join(distDir, import_utils.LOADABLE_STATS_FILE);
|
|
49
|
+
if (require.cache[loadable]) {
|
|
50
|
+
delete require.cache[loadable];
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
const onRepack = (distDir, runner, routes) => {
|
|
54
|
+
cleanSSRCache(distDir, routes);
|
|
55
|
+
import_fileReader.fileReader.reset();
|
|
56
|
+
runner.repack();
|
|
57
|
+
};
|
|
52
58
|
// Annotate the CommonJS export names for ESM import in node:
|
|
53
59
|
0 && (module.exports = {
|
|
54
|
-
|
|
60
|
+
onRepack
|
|
55
61
|
});
|
|
@@ -0,0 +1,29 @@
|
|
|
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 utils_exports = {};
|
|
20
|
+
__export(utils_exports, {
|
|
21
|
+
debug: () => debug
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(utils_exports);
|
|
24
|
+
var import_utils = require("@modern-js/utils");
|
|
25
|
+
const debug = (0, import_utils.createDebugger)("server");
|
|
26
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
27
|
+
0 && (module.exports = {
|
|
28
|
+
debug
|
|
29
|
+
});
|
package/dist/cjs/index.js
CHANGED
|
@@ -18,21 +18,11 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var src_exports = {};
|
|
20
20
|
__export(src_exports, {
|
|
21
|
-
|
|
22
|
-
ServerForRsbuild: () => import_server.DevServerForRsbuild,
|
|
23
|
-
default: () => src_default
|
|
21
|
+
createDevServer: () => import_createDevServer.createDevServer
|
|
24
22
|
});
|
|
25
23
|
module.exports = __toCommonJS(src_exports);
|
|
26
|
-
var
|
|
27
|
-
var src_default = (options) => {
|
|
28
|
-
if (options == null) {
|
|
29
|
-
throw new Error("can not start server without options");
|
|
30
|
-
}
|
|
31
|
-
const server = new import_server.DevServer(options);
|
|
32
|
-
return server.init();
|
|
33
|
-
};
|
|
24
|
+
var import_createDevServer = require("./createDevServer");
|
|
34
25
|
// Annotate the CommonJS export names for ESM import in node:
|
|
35
26
|
0 && (module.exports = {
|
|
36
|
-
|
|
37
|
-
ServerForRsbuild
|
|
27
|
+
createDevServer
|
|
38
28
|
});
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
|
+
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
3
|
+
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
|
|
4
|
+
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { createServerBase } from "@modern-js/server-core/base";
|
|
7
|
+
import { registerMockHandlers, createNodeServer, connectMid2HonoMid } from "@modern-js/server-core/base/node";
|
|
8
|
+
import { API_DIR, SHARED_DIR } from "@modern-js/utils";
|
|
9
|
+
import { startWatcher, onRepack, getDevOptions, initFileReader } from "./helpers";
|
|
10
|
+
var createDevServer = function() {
|
|
11
|
+
var _ref = _async_to_generator(function(options, initProdMiddlewares) {
|
|
12
|
+
var config, pwd, _options_routes, routes, getMiddlewares, rsbuild, appContext, dev, distDir, apiDir, sharedDir, prodServerOptions, server, closeCb, _ref2, rsbuildMiddlewares, close, onHTTPUpgrade, nodeServer, watchOptions, watcher;
|
|
13
|
+
return _ts_generator(this, function(_state) {
|
|
14
|
+
switch (_state.label) {
|
|
15
|
+
case 0:
|
|
16
|
+
config = options.config, pwd = options.pwd, _options_routes = options.routes, routes = _options_routes === void 0 ? [] : _options_routes, getMiddlewares = options.getMiddlewares, rsbuild = options.rsbuild, appContext = options.appContext;
|
|
17
|
+
dev = getDevOptions(options);
|
|
18
|
+
distDir = path.resolve(pwd, config.output.path || "dist");
|
|
19
|
+
apiDir = (appContext === null || appContext === void 0 ? void 0 : appContext.apiDirectory) || API_DIR;
|
|
20
|
+
sharedDir = (appContext === null || appContext === void 0 ? void 0 : appContext.sharedDirectory) || SHARED_DIR;
|
|
21
|
+
prodServerOptions = _object_spread_props(_object_spread({}, options), {
|
|
22
|
+
pwd: distDir
|
|
23
|
+
});
|
|
24
|
+
server = createServerBase(prodServerOptions);
|
|
25
|
+
closeCb = [];
|
|
26
|
+
return [
|
|
27
|
+
4,
|
|
28
|
+
registerMockHandlers({
|
|
29
|
+
pwd,
|
|
30
|
+
server
|
|
31
|
+
})
|
|
32
|
+
];
|
|
33
|
+
case 1:
|
|
34
|
+
_state.sent();
|
|
35
|
+
_ref2 = (getMiddlewares === null || getMiddlewares === void 0 ? void 0 : getMiddlewares()) || {}, rsbuildMiddlewares = _ref2.middlewares, close = _ref2.close, onHTTPUpgrade = _ref2.onHTTPUpgrade;
|
|
36
|
+
close && closeCb.push(close);
|
|
37
|
+
rsbuildMiddlewares && server.all("*", connectMid2HonoMid(rsbuildMiddlewares));
|
|
38
|
+
server.use("*", initFileReader());
|
|
39
|
+
return [
|
|
40
|
+
4,
|
|
41
|
+
server.init()
|
|
42
|
+
];
|
|
43
|
+
case 2:
|
|
44
|
+
_state.sent();
|
|
45
|
+
nodeServer = createNodeServer(server.handle.bind(server));
|
|
46
|
+
rsbuild === null || rsbuild === void 0 ? void 0 : rsbuild.onDevCompileDone(function(param) {
|
|
47
|
+
var stats = param.stats;
|
|
48
|
+
if (stats.toJson({
|
|
49
|
+
all: false
|
|
50
|
+
}).name !== "server") {
|
|
51
|
+
onRepack(distDir, server.runner, routes);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
onHTTPUpgrade && nodeServer.on("upgrade", onHTTPUpgrade);
|
|
55
|
+
return [
|
|
56
|
+
4,
|
|
57
|
+
server.runner.beforeServerInit({
|
|
58
|
+
app: nodeServer
|
|
59
|
+
})
|
|
60
|
+
];
|
|
61
|
+
case 3:
|
|
62
|
+
_state.sent();
|
|
63
|
+
return [
|
|
64
|
+
4,
|
|
65
|
+
initProdMiddlewares(server, prodServerOptions)
|
|
66
|
+
];
|
|
67
|
+
case 4:
|
|
68
|
+
_state.sent();
|
|
69
|
+
if (dev.watch) {
|
|
70
|
+
watchOptions = config.server.watchOptions;
|
|
71
|
+
watcher = startWatcher({
|
|
72
|
+
pwd,
|
|
73
|
+
distDir,
|
|
74
|
+
apiDir,
|
|
75
|
+
sharedDir,
|
|
76
|
+
watchOptions,
|
|
77
|
+
server
|
|
78
|
+
});
|
|
79
|
+
closeCb.push(watcher.close.bind(watcher));
|
|
80
|
+
}
|
|
81
|
+
closeCb.length > 0 && nodeServer.on("close", function() {
|
|
82
|
+
closeCb.forEach(function(cb) {
|
|
83
|
+
cb();
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
return [
|
|
87
|
+
2,
|
|
88
|
+
nodeServer
|
|
89
|
+
];
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
return function createDevServer2(options, initProdMiddlewares) {
|
|
94
|
+
return _ref.apply(this, arguments);
|
|
95
|
+
};
|
|
96
|
+
}();
|
|
97
|
+
export {
|
|
98
|
+
createDevServer
|
|
99
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { merge } from "@modern-js/utils/lodash";
|
|
2
|
+
import { getDefaultDevOptions } from "./constants";
|
|
3
|
+
var getDevOptions = function(options) {
|
|
4
|
+
var devOptions = options.dev;
|
|
5
|
+
var defaultOptions = getDefaultDevOptions();
|
|
6
|
+
return merge(defaultOptions, devOptions);
|
|
7
|
+
};
|
|
8
|
+
export {
|
|
9
|
+
getDevOptions
|
|
10
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
|
+
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
3
|
+
import { fileReader } from "@modern-js/runtime-utils/fileReader";
|
|
4
|
+
var initFileReader = function() {
|
|
5
|
+
var isInit = false;
|
|
6
|
+
return function() {
|
|
7
|
+
var _ref = _async_to_generator(function(ctx, next) {
|
|
8
|
+
var _res_locals, res, _res_locals_webpack, webpackDevMid, outputFileSystem;
|
|
9
|
+
return _ts_generator(this, function(_state) {
|
|
10
|
+
if (isInit) {
|
|
11
|
+
return [
|
|
12
|
+
2,
|
|
13
|
+
next()
|
|
14
|
+
];
|
|
15
|
+
}
|
|
16
|
+
isInit = true;
|
|
17
|
+
res = ctx.env.node.res;
|
|
18
|
+
if (!((_res_locals = res.locals) === null || _res_locals === void 0 ? void 0 : _res_locals.webpack)) {
|
|
19
|
+
fileReader.reset();
|
|
20
|
+
return [
|
|
21
|
+
2,
|
|
22
|
+
next()
|
|
23
|
+
];
|
|
24
|
+
}
|
|
25
|
+
_res_locals_webpack = res.locals.webpack, webpackDevMid = _res_locals_webpack.devMiddleware;
|
|
26
|
+
outputFileSystem = webpackDevMid.outputFileSystem;
|
|
27
|
+
if (outputFileSystem) {
|
|
28
|
+
fileReader.reset(outputFileSystem);
|
|
29
|
+
} else {
|
|
30
|
+
fileReader.reset();
|
|
31
|
+
}
|
|
32
|
+
return [
|
|
33
|
+
2,
|
|
34
|
+
next()
|
|
35
|
+
];
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
return function(ctx, next) {
|
|
39
|
+
return _ref.apply(this, arguments);
|
|
40
|
+
};
|
|
41
|
+
}();
|
|
42
|
+
};
|
|
43
|
+
export {
|
|
44
|
+
initFileReader
|
|
45
|
+
};
|