@modern-js/server 2.4.1-beta.0 → 2.5.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/CHANGELOG.md +23 -4
- package/dist/{js/node → cjs}/constants.js +0 -0
- package/dist/{js/node → cjs}/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -0
- package/dist/{js/node → cjs}/dev-tools/dev-middleware/hmr-client/index.js +0 -0
- package/dist/{js/node → cjs}/dev-tools/dev-middleware/index.js +6 -39
- package/dist/{js/node → cjs}/dev-tools/dev-middleware/socket-server.js +0 -0
- package/dist/{js/node → cjs}/dev-tools/https/index.js +4 -24
- package/dist/{js/node → cjs}/dev-tools/mock/getMockData.js +9 -53
- package/dist/{js/node → cjs}/dev-tools/mock/index.js +19 -23
- package/dist/{js/node → cjs}/dev-tools/register/index.js +10 -23
- package/dist/{js/node → cjs}/dev-tools/watcher/dependency-tree.js +0 -0
- package/dist/{js/node → cjs}/dev-tools/watcher/index.js +7 -16
- package/dist/{js/node → cjs}/dev-tools/watcher/stats-cache.js +0 -0
- package/dist/{js/node → cjs}/index.js +0 -0
- package/dist/{js/node → cjs}/server/dev-server.js +92 -135
- package/dist/{js/node → cjs}/server/index.js +0 -0
- package/dist/{js/node → cjs}/types.js +0 -0
- package/dist/{js/treeshaking → esm}/constants.js +0 -0
- package/dist/{js/treeshaking → esm}/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -0
- package/dist/{js/treeshaking → esm}/dev-tools/dev-middleware/hmr-client/index.js +0 -0
- package/dist/{js/treeshaking → esm}/dev-tools/dev-middleware/index.js +0 -0
- package/dist/{js/treeshaking → esm}/dev-tools/dev-middleware/socket-server.js +0 -0
- package/dist/{js/treeshaking → esm}/dev-tools/https/index.js +0 -0
- package/dist/{js/treeshaking → esm}/dev-tools/mock/getMockData.js +1 -10
- package/dist/{js/treeshaking → esm}/dev-tools/mock/index.js +19 -3
- package/dist/{js/treeshaking → esm}/dev-tools/register/index.js +1 -0
- package/dist/{js/treeshaking → esm}/dev-tools/watcher/dependency-tree.js +0 -0
- package/dist/{js/treeshaking → esm}/dev-tools/watcher/index.js +0 -0
- package/dist/{js/treeshaking → esm}/dev-tools/watcher/stats-cache.js +0 -0
- package/dist/{js/treeshaking → esm}/index.js +0 -0
- package/dist/{js/treeshaking → esm}/server/dev-server.js +1 -0
- package/dist/{js/treeshaking → esm}/server/index.js +0 -0
- package/dist/{js/treeshaking → esm}/types.js +0 -0
- package/dist/{js/modern → esm-node}/constants.js +0 -0
- package/dist/{js/modern → esm-node}/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -0
- package/dist/{js/modern → esm-node}/dev-tools/dev-middleware/hmr-client/index.js +0 -0
- package/dist/{js/modern → esm-node}/dev-tools/dev-middleware/index.js +6 -41
- package/dist/{js/modern → esm-node}/dev-tools/dev-middleware/socket-server.js +0 -0
- package/dist/{js/modern → esm-node}/dev-tools/https/index.js +4 -24
- package/dist/esm-node/dev-tools/mock/getMockData.js +68 -0
- package/dist/{js/modern → esm-node}/dev-tools/mock/index.js +20 -24
- package/dist/{js/modern → esm-node}/dev-tools/register/index.js +10 -25
- package/dist/{js/modern → esm-node}/dev-tools/watcher/dependency-tree.js +0 -0
- package/dist/{js/modern → esm-node}/dev-tools/watcher/index.js +7 -18
- package/dist/{js/modern → esm-node}/dev-tools/watcher/stats-cache.js +0 -0
- package/dist/{js/modern → esm-node}/index.js +0 -0
- package/dist/esm-node/server/dev-server.js +247 -0
- package/dist/{js/modern → esm-node}/server/index.js +0 -0
- package/dist/{js/modern → esm-node}/types.js +0 -0
- package/dist/types/dev-tools/mock/getMockData.d.ts +1 -1
- package/package.json +13 -14
- package/dist/js/modern/dev-tools/mock/getMockData.js +0 -114
- package/dist/js/modern/server/dev-server.js +0 -293
|
@@ -1,27 +1,9 @@
|
|
|
1
1
|
var __create = Object.create;
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
|
-
var __defProps = Object.defineProperties;
|
|
4
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
5
|
var __getProtoOf = Object.getPrototypeOf;
|
|
9
6
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
-
var __reflectGet = Reflect.get;
|
|
12
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
13
|
-
var __spreadValues = (a, b) => {
|
|
14
|
-
for (var prop in b || (b = {}))
|
|
15
|
-
if (__hasOwnProp.call(b, prop))
|
|
16
|
-
__defNormalProp(a, prop, b[prop]);
|
|
17
|
-
if (__getOwnPropSymbols)
|
|
18
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
19
|
-
if (__propIsEnum.call(b, prop))
|
|
20
|
-
__defNormalProp(a, prop, b[prop]);
|
|
21
|
-
}
|
|
22
|
-
return a;
|
|
23
|
-
};
|
|
24
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
25
7
|
var __export = (target, all) => {
|
|
26
8
|
for (var name in all)
|
|
27
9
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -39,27 +21,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
39
21
|
mod
|
|
40
22
|
));
|
|
41
23
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
42
|
-
var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
|
|
43
|
-
var __async = (__this, __arguments, generator) => {
|
|
44
|
-
return new Promise((resolve, reject) => {
|
|
45
|
-
var fulfilled = (value) => {
|
|
46
|
-
try {
|
|
47
|
-
step(generator.next(value));
|
|
48
|
-
} catch (e) {
|
|
49
|
-
reject(e);
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
var rejected = (value) => {
|
|
53
|
-
try {
|
|
54
|
-
step(generator.throw(value));
|
|
55
|
-
} catch (e) {
|
|
56
|
-
reject(e);
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
60
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
61
|
-
});
|
|
62
|
-
};
|
|
63
24
|
var dev_server_exports = {};
|
|
64
25
|
__export(dev_server_exports, {
|
|
65
26
|
ModernDevServer: () => ModernDevServer
|
|
@@ -91,9 +52,14 @@ class ModernDevServer extends import_prod_server.ModernServer {
|
|
|
91
52
|
getDevOptions(options) {
|
|
92
53
|
const devOptions = typeof options.dev === "boolean" ? {} : options.dev;
|
|
93
54
|
const defaultOptions = (0, import_constants2.getDefaultDevOptions)();
|
|
94
|
-
return
|
|
95
|
-
|
|
96
|
-
|
|
55
|
+
return {
|
|
56
|
+
...defaultOptions,
|
|
57
|
+
...devOptions,
|
|
58
|
+
client: {
|
|
59
|
+
...defaultOptions.client,
|
|
60
|
+
...devOptions == null ? void 0 : devOptions.client
|
|
61
|
+
}
|
|
62
|
+
};
|
|
97
63
|
}
|
|
98
64
|
addMiddlewareHandler(handlers) {
|
|
99
65
|
handlers.forEach((handler) => {
|
|
@@ -121,80 +87,76 @@ class ModernDevServer extends import_prod_server.ModernServer {
|
|
|
121
87
|
});
|
|
122
88
|
return { befores, afters };
|
|
123
89
|
}
|
|
124
|
-
onInit(runner, app) {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
142
|
-
});
|
|
90
|
+
async onInit(runner, app) {
|
|
91
|
+
this.runner = runner;
|
|
92
|
+
const { dev } = this;
|
|
93
|
+
const { befores, afters } = this.applySetupMiddlewares();
|
|
94
|
+
const beforeHandlers = await this.setupBeforeDevMiddleware();
|
|
95
|
+
this.addMiddlewareHandler([...beforeHandlers, ...befores]);
|
|
96
|
+
await this.applyDefaultMiddlewares(app);
|
|
97
|
+
const afterHandlers = await this.setupAfterDevMiddleware();
|
|
98
|
+
this.addMiddlewareHandler([...afters, ...afterHandlers]);
|
|
99
|
+
await super.onInit(runner, app);
|
|
100
|
+
if (dev.watch) {
|
|
101
|
+
this.startWatcher();
|
|
102
|
+
app.on("close", async () => {
|
|
103
|
+
var _a;
|
|
104
|
+
await ((_a = this.watcher) == null ? void 0 : _a.close());
|
|
105
|
+
});
|
|
106
|
+
}
|
|
143
107
|
}
|
|
144
|
-
applyDefaultMiddlewares(app) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
ctx.res.setHeader(key, value);
|
|
156
|
-
}
|
|
108
|
+
async applyDefaultMiddlewares(app) {
|
|
109
|
+
const { pwd, dev, devMiddleware } = this;
|
|
110
|
+
this.addHandler((ctx, next) => {
|
|
111
|
+
ctx.res.setHeader("Access-Control-Allow-Origin", "*");
|
|
112
|
+
if (ctx.path.includes("hot-update")) {
|
|
113
|
+
ctx.res.setHeader("Access-Control-Allow-Credentials", "false");
|
|
114
|
+
}
|
|
115
|
+
const confHeaders = dev.headers;
|
|
116
|
+
if (confHeaders) {
|
|
117
|
+
for (const [key, value] of Object.entries(confHeaders)) {
|
|
118
|
+
ctx.res.setHeader(key, value);
|
|
157
119
|
}
|
|
120
|
+
}
|
|
121
|
+
next();
|
|
122
|
+
});
|
|
123
|
+
this.mockHandler = (0, import_mock.createMockHandler)({ pwd });
|
|
124
|
+
this.addHandler((ctx, next) => {
|
|
125
|
+
if (this.mockHandler) {
|
|
126
|
+
this.mockHandler(ctx, next);
|
|
127
|
+
} else {
|
|
158
128
|
next();
|
|
159
|
-
});
|
|
160
|
-
this.mockHandler = (0, import_mock.createMockHandler)({ pwd });
|
|
161
|
-
this.addHandler((ctx, next) => {
|
|
162
|
-
if (this.mockHandler) {
|
|
163
|
-
this.mockHandler(ctx, next);
|
|
164
|
-
} else {
|
|
165
|
-
next();
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
const proxyHandlers = (0, import_prod_server.createProxyHandler)(dev.proxy);
|
|
169
|
-
if (proxyHandlers) {
|
|
170
|
-
proxyHandlers.forEach((handler) => {
|
|
171
|
-
this.addHandler(handler);
|
|
172
|
-
});
|
|
173
129
|
}
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
});
|
|
180
|
-
this.addHandler((ctx, next) => {
|
|
181
|
-
const { req, res } = ctx;
|
|
182
|
-
if (devMiddleware.middleware) {
|
|
183
|
-
devMiddleware.middleware(req, res, next);
|
|
184
|
-
} else {
|
|
185
|
-
next();
|
|
186
|
-
}
|
|
130
|
+
});
|
|
131
|
+
const proxyHandlers = (0, import_prod_server.createProxyHandler)(dev.proxy);
|
|
132
|
+
if (proxyHandlers) {
|
|
133
|
+
proxyHandlers.forEach((handler) => {
|
|
134
|
+
this.addHandler(handler);
|
|
187
135
|
});
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
);
|
|
193
|
-
this.addHandler(
|
|
194
|
-
(ctx, next) => historyApiFallbackMiddleware(ctx.req, ctx.res, next)
|
|
195
|
-
);
|
|
136
|
+
}
|
|
137
|
+
devMiddleware.init(app);
|
|
138
|
+
devMiddleware.on("change", (stats) => {
|
|
139
|
+
if (stats.toJson({ all: false }).name === "client") {
|
|
140
|
+
this.onRepack({ routes: this.getRoutes() });
|
|
196
141
|
}
|
|
197
142
|
});
|
|
143
|
+
this.addHandler((ctx, next) => {
|
|
144
|
+
const { req, res } = ctx;
|
|
145
|
+
if (devMiddleware.middleware) {
|
|
146
|
+
devMiddleware.middleware(req, res, next);
|
|
147
|
+
} else {
|
|
148
|
+
next();
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
if (dev.historyApiFallback) {
|
|
152
|
+
const { default: connectHistoryApiFallback } = await Promise.resolve().then(() => __toESM(require("connect-history-api-fallback")));
|
|
153
|
+
const historyApiFallbackMiddleware = connectHistoryApiFallback(
|
|
154
|
+
typeof dev.historyApiFallback === "boolean" ? {} : dev.historyApiFallback
|
|
155
|
+
);
|
|
156
|
+
this.addHandler(
|
|
157
|
+
(ctx, next) => historyApiFallbackMiddleware(ctx.req, ctx.res, next)
|
|
158
|
+
);
|
|
159
|
+
}
|
|
198
160
|
}
|
|
199
161
|
onRepack(options = {}) {
|
|
200
162
|
if (Array.isArray(options.routes)) {
|
|
@@ -202,20 +164,19 @@ class ModernDevServer extends import_prod_server.ModernServer {
|
|
|
202
164
|
}
|
|
203
165
|
this.cleanSSRCache();
|
|
204
166
|
this.reader.updateFile();
|
|
167
|
+
this.runner.repack();
|
|
205
168
|
super.onRepack(options);
|
|
206
169
|
}
|
|
207
|
-
createHTTPServer(handler) {
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
}
|
|
218
|
-
});
|
|
170
|
+
async createHTTPServer(handler) {
|
|
171
|
+
const { dev } = this;
|
|
172
|
+
const devHttpsOption = typeof dev === "object" && dev.https;
|
|
173
|
+
if (devHttpsOption) {
|
|
174
|
+
const { genHttpsOptions } = require("../dev-tools/https");
|
|
175
|
+
const httpsOptions = await genHttpsOptions(devHttpsOption, this.pwd);
|
|
176
|
+
return (0, import_https.createServer)(httpsOptions, handler);
|
|
177
|
+
} else {
|
|
178
|
+
return (0, import_http.createServer)(handler);
|
|
179
|
+
}
|
|
219
180
|
}
|
|
220
181
|
warmupSSRBundle() {
|
|
221
182
|
}
|
|
@@ -245,21 +206,17 @@ class ModernDevServer extends import_prod_server.ModernServer {
|
|
|
245
206
|
createContext(req, res) {
|
|
246
207
|
return super.createContext(req, res, { etag: true });
|
|
247
208
|
}
|
|
248
|
-
setupBeforeDevMiddleware() {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
return [...setupMids, ...pluginMids].flat();
|
|
254
|
-
});
|
|
209
|
+
async setupBeforeDevMiddleware() {
|
|
210
|
+
const { runner, conf, dev } = this;
|
|
211
|
+
const setupMids = dev.before || [];
|
|
212
|
+
const pluginMids = await runner.beforeDevServer(conf);
|
|
213
|
+
return [...setupMids, ...pluginMids].flat();
|
|
255
214
|
}
|
|
256
|
-
setupAfterDevMiddleware() {
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
return [...pluginMids, ...setupMids].flat();
|
|
262
|
-
});
|
|
215
|
+
async setupAfterDevMiddleware() {
|
|
216
|
+
const { runner, conf, dev } = this;
|
|
217
|
+
const setupMids = dev.after || [];
|
|
218
|
+
const pluginMids = await runner.afterDevServer(conf);
|
|
219
|
+
return [...pluginMids, ...setupMids].flat();
|
|
263
220
|
}
|
|
264
221
|
cleanSSRCache() {
|
|
265
222
|
const { distDir } = this;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -224,7 +224,6 @@ var __generator = this && this.__generator || function(thisArg, body) {
|
|
|
224
224
|
};
|
|
225
225
|
}
|
|
226
226
|
};
|
|
227
|
-
import { compatRequire } from "@modern-js/utils";
|
|
228
227
|
import { match } from "path-to-regexp";
|
|
229
228
|
var VALID_METHODS = [
|
|
230
229
|
"get",
|
|
@@ -267,7 +266,7 @@ var allowTypes = [
|
|
|
267
266
|
"object",
|
|
268
267
|
"function"
|
|
269
268
|
];
|
|
270
|
-
var
|
|
269
|
+
var getMockData_default = function(mockConfig) {
|
|
271
270
|
return Object.keys(mockConfig).reduce(function(acc, key) {
|
|
272
271
|
var handler = mockConfig[key];
|
|
273
272
|
var type = typeof handler === "undefined" ? "undefined" : _typeof(handler);
|
|
@@ -302,14 +301,6 @@ var parseKey = function(key) {
|
|
|
302
301
|
path: key
|
|
303
302
|
};
|
|
304
303
|
};
|
|
305
|
-
var getMockData_default = function(filepath) {
|
|
306
|
-
var mockModule = compatRequire(filepath);
|
|
307
|
-
if (!mockModule) {
|
|
308
|
-
throw new Error("Mock file ".concat(filepath, " parsed failed!"));
|
|
309
|
-
}
|
|
310
|
-
var data = normalizeConfig(mockModule);
|
|
311
|
-
return data;
|
|
312
|
-
};
|
|
313
304
|
var getMatched = function(context, mockApiList) {
|
|
314
305
|
var targetPathname = context.path, targetMethod = context.method;
|
|
315
306
|
var matched = mockApiList.find(function(mockApi) {
|
|
@@ -123,7 +123,7 @@ var __generator = this && this.__generator || function(thisArg, body) {
|
|
|
123
123
|
}
|
|
124
124
|
};
|
|
125
125
|
import path from "path";
|
|
126
|
-
import { fs } from "@modern-js/utils";
|
|
126
|
+
import { compatRequire, fs } from "@modern-js/utils";
|
|
127
127
|
import { AGGRED_DIR } from "@modern-js/prod-server";
|
|
128
128
|
import getMockData, { getMatched } from "./getMockData";
|
|
129
129
|
var createMockHandler = function(param) {
|
|
@@ -160,14 +160,30 @@ var createMockHandler = function(param) {
|
|
|
160
160
|
if (!filepath) {
|
|
161
161
|
return null;
|
|
162
162
|
}
|
|
163
|
-
var
|
|
163
|
+
var _compatRequire = compatRequire(filepath, false), mockModule = _compatRequire.default, config = _compatRequire.config;
|
|
164
|
+
if ((config === null || config === void 0 ? void 0 : config.enable) === false) {
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
if (!mockModule) {
|
|
168
|
+
throw new Error("Mock file ".concat(filepath, " parsed failed!"));
|
|
169
|
+
}
|
|
170
|
+
var apiList = getMockData(mockModule);
|
|
164
171
|
if (!apiList || apiList.length === 0) {
|
|
165
172
|
return null;
|
|
166
173
|
}
|
|
167
174
|
return function() {
|
|
168
175
|
var _ref = _asyncToGenerator(function(context, next) {
|
|
169
|
-
var res, matched;
|
|
176
|
+
var enableMock, res, matched;
|
|
170
177
|
return __generator(this, function(_state) {
|
|
178
|
+
if (typeof (config === null || config === void 0 ? void 0 : config.enable) === "function") {
|
|
179
|
+
enableMock = config.enable(context.req, context.res);
|
|
180
|
+
if (!enableMock) {
|
|
181
|
+
return [
|
|
182
|
+
2,
|
|
183
|
+
next()
|
|
184
|
+
];
|
|
185
|
+
}
|
|
186
|
+
}
|
|
171
187
|
res = context.res;
|
|
172
188
|
matched = getMatched(context, apiList);
|
|
173
189
|
if (!matched) {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,39 +1,3 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
-
var __spreadValues = (a, b) => {
|
|
7
|
-
for (var prop in b || (b = {}))
|
|
8
|
-
if (__hasOwnProp.call(b, prop))
|
|
9
|
-
__defNormalProp(a, prop, b[prop]);
|
|
10
|
-
if (__getOwnPropSymbols)
|
|
11
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
-
if (__propIsEnum.call(b, prop))
|
|
13
|
-
__defNormalProp(a, prop, b[prop]);
|
|
14
|
-
}
|
|
15
|
-
return a;
|
|
16
|
-
};
|
|
17
|
-
var __async = (__this, __arguments, generator) => {
|
|
18
|
-
return new Promise((resolve, reject) => {
|
|
19
|
-
var fulfilled = (value) => {
|
|
20
|
-
try {
|
|
21
|
-
step(generator.next(value));
|
|
22
|
-
} catch (e) {
|
|
23
|
-
reject(e);
|
|
24
|
-
}
|
|
25
|
-
};
|
|
26
|
-
var rejected = (value) => {
|
|
27
|
-
try {
|
|
28
|
-
step(generator.throw(value));
|
|
29
|
-
} catch (e) {
|
|
30
|
-
reject(e);
|
|
31
|
-
}
|
|
32
|
-
};
|
|
33
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
34
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
1
|
import { EventEmitter } from "events";
|
|
38
2
|
import SocketServer from "./socket-server";
|
|
39
3
|
const noop = () => {
|
|
@@ -59,11 +23,11 @@ class DevMiddleware extends EventEmitter {
|
|
|
59
23
|
app.on("listening", () => {
|
|
60
24
|
this.socketServer.prepare(app);
|
|
61
25
|
});
|
|
62
|
-
app.on("close", () =>
|
|
26
|
+
app.on("close", async () => {
|
|
63
27
|
var _a;
|
|
64
28
|
(_a = this.middleware) == null ? void 0 : _a.close(noop);
|
|
65
29
|
this.socketServer.close();
|
|
66
|
-
})
|
|
30
|
+
});
|
|
67
31
|
}
|
|
68
32
|
sockWrite(type, data) {
|
|
69
33
|
this.socketServer.sockWrite(type, data);
|
|
@@ -80,12 +44,13 @@ class DevMiddleware extends EventEmitter {
|
|
|
80
44
|
}
|
|
81
45
|
};
|
|
82
46
|
const enableHMR = this.devOptions.hot || this.devOptions.liveReload;
|
|
83
|
-
const middleware = devMiddleware(
|
|
47
|
+
const middleware = devMiddleware({
|
|
84
48
|
headers: devOptions.headers,
|
|
85
49
|
stats: false,
|
|
86
50
|
callbacks,
|
|
87
|
-
hmrClientPath: enableHMR ? getHMRClientPath(devOptions.client) : void 0
|
|
88
|
-
|
|
51
|
+
hmrClientPath: enableHMR ? getHMRClientPath(devOptions.client) : void 0,
|
|
52
|
+
...devOptions.devMiddleware
|
|
53
|
+
});
|
|
89
54
|
return middleware;
|
|
90
55
|
}
|
|
91
56
|
}
|
|
File without changes
|
|
@@ -1,32 +1,12 @@
|
|
|
1
|
-
var __async = (__this, __arguments, generator) => {
|
|
2
|
-
return new Promise((resolve, reject) => {
|
|
3
|
-
var fulfilled = (value) => {
|
|
4
|
-
try {
|
|
5
|
-
step(generator.next(value));
|
|
6
|
-
} catch (e) {
|
|
7
|
-
reject(e);
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
var rejected = (value) => {
|
|
11
|
-
try {
|
|
12
|
-
step(generator.throw(value));
|
|
13
|
-
} catch (e) {
|
|
14
|
-
reject(e);
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
1
|
import { chalk, getPackageManager, logger } from "@modern-js/utils";
|
|
22
|
-
const genHttpsOptions = (userOptions, pwd) =>
|
|
2
|
+
const genHttpsOptions = async (userOptions, pwd) => {
|
|
23
3
|
const httpsOptions = typeof userOptions === "boolean" ? {} : userOptions;
|
|
24
4
|
if (!httpsOptions.key || !httpsOptions.cert) {
|
|
25
5
|
let devcertPath;
|
|
26
6
|
try {
|
|
27
7
|
devcertPath = require.resolve("devcert", { paths: [pwd, __dirname] });
|
|
28
8
|
} catch (err) {
|
|
29
|
-
const packageManager =
|
|
9
|
+
const packageManager = await getPackageManager(pwd);
|
|
30
10
|
const command = chalk.yellow.bold(
|
|
31
11
|
`${packageManager} install devcert@1.2.2 -D`
|
|
32
12
|
);
|
|
@@ -39,11 +19,11 @@ const genHttpsOptions = (userOptions, pwd) => __async(void 0, null, function* ()
|
|
|
39
19
|
throw new Error('[https] "devcert" is not found.');
|
|
40
20
|
}
|
|
41
21
|
const devcert = require(devcertPath);
|
|
42
|
-
const selfsign =
|
|
22
|
+
const selfsign = await devcert.certificateFor(["localhost"]);
|
|
43
23
|
return selfsign;
|
|
44
24
|
}
|
|
45
25
|
return httpsOptions;
|
|
46
|
-
}
|
|
26
|
+
};
|
|
47
27
|
export {
|
|
48
28
|
genHttpsOptions
|
|
49
29
|
};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { match } from "path-to-regexp";
|
|
2
|
+
const VALID_METHODS = ["get", "post", "put", "delete", "patch"];
|
|
3
|
+
const BODY_PARSED_METHODS = ["post", "put", "delete", "patch"];
|
|
4
|
+
const createFunctionDataHandler = (method, handler) => async (context, next) => {
|
|
5
|
+
const { req, res } = context;
|
|
6
|
+
return handler(req, res, next);
|
|
7
|
+
};
|
|
8
|
+
const createStaticDataHandler = (method, handler) => (context) => {
|
|
9
|
+
const { res } = context;
|
|
10
|
+
res.setHeader("Content-Type", "application/json");
|
|
11
|
+
res.end(JSON.stringify(handler));
|
|
12
|
+
};
|
|
13
|
+
const allowTypes = ["object", "function"];
|
|
14
|
+
var getMockData_default = (mockConfig) => Object.keys(mockConfig).reduce((acc, key) => {
|
|
15
|
+
const handler = mockConfig[key];
|
|
16
|
+
const type = typeof handler;
|
|
17
|
+
if (!allowTypes.includes(type)) {
|
|
18
|
+
throw new Error(
|
|
19
|
+
`mock value of ${key} should be object or function, but got ${type}`
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
const meta = parseKey(key);
|
|
23
|
+
if (type === "object") {
|
|
24
|
+
acc.push({
|
|
25
|
+
...meta,
|
|
26
|
+
handler: createStaticDataHandler(meta.method, handler)
|
|
27
|
+
});
|
|
28
|
+
} else {
|
|
29
|
+
acc.push({
|
|
30
|
+
...meta,
|
|
31
|
+
handler: createFunctionDataHandler(meta.method, handler)
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
return acc;
|
|
35
|
+
}, []);
|
|
36
|
+
const _blank = " ";
|
|
37
|
+
const parseKey = (key) => {
|
|
38
|
+
const splitted = key.split(_blank).filter(Boolean);
|
|
39
|
+
if (splitted.length > 1) {
|
|
40
|
+
const [method, pathname] = splitted;
|
|
41
|
+
return {
|
|
42
|
+
method: method.toLowerCase(),
|
|
43
|
+
path: pathname
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
method: "get",
|
|
48
|
+
path: key
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
const getMatched = (context, mockApiList) => {
|
|
52
|
+
const { path: targetPathname, method: targetMethod } = context;
|
|
53
|
+
const matched = mockApiList.find((mockApi) => {
|
|
54
|
+
const { method, path: pathname } = mockApi;
|
|
55
|
+
if (method.toLowerCase() === targetMethod.toLowerCase()) {
|
|
56
|
+
return match(pathname, {
|
|
57
|
+
encode: encodeURI,
|
|
58
|
+
decode: decodeURIComponent
|
|
59
|
+
})(targetPathname);
|
|
60
|
+
}
|
|
61
|
+
return false;
|
|
62
|
+
});
|
|
63
|
+
return matched;
|
|
64
|
+
};
|
|
65
|
+
export {
|
|
66
|
+
getMockData_default as default,
|
|
67
|
+
getMatched
|
|
68
|
+
};
|