@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.
Files changed (53) hide show
  1. package/CHANGELOG.md +23 -4
  2. package/dist/{js/node → cjs}/constants.js +0 -0
  3. package/dist/{js/node → cjs}/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -0
  4. package/dist/{js/node → cjs}/dev-tools/dev-middleware/hmr-client/index.js +0 -0
  5. package/dist/{js/node → cjs}/dev-tools/dev-middleware/index.js +6 -39
  6. package/dist/{js/node → cjs}/dev-tools/dev-middleware/socket-server.js +0 -0
  7. package/dist/{js/node → cjs}/dev-tools/https/index.js +4 -24
  8. package/dist/{js/node → cjs}/dev-tools/mock/getMockData.js +9 -53
  9. package/dist/{js/node → cjs}/dev-tools/mock/index.js +19 -23
  10. package/dist/{js/node → cjs}/dev-tools/register/index.js +10 -23
  11. package/dist/{js/node → cjs}/dev-tools/watcher/dependency-tree.js +0 -0
  12. package/dist/{js/node → cjs}/dev-tools/watcher/index.js +7 -16
  13. package/dist/{js/node → cjs}/dev-tools/watcher/stats-cache.js +0 -0
  14. package/dist/{js/node → cjs}/index.js +0 -0
  15. package/dist/{js/node → cjs}/server/dev-server.js +92 -135
  16. package/dist/{js/node → cjs}/server/index.js +0 -0
  17. package/dist/{js/node → cjs}/types.js +0 -0
  18. package/dist/{js/treeshaking → esm}/constants.js +0 -0
  19. package/dist/{js/treeshaking → esm}/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -0
  20. package/dist/{js/treeshaking → esm}/dev-tools/dev-middleware/hmr-client/index.js +0 -0
  21. package/dist/{js/treeshaking → esm}/dev-tools/dev-middleware/index.js +0 -0
  22. package/dist/{js/treeshaking → esm}/dev-tools/dev-middleware/socket-server.js +0 -0
  23. package/dist/{js/treeshaking → esm}/dev-tools/https/index.js +0 -0
  24. package/dist/{js/treeshaking → esm}/dev-tools/mock/getMockData.js +1 -10
  25. package/dist/{js/treeshaking → esm}/dev-tools/mock/index.js +19 -3
  26. package/dist/{js/treeshaking → esm}/dev-tools/register/index.js +1 -0
  27. package/dist/{js/treeshaking → esm}/dev-tools/watcher/dependency-tree.js +0 -0
  28. package/dist/{js/treeshaking → esm}/dev-tools/watcher/index.js +0 -0
  29. package/dist/{js/treeshaking → esm}/dev-tools/watcher/stats-cache.js +0 -0
  30. package/dist/{js/treeshaking → esm}/index.js +0 -0
  31. package/dist/{js/treeshaking → esm}/server/dev-server.js +1 -0
  32. package/dist/{js/treeshaking → esm}/server/index.js +0 -0
  33. package/dist/{js/treeshaking → esm}/types.js +0 -0
  34. package/dist/{js/modern → esm-node}/constants.js +0 -0
  35. package/dist/{js/modern → esm-node}/dev-tools/dev-middleware/hmr-client/createSocketUrl.js +0 -0
  36. package/dist/{js/modern → esm-node}/dev-tools/dev-middleware/hmr-client/index.js +0 -0
  37. package/dist/{js/modern → esm-node}/dev-tools/dev-middleware/index.js +6 -41
  38. package/dist/{js/modern → esm-node}/dev-tools/dev-middleware/socket-server.js +0 -0
  39. package/dist/{js/modern → esm-node}/dev-tools/https/index.js +4 -24
  40. package/dist/esm-node/dev-tools/mock/getMockData.js +68 -0
  41. package/dist/{js/modern → esm-node}/dev-tools/mock/index.js +20 -24
  42. package/dist/{js/modern → esm-node}/dev-tools/register/index.js +10 -25
  43. package/dist/{js/modern → esm-node}/dev-tools/watcher/dependency-tree.js +0 -0
  44. package/dist/{js/modern → esm-node}/dev-tools/watcher/index.js +7 -18
  45. package/dist/{js/modern → esm-node}/dev-tools/watcher/stats-cache.js +0 -0
  46. package/dist/{js/modern → esm-node}/index.js +0 -0
  47. package/dist/esm-node/server/dev-server.js +247 -0
  48. package/dist/{js/modern → esm-node}/server/index.js +0 -0
  49. package/dist/{js/modern → esm-node}/types.js +0 -0
  50. package/dist/types/dev-tools/mock/getMockData.d.ts +1 -1
  51. package/package.json +13 -14
  52. package/dist/js/modern/dev-tools/mock/getMockData.js +0 -114
  53. 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 __spreadProps(__spreadValues(__spreadValues({}, defaultOptions), devOptions), {
95
- client: __spreadValues(__spreadValues({}, defaultOptions.client), devOptions == null ? void 0 : devOptions.client)
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
- return __async(this, null, function* () {
126
- this.runner = runner;
127
- const { dev } = this;
128
- const { befores, afters } = this.applySetupMiddlewares();
129
- const beforeHandlers = yield this.setupBeforeDevMiddleware();
130
- this.addMiddlewareHandler([...beforeHandlers, ...befores]);
131
- yield this.applyDefaultMiddlewares(app);
132
- const afterHandlers = yield this.setupAfterDevMiddleware();
133
- this.addMiddlewareHandler([...afters, ...afterHandlers]);
134
- yield __superGet(ModernDevServer.prototype, this, "onInit").call(this, runner, app);
135
- if (dev.watch) {
136
- this.startWatcher();
137
- app.on("close", () => __async(this, null, function* () {
138
- var _a;
139
- yield (_a = this.watcher) == null ? void 0 : _a.close();
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
- return __async(this, null, function* () {
146
- const { pwd, dev, devMiddleware } = this;
147
- this.addHandler((ctx, next) => {
148
- ctx.res.setHeader("Access-Control-Allow-Origin", "*");
149
- if (ctx.path.includes("hot-update")) {
150
- ctx.res.setHeader("Access-Control-Allow-Credentials", "false");
151
- }
152
- const confHeaders = dev.headers;
153
- if (confHeaders) {
154
- for (const [key, value] of Object.entries(confHeaders)) {
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
- devMiddleware.init(app);
175
- devMiddleware.on("change", (stats) => {
176
- if (stats.toJson({ all: false }).name === "client") {
177
- this.onRepack({ routes: this.getRoutes() });
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
- if (dev.historyApiFallback) {
189
- const { default: connectHistoryApiFallback } = yield Promise.resolve().then(() => __toESM(require("connect-history-api-fallback")));
190
- const historyApiFallbackMiddleware = connectHistoryApiFallback(
191
- typeof dev.historyApiFallback === "boolean" ? {} : dev.historyApiFallback
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
- return __async(this, null, function* () {
209
- const { dev } = this;
210
- const devHttpsOption = typeof dev === "object" && dev.https;
211
- if (devHttpsOption) {
212
- const { genHttpsOptions } = require("../dev-tools/https");
213
- const httpsOptions = yield genHttpsOptions(devHttpsOption, this.pwd);
214
- return (0, import_https.createServer)(httpsOptions, handler);
215
- } else {
216
- return (0, import_http.createServer)(handler);
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
- return __async(this, null, function* () {
250
- const { runner, conf, dev } = this;
251
- const setupMids = dev.before || [];
252
- const pluginMids = yield runner.beforeDevServer(conf);
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
- return __async(this, null, function* () {
258
- const { runner, conf, dev } = this;
259
- const setupMids = dev.after || [];
260
- const pluginMids = yield runner.afterDevServer(conf);
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
@@ -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 normalizeConfig = function(mockConfig) {
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 apiList = getMockData(filepath);
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) {
@@ -109,6 +109,7 @@ var enableRegister = function(projectRoot, config) {
109
109
  });
110
110
  tsNode.register({
111
111
  project: tsconfigPath,
112
+ scope: true,
112
113
  files: true,
113
114
  transpileOnly: true,
114
115
  ignore: [
File without changes
@@ -606,6 +606,7 @@ var ModernDevServer = /*#__PURE__*/ function(ModernServer) {
606
606
  }
607
607
  this.cleanSSRCache();
608
608
  this.reader.updateFile();
609
+ this.runner.repack();
609
610
  _get(_getPrototypeOf(ModernDevServer.prototype), "onRepack", this).call(this, options);
610
611
  }
611
612
  },
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", () => __async(this, null, function* () {
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(__spreadValues({
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
- }, devOptions.devMiddleware));
51
+ hmrClientPath: enableHMR ? getHMRClientPath(devOptions.client) : void 0,
52
+ ...devOptions.devMiddleware
53
+ });
89
54
  return middleware;
90
55
  }
91
56
  }
@@ -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) => __async(void 0, null, function* () {
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 = yield getPackageManager(pwd);
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 = yield devcert.certificateFor(["localhost"]);
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
+ };