@modern-js/server 2.48.5 → 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
|
@@ -1,346 +0,0 @@
|
|
|
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 devServerOld_exports = {};
|
|
30
|
-
__export(devServerOld_exports, {
|
|
31
|
-
ModernDevServer: () => ModernDevServer
|
|
32
|
-
});
|
|
33
|
-
module.exports = __toCommonJS(devServerOld_exports);
|
|
34
|
-
var import_http = require("http");
|
|
35
|
-
var import_path = __toESM(require("path"));
|
|
36
|
-
var import_https = require("https");
|
|
37
|
-
var import_utils = require("@modern-js/utils");
|
|
38
|
-
var import_prod_server = require("@modern-js/prod-server");
|
|
39
|
-
var import_lodash = require("@modern-js/utils/lodash");
|
|
40
|
-
var import_fileReader = require("@modern-js/runtime-utils/fileReader");
|
|
41
|
-
var import_constants = require("../constants");
|
|
42
|
-
var import_mock = require("../dev-tools/mock");
|
|
43
|
-
var import_register = require("../dev-tools/register");
|
|
44
|
-
var import_watcher = __toESM(require("../dev-tools/watcher"));
|
|
45
|
-
var import_dev_middleware = __toESM(require("../dev-tools/dev-middleware"));
|
|
46
|
-
var import_workerSSRRender = require("./workerSSRRender");
|
|
47
|
-
class ModernDevServer extends import_prod_server.ModernServer {
|
|
48
|
-
getDevOptions(options) {
|
|
49
|
-
const devOptions = typeof options.dev === "boolean" ? {} : options.dev;
|
|
50
|
-
const defaultOptions = (0, import_constants.getDefaultDevOptions)();
|
|
51
|
-
return (0, import_lodash.merge)(defaultOptions, devOptions);
|
|
52
|
-
}
|
|
53
|
-
addMiddlewareHandler(handlers) {
|
|
54
|
-
handlers.forEach((handler) => {
|
|
55
|
-
this.addHandler((ctx, next) => {
|
|
56
|
-
const { req, res } = ctx;
|
|
57
|
-
return handler(req, res, next);
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
applySetupMiddlewares() {
|
|
62
|
-
const setupMiddlewares = this.dev.setupMiddlewares || [];
|
|
63
|
-
const serverOptions = {
|
|
64
|
-
sockWrite: (type, data) => this.devMiddleware.sockWrite(type, data)
|
|
65
|
-
};
|
|
66
|
-
const befores = [];
|
|
67
|
-
const afters = [];
|
|
68
|
-
setupMiddlewares.forEach((handler) => {
|
|
69
|
-
handler({
|
|
70
|
-
unshift: (...handlers) => befores.unshift(...handlers),
|
|
71
|
-
push: (...handlers) => afters.push(...handlers)
|
|
72
|
-
}, serverOptions);
|
|
73
|
-
});
|
|
74
|
-
return {
|
|
75
|
-
befores,
|
|
76
|
-
afters
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
// Complete the preparation of services
|
|
80
|
-
async onInit(runner, app) {
|
|
81
|
-
this.runner = runner;
|
|
82
|
-
const { dev } = this;
|
|
83
|
-
const { befores, afters } = this.applySetupMiddlewares();
|
|
84
|
-
const beforeHandlers = this.dev.before || [];
|
|
85
|
-
this.addMiddlewareHandler([
|
|
86
|
-
...beforeHandlers,
|
|
87
|
-
...befores
|
|
88
|
-
]);
|
|
89
|
-
await this.applyDefaultMiddlewares(app);
|
|
90
|
-
const afterHandlers = this.dev.after || [];
|
|
91
|
-
this.addMiddlewareHandler([
|
|
92
|
-
...afters,
|
|
93
|
-
...afterHandlers
|
|
94
|
-
]);
|
|
95
|
-
this.initFileReader();
|
|
96
|
-
await super.onInit(runner, app);
|
|
97
|
-
if (dev.watch) {
|
|
98
|
-
this.startWatcher();
|
|
99
|
-
app.on("close", async () => {
|
|
100
|
-
var _this_watcher;
|
|
101
|
-
await ((_this_watcher = this.watcher) === null || _this_watcher === void 0 ? void 0 : _this_watcher.close());
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
// override the ModernServer renderHandler logic
|
|
106
|
-
getRenderHandler() {
|
|
107
|
-
if (this.useSSRWorker) {
|
|
108
|
-
var _this_conf_server, _conf_security;
|
|
109
|
-
const { distDir, staticGenerate, conf, metaName } = this;
|
|
110
|
-
const ssrConfig = (_this_conf_server = this.conf.server) === null || _this_conf_server === void 0 ? void 0 : _this_conf_server.ssr;
|
|
111
|
-
const forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
|
|
112
|
-
return (0, import_prod_server.createRenderHandler)({
|
|
113
|
-
ssrRender: import_workerSSRRender.workerSSRRender,
|
|
114
|
-
distDir,
|
|
115
|
-
staticGenerate,
|
|
116
|
-
conf,
|
|
117
|
-
forceCSR,
|
|
118
|
-
nonce: (_conf_security = conf.security) === null || _conf_security === void 0 ? void 0 : _conf_security.nonce,
|
|
119
|
-
metaName
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
return super.getRenderHandler();
|
|
123
|
-
}
|
|
124
|
-
initFileReader() {
|
|
125
|
-
var _this_dev_devMiddleware, _this_dev;
|
|
126
|
-
let isInit = false;
|
|
127
|
-
if (((_this_dev = this.dev) === null || _this_dev === void 0 ? void 0 : (_this_dev_devMiddleware = _this_dev.devMiddleware) === null || _this_dev_devMiddleware === void 0 ? void 0 : _this_dev_devMiddleware.writeToDisk) === false) {
|
|
128
|
-
this.addHandler((ctx, next) => {
|
|
129
|
-
var _ctx_res_locals;
|
|
130
|
-
if (isInit) {
|
|
131
|
-
return next();
|
|
132
|
-
}
|
|
133
|
-
isInit = true;
|
|
134
|
-
if (!((_ctx_res_locals = ctx.res.locals) === null || _ctx_res_locals === void 0 ? void 0 : _ctx_res_locals.webpack)) {
|
|
135
|
-
import_fileReader.fileReader.reset();
|
|
136
|
-
return next();
|
|
137
|
-
}
|
|
138
|
-
const { devMiddleware: webpackDevMid } = ctx.res.locals.webpack;
|
|
139
|
-
const { outputFileSystem } = webpackDevMid;
|
|
140
|
-
if (outputFileSystem) {
|
|
141
|
-
import_fileReader.fileReader.reset(outputFileSystem);
|
|
142
|
-
} else {
|
|
143
|
-
import_fileReader.fileReader.reset();
|
|
144
|
-
}
|
|
145
|
-
return next();
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
async applyDefaultMiddlewares(app) {
|
|
150
|
-
const { pwd, dev, devMiddleware, conf } = this;
|
|
151
|
-
const isUseStreamingSSR = (routes) => routes === null || routes === void 0 ? void 0 : routes.some((r) => r.isStream === true);
|
|
152
|
-
const isUseSSRPreload = () => {
|
|
153
|
-
const { server: { ssr, ssrByEntries } } = conf;
|
|
154
|
-
const checkUsePreload = (ssr2) => typeof ssr2 === "object" && Boolean(ssr2.preload);
|
|
155
|
-
return checkUsePreload(ssr) || Object.values(ssrByEntries || {}).some((ssr2) => checkUsePreload(ssr2));
|
|
156
|
-
};
|
|
157
|
-
if (!isUseStreamingSSR(this.getRoutes()) && !isUseSSRPreload() && dev.compress) {
|
|
158
|
-
const { default: compression } = await Promise.resolve().then(() => __toESM(require("http-compression")));
|
|
159
|
-
this.addHandler((ctx, next) => {
|
|
160
|
-
compression({
|
|
161
|
-
gzip: true,
|
|
162
|
-
brotli: false
|
|
163
|
-
})(ctx.req, ctx.res, next);
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
this.addHandler((ctx, next) => {
|
|
167
|
-
ctx.res.setHeader("Access-Control-Allow-Origin", "*");
|
|
168
|
-
if (ctx.path.includes("hot-update")) {
|
|
169
|
-
ctx.res.setHeader("Access-Control-Allow-Credentials", "false");
|
|
170
|
-
}
|
|
171
|
-
const confHeaders = dev.headers;
|
|
172
|
-
if (confHeaders) {
|
|
173
|
-
for (const [key, value] of Object.entries(confHeaders)) {
|
|
174
|
-
ctx.res.setHeader(key, value);
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
next();
|
|
178
|
-
});
|
|
179
|
-
this.mockHandler = (0, import_mock.createMockHandler)({
|
|
180
|
-
pwd
|
|
181
|
-
});
|
|
182
|
-
this.addHandler((ctx, next) => {
|
|
183
|
-
if (this.mockHandler) {
|
|
184
|
-
this.mockHandler(ctx, next);
|
|
185
|
-
} else {
|
|
186
|
-
next();
|
|
187
|
-
}
|
|
188
|
-
});
|
|
189
|
-
if (dev.proxy) {
|
|
190
|
-
const { handlers, handleUpgrade } = (0, import_prod_server.createProxyHandler)(dev.proxy);
|
|
191
|
-
app && handleUpgrade(app);
|
|
192
|
-
handlers.forEach((handler) => {
|
|
193
|
-
this.addHandler(handler);
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
devMiddleware.init(app);
|
|
197
|
-
devMiddleware.on("change", (stats) => {
|
|
198
|
-
if (stats.toJson({
|
|
199
|
-
all: false
|
|
200
|
-
}).name !== "server") {
|
|
201
|
-
this.onRepack({
|
|
202
|
-
routes: this.getRoutes()
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
});
|
|
206
|
-
this.addHandler((ctx, next) => {
|
|
207
|
-
const { req, res } = ctx;
|
|
208
|
-
if (devMiddleware.middleware) {
|
|
209
|
-
devMiddleware.middleware(req, res, next);
|
|
210
|
-
} else {
|
|
211
|
-
next();
|
|
212
|
-
}
|
|
213
|
-
});
|
|
214
|
-
if (dev.historyApiFallback) {
|
|
215
|
-
const { default: connectHistoryApiFallback } = await Promise.resolve().then(() => __toESM(require("connect-history-api-fallback")));
|
|
216
|
-
const historyApiFallbackMiddleware = connectHistoryApiFallback(typeof dev.historyApiFallback === "boolean" ? {} : dev.historyApiFallback);
|
|
217
|
-
this.addHandler((ctx, next) => historyApiFallbackMiddleware(ctx.req, ctx.res, next));
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
onRepack(options = {}) {
|
|
221
|
-
if (Array.isArray(options.routes)) {
|
|
222
|
-
this.router.reset(this.filterRoutes(options.routes));
|
|
223
|
-
}
|
|
224
|
-
this.cleanSSRCache();
|
|
225
|
-
import_fileReader.fileReader.reset();
|
|
226
|
-
this.runner.repack();
|
|
227
|
-
super.onRepack(options);
|
|
228
|
-
}
|
|
229
|
-
async createHTTPServer(handler) {
|
|
230
|
-
const { dev } = this;
|
|
231
|
-
const devHttpsOption = typeof dev === "object" && dev.https;
|
|
232
|
-
if (devHttpsOption) {
|
|
233
|
-
const { genHttpsOptions } = require("../dev-tools/https");
|
|
234
|
-
const httpsOptions = await genHttpsOptions(devHttpsOption, this.pwd);
|
|
235
|
-
return (0, import_https.createServer)(httpsOptions, handler);
|
|
236
|
-
} else {
|
|
237
|
-
return (0, import_http.createServer)(handler);
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
warmupSSRBundle() {
|
|
241
|
-
}
|
|
242
|
-
async onServerChange({ filepath, event }) {
|
|
243
|
-
const { pwd } = this;
|
|
244
|
-
const { mock } = import_prod_server.AGGRED_DIR;
|
|
245
|
-
const mockPath = import_path.default.normalize(import_path.default.join(pwd, mock));
|
|
246
|
-
this.runner.reset();
|
|
247
|
-
if (filepath.startsWith(mockPath)) {
|
|
248
|
-
this.mockHandler = (0, import_mock.createMockHandler)({
|
|
249
|
-
pwd
|
|
250
|
-
});
|
|
251
|
-
} else {
|
|
252
|
-
try {
|
|
253
|
-
const success = this.runner.onApiChange([
|
|
254
|
-
{
|
|
255
|
-
filename: filepath,
|
|
256
|
-
event
|
|
257
|
-
}
|
|
258
|
-
]);
|
|
259
|
-
if (success !== true) {
|
|
260
|
-
await super.onServerChange({
|
|
261
|
-
filepath
|
|
262
|
-
});
|
|
263
|
-
}
|
|
264
|
-
} catch (e) {
|
|
265
|
-
this.logger.error(e);
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
createContext(req, res) {
|
|
270
|
-
return super.createContext(req, res, {
|
|
271
|
-
etag: true,
|
|
272
|
-
metaName: this.metaName
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
setupStaticMiddleware(_) {
|
|
276
|
-
return async (context, next) => {
|
|
277
|
-
return next();
|
|
278
|
-
};
|
|
279
|
-
}
|
|
280
|
-
cleanSSRCache() {
|
|
281
|
-
const { distDir } = this;
|
|
282
|
-
const bundles = this.router.getBundles();
|
|
283
|
-
bundles.forEach((bundle) => {
|
|
284
|
-
const filepath = import_path.default.join(distDir, bundle);
|
|
285
|
-
if (require.cache[filepath]) {
|
|
286
|
-
delete require.cache[filepath];
|
|
287
|
-
}
|
|
288
|
-
});
|
|
289
|
-
const loadable = import_path.default.join(distDir, import_utils.LOADABLE_STATS_FILE);
|
|
290
|
-
if (require.cache[loadable]) {
|
|
291
|
-
delete require.cache[loadable];
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
startWatcher() {
|
|
295
|
-
var _this_conf_server;
|
|
296
|
-
const { pwd, distDir, appContext } = this;
|
|
297
|
-
const { mock } = import_prod_server.AGGRED_DIR;
|
|
298
|
-
const apiDir = (appContext === null || appContext === void 0 ? void 0 : appContext.apiDirectory) || import_utils.API_DIR;
|
|
299
|
-
const sharedDir = (appContext === null || appContext === void 0 ? void 0 : appContext.sharedDirectory) || import_utils.SHARED_DIR;
|
|
300
|
-
const defaultWatched = [
|
|
301
|
-
`${mock}/**/*`,
|
|
302
|
-
`${import_utils.SERVER_DIR}/**/*`,
|
|
303
|
-
`${apiDir}/**`,
|
|
304
|
-
`${sharedDir}/**/*`,
|
|
305
|
-
`${distDir}/${import_utils.SERVER_BUNDLE_DIRECTORY}/*-server-loaders.js`
|
|
306
|
-
];
|
|
307
|
-
const watchOptions = (0, import_watcher.mergeWatchOptions)((_this_conf_server = this.conf.server) === null || _this_conf_server === void 0 ? void 0 : _this_conf_server.watchOptions);
|
|
308
|
-
const defaultWatchedPaths = defaultWatched.map((p) => {
|
|
309
|
-
const finalPath = import_path.default.isAbsolute(p) ? p : import_path.default.join(pwd, p);
|
|
310
|
-
return import_path.default.normalize(finalPath);
|
|
311
|
-
});
|
|
312
|
-
const watcher = new import_watcher.default();
|
|
313
|
-
watcher.createDepTree();
|
|
314
|
-
watcher.listen(defaultWatchedPaths, watchOptions, (filepath, event) => {
|
|
315
|
-
if (filepath.includes("-server-loaders.js")) {
|
|
316
|
-
delete require.cache[filepath];
|
|
317
|
-
return;
|
|
318
|
-
} else {
|
|
319
|
-
watcher.updateDepTree();
|
|
320
|
-
watcher.cleanDepCache(filepath);
|
|
321
|
-
}
|
|
322
|
-
this.onServerChange({
|
|
323
|
-
filepath,
|
|
324
|
-
event
|
|
325
|
-
});
|
|
326
|
-
});
|
|
327
|
-
this.watcher = watcher;
|
|
328
|
-
}
|
|
329
|
-
constructor(options) {
|
|
330
|
-
super(options);
|
|
331
|
-
this.mockHandler = null;
|
|
332
|
-
this.appContext = options.appContext;
|
|
333
|
-
this.workDir = this.pwd;
|
|
334
|
-
this.useSSRWorker = Boolean(options.useSSRWorker);
|
|
335
|
-
this.dev = this.getDevOptions(options);
|
|
336
|
-
this.devMiddleware = new import_dev_middleware.default({
|
|
337
|
-
dev: this.dev,
|
|
338
|
-
devMiddleware: options.devMiddleware
|
|
339
|
-
});
|
|
340
|
-
(0, import_register.enableRegister)(this.pwd, this.conf);
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
344
|
-
0 && (module.exports = {
|
|
345
|
-
ModernDevServer
|
|
346
|
-
});
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { HMR_SOCK_PATH } from "@modern-js/utils/universal/constants";
|
|
2
|
-
function createSocketUrl(resourceQuery) {
|
|
3
|
-
var searchParams = resourceQuery.substr(1).split("&");
|
|
4
|
-
var options = {};
|
|
5
|
-
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
6
|
-
try {
|
|
7
|
-
for (var _iterator = searchParams[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
8
|
-
var pair = _step.value;
|
|
9
|
-
var ary = pair.split("=");
|
|
10
|
-
options[ary[0]] = decodeURIComponent(ary[1]);
|
|
11
|
-
}
|
|
12
|
-
} catch (err) {
|
|
13
|
-
_didIteratorError = true;
|
|
14
|
-
_iteratorError = err;
|
|
15
|
-
} finally {
|
|
16
|
-
try {
|
|
17
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
18
|
-
_iterator.return();
|
|
19
|
-
}
|
|
20
|
-
} finally {
|
|
21
|
-
if (_didIteratorError) {
|
|
22
|
-
throw _iteratorError;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
var currentLocation = self.location;
|
|
27
|
-
return getSocketUrl(options, currentLocation);
|
|
28
|
-
}
|
|
29
|
-
function formatURL(param) {
|
|
30
|
-
var port = param.port, protocol = param.protocol, hostname = param.hostname, pathname = param.pathname;
|
|
31
|
-
if (typeof URL !== "undefined") {
|
|
32
|
-
var url = new URL("http://localhost");
|
|
33
|
-
url.port = port;
|
|
34
|
-
url.hostname = hostname;
|
|
35
|
-
url.protocol = protocol;
|
|
36
|
-
url.pathname = pathname;
|
|
37
|
-
return url.toString();
|
|
38
|
-
}
|
|
39
|
-
var colon = protocol.indexOf(":") === -1 ? ":" : "";
|
|
40
|
-
return "".concat(protocol).concat(colon, "//").concat(hostname, ":").concat(port).concat(pathname);
|
|
41
|
-
}
|
|
42
|
-
function getSocketUrl(urlParts, location) {
|
|
43
|
-
var host = urlParts.host, port = urlParts.port, path = urlParts.path, protocol = urlParts.protocol;
|
|
44
|
-
return formatURL({
|
|
45
|
-
protocol: protocol || (location.protocol === "https:" ? "wss" : "ws"),
|
|
46
|
-
hostname: host || location.hostname,
|
|
47
|
-
port: port || location.port,
|
|
48
|
-
pathname: path || HMR_SOCK_PATH
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
export {
|
|
52
|
-
createSocketUrl,
|
|
53
|
-
formatURL
|
|
54
|
-
};
|
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
2
|
-
var __commonJS = (cb, mod) => function __require() {
|
|
3
|
-
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
4
|
-
};
|
|
5
|
-
import stripAnsi from "@modern-js/utils/strip-ansi";
|
|
6
|
-
import { formatWebpackMessages } from "@modern-js/utils/universal/format-webpack";
|
|
7
|
-
import { createSocketUrl } from "./createSocketUrl";
|
|
8
|
-
var require_hmr_client = __commonJS({
|
|
9
|
-
"src/dev-tools/dev-middleware/hmr-client/index.ts"(exports, module) {
|
|
10
|
-
var hadRuntimeError = false;
|
|
11
|
-
var socketUrl = createSocketUrl(__resourceQuery);
|
|
12
|
-
var connection = new WebSocket(socketUrl);
|
|
13
|
-
connection.onopen = function() {
|
|
14
|
-
if (typeof console !== "undefined" && typeof console.info === "function") {
|
|
15
|
-
console.info("[HMR] connected.");
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
connection.onclose = function() {
|
|
19
|
-
if (typeof console !== "undefined" && typeof console.info === "function") {
|
|
20
|
-
console.info("[HMR] disconnected. Refresh the page if necessary.");
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
var isFirstCompilation = true;
|
|
24
|
-
var mostRecentCompilationHash = null;
|
|
25
|
-
var hasCompileErrors = false;
|
|
26
|
-
function clearOutdatedErrors() {
|
|
27
|
-
if (typeof console !== "undefined" && typeof console.clear === "function") {
|
|
28
|
-
if (hasCompileErrors) {
|
|
29
|
-
console.clear();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
function handleSuccess() {
|
|
34
|
-
clearOutdatedErrors();
|
|
35
|
-
var isHotUpdate = !isFirstCompilation;
|
|
36
|
-
isFirstCompilation = false;
|
|
37
|
-
hasCompileErrors = false;
|
|
38
|
-
if (isHotUpdate) {
|
|
39
|
-
tryApplyUpdates();
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
function handleWarnings(warnings) {
|
|
43
|
-
clearOutdatedErrors();
|
|
44
|
-
var isHotUpdate = !isFirstCompilation;
|
|
45
|
-
isFirstCompilation = false;
|
|
46
|
-
hasCompileErrors = false;
|
|
47
|
-
function printWarnings() {
|
|
48
|
-
var formatted = formatWebpackMessages({
|
|
49
|
-
warnings,
|
|
50
|
-
errors: []
|
|
51
|
-
});
|
|
52
|
-
if (typeof console !== "undefined" && typeof console.warn === "function") {
|
|
53
|
-
for (var i = 0; i < formatted.warnings.length; i++) {
|
|
54
|
-
if (i === 5) {
|
|
55
|
-
console.warn("There were more warnings in other files.\nYou can find a complete log in the terminal.");
|
|
56
|
-
break;
|
|
57
|
-
}
|
|
58
|
-
console.warn(stripAnsi(formatted.warnings[i]));
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
printWarnings();
|
|
63
|
-
if (isHotUpdate) {
|
|
64
|
-
tryApplyUpdates();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
function handleErrors(errors) {
|
|
68
|
-
clearOutdatedErrors();
|
|
69
|
-
isFirstCompilation = false;
|
|
70
|
-
hasCompileErrors = true;
|
|
71
|
-
var formatted = formatWebpackMessages({
|
|
72
|
-
errors,
|
|
73
|
-
warnings: []
|
|
74
|
-
});
|
|
75
|
-
if (typeof console !== "undefined" && typeof console.error === "function") {
|
|
76
|
-
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
|
|
77
|
-
try {
|
|
78
|
-
for (var _iterator = formatted.errors[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
|
79
|
-
var error = _step.value;
|
|
80
|
-
console.error(stripAnsi(error));
|
|
81
|
-
}
|
|
82
|
-
} catch (err) {
|
|
83
|
-
_didIteratorError = true;
|
|
84
|
-
_iteratorError = err;
|
|
85
|
-
} finally {
|
|
86
|
-
try {
|
|
87
|
-
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
88
|
-
_iterator.return();
|
|
89
|
-
}
|
|
90
|
-
} finally {
|
|
91
|
-
if (_didIteratorError) {
|
|
92
|
-
throw _iteratorError;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
function handleAvailableHash(hash) {
|
|
99
|
-
mostRecentCompilationHash = hash;
|
|
100
|
-
}
|
|
101
|
-
connection.onmessage = function(e) {
|
|
102
|
-
var message = JSON.parse(e.data);
|
|
103
|
-
switch (message.type) {
|
|
104
|
-
case "hash":
|
|
105
|
-
handleAvailableHash(message.data);
|
|
106
|
-
break;
|
|
107
|
-
case "still-ok":
|
|
108
|
-
case "ok":
|
|
109
|
-
handleSuccess();
|
|
110
|
-
break;
|
|
111
|
-
case "content-changed":
|
|
112
|
-
window.location.reload();
|
|
113
|
-
break;
|
|
114
|
-
case "warnings":
|
|
115
|
-
handleWarnings(message.data);
|
|
116
|
-
break;
|
|
117
|
-
case "errors":
|
|
118
|
-
handleErrors(message.data);
|
|
119
|
-
break;
|
|
120
|
-
default:
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
function isUpdateAvailable() {
|
|
124
|
-
return mostRecentCompilationHash !== __webpack_hash__;
|
|
125
|
-
}
|
|
126
|
-
function canApplyUpdates() {
|
|
127
|
-
return module.hot.status() === "idle";
|
|
128
|
-
}
|
|
129
|
-
function tryApplyUpdates() {
|
|
130
|
-
if (!module.hot) {
|
|
131
|
-
window.location.reload();
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
if (!isUpdateAvailable() || !canApplyUpdates()) {
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
function handleApplyUpdates(err, updatedModules) {
|
|
138
|
-
var wantsForcedReload = err || !updatedModules || hadRuntimeError;
|
|
139
|
-
if (wantsForcedReload) {
|
|
140
|
-
window.location.reload();
|
|
141
|
-
return;
|
|
142
|
-
}
|
|
143
|
-
if (isUpdateAvailable()) {
|
|
144
|
-
tryApplyUpdates();
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
var result = module.hot.check(
|
|
148
|
-
/* autoApply */
|
|
149
|
-
true,
|
|
150
|
-
handleApplyUpdates
|
|
151
|
-
);
|
|
152
|
-
if (result === null || result === void 0 ? void 0 : result.then) {
|
|
153
|
-
result.then(function(updatedModules) {
|
|
154
|
-
handleApplyUpdates(null, updatedModules);
|
|
155
|
-
}, function(err) {
|
|
156
|
-
handleApplyUpdates(err, null);
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
});
|
|
162
|
-
export default require_hmr_client();
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
|
|
2
|
-
import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
|
|
3
|
-
import { _ as _inherits } from "@swc/helpers/_/_inherits";
|
|
4
|
-
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
|
|
5
|
-
import { _ as _create_super } from "@swc/helpers/_/_create_super";
|
|
6
|
-
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
|
|
7
|
-
import { EventEmitter } from "events";
|
|
8
|
-
import SocketServer from "./socketServer";
|
|
9
|
-
var noop = function() {
|
|
10
|
-
};
|
|
11
|
-
function getHMRClientPath(client) {
|
|
12
|
-
var protocol = (client === null || client === void 0 ? void 0 : client.protocol) ? "&protocol=".concat(client.protocol) : "";
|
|
13
|
-
var host = (client === null || client === void 0 ? void 0 : client.host) ? "&host=".concat(client.host) : "";
|
|
14
|
-
var path = (client === null || client === void 0 ? void 0 : client.path) ? "&path=".concat(client.path) : "";
|
|
15
|
-
var port = (client === null || client === void 0 ? void 0 : client.port) ? "&port=".concat(client.port) : "";
|
|
16
|
-
var clientEntry = "".concat(require.resolve("@modern-js/server/hmr-client"), "?").concat(host).concat(path).concat(port).concat(protocol);
|
|
17
|
-
return clientEntry;
|
|
18
|
-
}
|
|
19
|
-
var DevMiddleware = /* @__PURE__ */ function(EventEmitter2) {
|
|
20
|
-
"use strict";
|
|
21
|
-
_inherits(DevMiddleware2, EventEmitter2);
|
|
22
|
-
var _super = _create_super(DevMiddleware2);
|
|
23
|
-
function DevMiddleware2(param) {
|
|
24
|
-
var dev = param.dev, devMiddleware = param.devMiddleware;
|
|
25
|
-
_class_call_check(this, DevMiddleware2);
|
|
26
|
-
var _this;
|
|
27
|
-
_this = _super.call(this);
|
|
28
|
-
_this.devOptions = dev;
|
|
29
|
-
_this.socketServer = new SocketServer(dev);
|
|
30
|
-
if (devMiddleware) {
|
|
31
|
-
_this.middleware = _this.setupDevMiddleware(devMiddleware);
|
|
32
|
-
}
|
|
33
|
-
return _this;
|
|
34
|
-
}
|
|
35
|
-
var _proto = DevMiddleware2.prototype;
|
|
36
|
-
_proto.init = function init(app) {
|
|
37
|
-
var _this = this;
|
|
38
|
-
app.on("listening", function() {
|
|
39
|
-
_this.socketServer.prepare(app);
|
|
40
|
-
});
|
|
41
|
-
var _this1 = this;
|
|
42
|
-
app.on("close", /* @__PURE__ */ _async_to_generator(function() {
|
|
43
|
-
var _this_middleware;
|
|
44
|
-
return _ts_generator(this, function(_state) {
|
|
45
|
-
(_this_middleware = _this1.middleware) === null || _this_middleware === void 0 ? void 0 : _this_middleware.close(noop);
|
|
46
|
-
_this1.socketServer.close();
|
|
47
|
-
return [
|
|
48
|
-
2
|
|
49
|
-
];
|
|
50
|
-
});
|
|
51
|
-
}));
|
|
52
|
-
};
|
|
53
|
-
_proto.sockWrite = function sockWrite(type, data) {
|
|
54
|
-
this.socketServer.sockWrite(type, data);
|
|
55
|
-
};
|
|
56
|
-
_proto.setupDevMiddleware = function setupDevMiddleware(devMiddleware) {
|
|
57
|
-
var _this = this;
|
|
58
|
-
var devOptions = this.devOptions;
|
|
59
|
-
var callbacks = {
|
|
60
|
-
onInvalid: function() {
|
|
61
|
-
_this.socketServer.sockWrite("invalid");
|
|
62
|
-
},
|
|
63
|
-
onDone: function(stats) {
|
|
64
|
-
_this.socketServer.updateStats(stats);
|
|
65
|
-
_this.emit("change", stats);
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
var enableHMR = this.devOptions.hot || this.devOptions.liveReload;
|
|
69
|
-
var middleware = devMiddleware(_object_spread({
|
|
70
|
-
headers: devOptions.headers,
|
|
71
|
-
stats: false,
|
|
72
|
-
callbacks,
|
|
73
|
-
hmrClientPath: enableHMR ? getHMRClientPath(devOptions.client) : void 0,
|
|
74
|
-
serverSideRender: true
|
|
75
|
-
}, devOptions.devMiddleware));
|
|
76
|
-
return middleware;
|
|
77
|
-
};
|
|
78
|
-
return DevMiddleware2;
|
|
79
|
-
}(EventEmitter);
|
|
80
|
-
export {
|
|
81
|
-
DevMiddleware as default
|
|
82
|
-
};
|