@modern-js/prod-server 2.0.0-beta.2 → 2.0.0-beta.4

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 (130) hide show
  1. package/CHANGELOG.md +132 -0
  2. package/dist/js/modern/constants.js +32 -25
  3. package/dist/js/modern/index.js +11 -6
  4. package/dist/js/modern/libs/context/context.js +52 -84
  5. package/dist/js/modern/libs/context/index.js +5 -2
  6. package/dist/js/modern/libs/hook-api/index.js +42 -35
  7. package/dist/js/modern/libs/hook-api/route.js +6 -7
  8. package/dist/js/modern/libs/hook-api/template.js +20 -34
  9. package/dist/js/modern/libs/loadConfig.js +45 -24
  10. package/dist/js/modern/libs/metrics.js +3 -4
  11. package/dist/js/modern/libs/proxy.js +68 -37
  12. package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +112 -67
  13. package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +246 -216
  14. package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +43 -49
  15. package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +36 -34
  16. package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +83 -113
  17. package/dist/js/modern/libs/render/cache/index.js +88 -54
  18. package/dist/js/modern/libs/render/cache/page-caches/index.js +31 -8
  19. package/dist/js/modern/libs/render/cache/page-caches/lru.js +6 -6
  20. package/dist/js/modern/libs/render/cache/spr.js +133 -117
  21. package/dist/js/modern/libs/render/cache/type.js +0 -1
  22. package/dist/js/modern/libs/render/cache/util.js +71 -39
  23. package/dist/js/modern/libs/render/index.js +76 -56
  24. package/dist/js/modern/libs/render/measure.js +38 -27
  25. package/dist/js/modern/libs/render/reader.js +65 -62
  26. package/dist/js/modern/libs/render/ssr.js +50 -32
  27. package/dist/js/modern/libs/render/static.js +50 -33
  28. package/dist/js/modern/libs/render/type.js +9 -6
  29. package/dist/js/modern/libs/route/index.js +8 -15
  30. package/dist/js/modern/libs/route/matcher.js +20 -34
  31. package/dist/js/modern/libs/route/route.js +9 -18
  32. package/dist/js/modern/libs/serve-file.js +33 -20
  33. package/dist/js/modern/server/index.js +144 -145
  34. package/dist/js/modern/server/modern-server-split.js +46 -12
  35. package/dist/js/modern/server/modern-server.js +377 -419
  36. package/dist/js/modern/type.js +0 -1
  37. package/dist/js/modern/utils.js +62 -43
  38. package/dist/js/modern/worker-server.js +34 -14
  39. package/dist/js/node/constants.js +45 -30
  40. package/dist/js/node/index.js +31 -57
  41. package/dist/js/node/libs/context/context.js +79 -94
  42. package/dist/js/node/libs/context/index.js +23 -13
  43. package/dist/js/node/libs/hook-api/index.js +69 -48
  44. package/dist/js/node/libs/hook-api/route.js +22 -11
  45. package/dist/js/node/libs/hook-api/template.js +36 -39
  46. package/dist/js/node/libs/loadConfig.js +69 -35
  47. package/dist/js/node/libs/metrics.js +21 -9
  48. package/dist/js/node/libs/proxy.js +86 -44
  49. package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +132 -70
  50. package/dist/js/node/libs/render/cache/__tests__/cache.test.js +268 -218
  51. package/dist/js/node/libs/render/cache/__tests__/cacheable.js +61 -55
  52. package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +54 -40
  53. package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +101 -119
  54. package/dist/js/node/libs/render/cache/index.js +110 -64
  55. package/dist/js/node/libs/render/cache/page-caches/index.js +50 -14
  56. package/dist/js/node/libs/render/cache/page-caches/lru.js +29 -12
  57. package/dist/js/node/libs/render/cache/spr.js +156 -129
  58. package/dist/js/node/libs/render/cache/type.js +0 -5
  59. package/dist/js/node/libs/render/cache/util.js +88 -45
  60. package/dist/js/node/libs/render/index.js +102 -67
  61. package/dist/js/node/libs/render/measure.js +55 -31
  62. package/dist/js/node/libs/render/reader.js +87 -70
  63. package/dist/js/node/libs/render/ssr.js +76 -47
  64. package/dist/js/node/libs/render/static.js +75 -40
  65. package/dist/js/node/libs/render/type.js +27 -12
  66. package/dist/js/node/libs/route/index.js +26 -26
  67. package/dist/js/node/libs/route/matcher.js +36 -41
  68. package/dist/js/node/libs/route/route.js +25 -22
  69. package/dist/js/node/libs/serve-file.js +61 -32
  70. package/dist/js/node/server/index.js +160 -160
  71. package/dist/js/node/server/modern-server-split.js +68 -22
  72. package/dist/js/node/server/modern-server.js +395 -443
  73. package/dist/js/node/type.js +0 -3
  74. package/dist/js/node/utils.js +74 -52
  75. package/dist/js/node/worker-server.js +53 -21
  76. package/dist/js/treeshaking/constants.js +26 -25
  77. package/dist/js/treeshaking/index.js +10 -10
  78. package/dist/js/treeshaking/libs/context/context.js +268 -237
  79. package/dist/js/treeshaking/libs/context/index.js +3 -3
  80. package/dist/js/treeshaking/libs/hook-api/index.js +265 -143
  81. package/dist/js/treeshaking/libs/hook-api/route.js +65 -30
  82. package/dist/js/treeshaking/libs/hook-api/template.js +121 -85
  83. package/dist/js/treeshaking/libs/loadConfig.js +80 -37
  84. package/dist/js/treeshaking/libs/metrics.js +4 -10
  85. package/dist/js/treeshaking/libs/proxy.js +240 -76
  86. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.fun.test.js +288 -121
  87. package/dist/js/treeshaking/libs/render/cache/__tests__/cache.test.js +772 -455
  88. package/dist/js/treeshaking/libs/render/cache/__tests__/cacheable.js +65 -51
  89. package/dist/js/treeshaking/libs/render/cache/__tests__/error-configuration.js +45 -35
  90. package/dist/js/treeshaking/libs/render/cache/__tests__/matched-cache.js +144 -118
  91. package/dist/js/treeshaking/libs/render/cache/index.js +337 -175
  92. package/dist/js/treeshaking/libs/render/cache/page-caches/index.js +151 -27
  93. package/dist/js/treeshaking/libs/render/cache/page-caches/lru.js +80 -42
  94. package/dist/js/treeshaking/libs/render/cache/spr.js +470 -340
  95. package/dist/js/treeshaking/libs/render/cache/type.js +1 -1
  96. package/dist/js/treeshaking/libs/render/cache/util.js +271 -92
  97. package/dist/js/treeshaking/libs/render/index.js +228 -95
  98. package/dist/js/treeshaking/libs/render/measure.js +142 -57
  99. package/dist/js/treeshaking/libs/render/reader.js +325 -177
  100. package/dist/js/treeshaking/libs/render/ssr.js +220 -95
  101. package/dist/js/treeshaking/libs/render/static.js +210 -78
  102. package/dist/js/treeshaking/libs/render/type.js +7 -6
  103. package/dist/js/treeshaking/libs/route/index.js +125 -89
  104. package/dist/js/treeshaking/libs/route/matcher.js +132 -107
  105. package/dist/js/treeshaking/libs/route/route.js +40 -26
  106. package/dist/js/treeshaking/libs/serve-file.js +177 -68
  107. package/dist/js/treeshaking/server/index.js +468 -327
  108. package/dist/js/treeshaking/server/modern-server-split.js +352 -144
  109. package/dist/js/treeshaking/server/modern-server.js +1046 -911
  110. package/dist/js/treeshaking/type.js +1 -1
  111. package/dist/js/treeshaking/utils.js +138 -81
  112. package/dist/js/treeshaking/worker-server.js +176 -55
  113. package/dist/types/index.d.ts +2 -0
  114. package/dist/types/libs/context/context.d.ts +4 -1
  115. package/dist/types/libs/loadConfig.d.ts +1 -0
  116. package/dist/types/libs/render/cache/index.d.ts +2 -0
  117. package/dist/types/libs/render/cache/spr.d.ts +2 -0
  118. package/dist/types/libs/route/route.d.ts +0 -1
  119. package/dist/types/server/index.d.ts +3 -0
  120. package/dist/types/utils.d.ts +1 -1
  121. package/dist/types/worker-server.d.ts +1 -2
  122. package/package.json +7 -14
  123. package/dist/js/modern/libs/render/modern/browser-list.js +0 -7
  124. package/dist/js/modern/libs/render/modern/index.js +0 -37
  125. package/dist/js/node/libs/render/modern/browser-list.js +0 -14
  126. package/dist/js/node/libs/render/modern/index.js +0 -46
  127. package/dist/js/treeshaking/libs/render/modern/browser-list.js +0 -7
  128. package/dist/js/treeshaking/libs/render/modern/index.js +0 -39
  129. package/dist/types/libs/render/modern/browser-list.d.ts +0 -1
  130. package/dist/types/libs/render/modern/index.d.ts +0 -3
@@ -1 +0,0 @@
1
- import { IncomingMessage } from 'http';
@@ -1,18 +1,28 @@
1
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
4
- import { createDebugger, isProd } from '@modern-js/utils';
5
- export const debug = createDebugger('prod-server');
6
- export const mergeExtension = users => {
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
+ import { createDebugger, isProd } from "@modern-js/utils";
18
+ const debug = createDebugger("prod-server");
19
+ const mergeExtension = (users) => {
7
20
  const output = [];
8
- return {
9
- middleware: output.concat(users)
10
- };
21
+ return { middleware: output.concat(users) };
11
22
  };
12
- export const noop = () => {
13
- // noop
23
+ const noop = () => {
14
24
  };
15
- export const createErrorDocument = (status, text) => {
25
+ const createErrorDocument = (status, text) => {
16
26
  const title = `${status}: ${text}`;
17
27
  return `<!DOCTYPE html>
18
28
  <html lang="en">
@@ -45,13 +55,13 @@ export const createErrorDocument = (status, text) => {
45
55
  </html>
46
56
  `;
47
57
  };
48
- export const createMiddlewareCollecter = () => {
58
+ const createMiddlewareCollecter = () => {
49
59
  const webMiddlewares = [];
50
60
  const apiMiddlewares = [];
51
- const addWebMiddleware = input => {
61
+ const addWebMiddleware = (input) => {
52
62
  webMiddlewares.push(input);
53
63
  };
54
- const addAPIMiddleware = input => {
64
+ const addAPIMiddleware = (input) => {
55
65
  apiMiddlewares.push(input);
56
66
  };
57
67
  const getMiddlewares = () => ({
@@ -64,54 +74,63 @@ export const createMiddlewareCollecter = () => {
64
74
  addAPIMiddleware
65
75
  };
66
76
  };
67
- export const useLocalPrefix = url => {
68
- return isProd() && !url.includes('.');
77
+ const useLocalPrefix = (url) => {
78
+ return isProd() && !url.includes(".");
69
79
  };
70
- export const getStaticReg = (output = {}, html = {}) => {
80
+ const getStaticReg = (output = {}, html = {}) => {
71
81
  const {
72
- distPath: {
73
- css: cssPath,
74
- js: jsPath,
75
- media: mediaPath
76
- } = {},
77
- assetPrefix = '/'
82
+ distPath: { css: cssPath, js: jsPath, media: mediaPath } = {},
83
+ assetPrefix = "/"
78
84
  } = output;
79
- const {
80
- favicon,
81
- faviconByEntries
82
- } = html;
83
- const prefix = useLocalPrefix(assetPrefix) ? assetPrefix : '';
85
+ const { favicon, faviconByEntries } = html;
86
+ const prefix = useLocalPrefix(assetPrefix) ? assetPrefix : "";
84
87
  const favicons = prepareFavicons(favicon, faviconByEntries);
85
- const staticFiles = [cssPath, jsPath, mediaPath].filter(v => Boolean(v));
86
- const staticReg = ['static/', 'upload/', ...staticFiles];
87
- const iconReg = ['favicon.ico', 'icon.png', ...favicons];
88
- const regPrefix = prefix.endsWith('/') ? prefix : `${prefix}/`;
89
- const staticPathRegExp = new RegExp(`^${regPrefix}(${[...staticReg, ...iconReg].join('|')})`);
88
+ const staticFiles = [cssPath, jsPath, mediaPath].filter((v) => Boolean(v));
89
+ const staticReg = ["static/", "upload/", ...staticFiles];
90
+ const iconReg = ["favicon.ico", "icon.png", ...favicons];
91
+ const regPrefix = prefix.endsWith("/") ? prefix : `${prefix}/`;
92
+ const staticPathRegExp = new RegExp(
93
+ `^${regPrefix}(${[...staticReg, ...iconReg].join("|")})`
94
+ );
90
95
  return staticPathRegExp;
91
96
  };
92
- export const prepareFavicons = (favicon, faviconByEntries) => {
97
+ const prepareFavicons = (favicon, faviconByEntries) => {
93
98
  const faviconNames = [];
94
99
  if (favicon) {
95
- faviconNames.push(favicon.substring(favicon.lastIndexOf('/') + 1));
100
+ faviconNames.push(favicon.substring(favicon.lastIndexOf("/") + 1));
96
101
  }
97
102
  if (faviconByEntries) {
98
- Object.keys(faviconByEntries).forEach(f => {
103
+ Object.keys(faviconByEntries).forEach((f) => {
99
104
  const curFavicon = faviconByEntries[f];
100
105
  if (curFavicon) {
101
- faviconNames.push(curFavicon.substring(curFavicon.lastIndexOf('/') + 1));
106
+ faviconNames.push(
107
+ curFavicon.substring(curFavicon.lastIndexOf("/") + 1)
108
+ );
102
109
  }
103
110
  });
104
111
  }
105
112
  return faviconNames;
106
113
  };
107
- export const headersWithoutCookie = headers => {
108
- if (typeof headers.cookie !== 'undefined') {
109
- const safeHeaders = _objectSpread({}, headers);
114
+ const headersWithoutCookie = (headers) => {
115
+ if (typeof headers.cookie !== "undefined") {
116
+ const safeHeaders = __spreadValues({}, headers);
110
117
  delete safeHeaders.cookie;
111
118
  return safeHeaders;
112
119
  }
113
120
  return headers;
114
121
  };
115
- export const isRedirect = code => {
122
+ const isRedirect = (code) => {
116
123
  return [301, 302, 307, 308].includes(code);
117
- };
124
+ };
125
+ export {
126
+ createErrorDocument,
127
+ createMiddlewareCollecter,
128
+ debug,
129
+ getStaticReg,
130
+ headersWithoutCookie,
131
+ isRedirect,
132
+ mergeExtension,
133
+ noop,
134
+ prepareFavicons,
135
+ useLocalPrefix
136
+ };
@@ -1,25 +1,42 @@
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
+ };
1
21
  import { RouteMatchManager } from "./libs/route";
2
- export const createHandler = manifest => {
22
+ const createHandler = (manifest) => {
3
23
  const routeMgr = new RouteMatchManager();
4
- const {
5
- pages,
6
- routes
7
- } = manifest;
24
+ const { pages, routes } = manifest;
8
25
  routeMgr.reset(routes);
9
- return async ctx => {
10
- var _ctx$request, _ctx$request$query, _ctx$request2, _ctx$request2$pathnam, _ctx$request3, _ctx$request3$params;
26
+ return (ctx) => __async(void 0, null, function* () {
27
+ var _a, _b, _c, _d, _e, _f;
11
28
  const pageMatch = routeMgr.match(ctx.url);
12
29
  if (!pageMatch) {
13
- ctx.body = '404: Page not found';
30
+ ctx.body = "404: Page not found";
14
31
  ctx.status = 404;
15
32
  return;
16
33
  }
17
34
  const page = pages[pageMatch.spec.urlPath];
18
- (_ctx$request$query = (_ctx$request = ctx.request).query) !== null && _ctx$request$query !== void 0 ? _ctx$request$query : _ctx$request.query = ctx.query;
19
- (_ctx$request2$pathnam = (_ctx$request2 = ctx.request).pathname) !== null && _ctx$request2$pathnam !== void 0 ? _ctx$request2$pathnam : _ctx$request2.pathname = ctx.pathname;
20
- (_ctx$request3$params = (_ctx$request3 = ctx.request).params) !== null && _ctx$request3$params !== void 0 ? _ctx$request3$params : _ctx$request3.params = ctx.params;
35
+ (_b = (_a = ctx.request).query) != null ? _b : _a.query = ctx.query;
36
+ (_d = (_c = ctx.request).pathname) != null ? _d : _c.pathname = ctx.pathname;
37
+ (_f = (_e = ctx.request).params) != null ? _f : _e.params = ctx.params;
21
38
  const params = pageMatch.parseURLParams(ctx.url);
22
- ctx.body = await page.serverRender({
39
+ ctx.body = yield page.serverRender({
23
40
  template: page.template,
24
41
  query: ctx.query,
25
42
  request: ctx.request,
@@ -30,5 +47,8 @@ export const createHandler = manifest => {
30
47
  params: ctx.params || params || {}
31
48
  });
32
49
  ctx.status = 200;
33
- };
34
- };
50
+ });
51
+ };
52
+ export {
53
+ createHandler
54
+ };
@@ -1,39 +1,54 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var stdin_exports = {};
19
+ __export(stdin_exports, {
20
+ AGGRED_DIR: () => AGGRED_DIR,
21
+ ApiServerMode: () => ApiServerMode,
22
+ ERROR_DIGEST: () => ERROR_DIGEST,
23
+ ERROR_PAGE_TEXT: () => ERROR_PAGE_TEXT,
24
+ RUN_MODE: () => RUN_MODE
5
25
  });
6
- exports.RUN_MODE = exports.ERROR_PAGE_TEXT = exports.ERROR_DIGEST = exports.ApiServerMode = exports.AGGRED_DIR = void 0;
26
+ module.exports = __toCommonJS(stdin_exports);
7
27
  const AGGRED_DIR = {
8
- mock: 'config/mock',
9
- server: 'server',
10
- api: 'api',
11
- shared: 'shared',
12
- lambda: 'lambda'
28
+ mock: "config/mock",
29
+ server: "server",
30
+ api: "api",
31
+ shared: "shared",
32
+ lambda: "lambda"
13
33
  };
14
- exports.AGGRED_DIR = AGGRED_DIR;
15
- let ApiServerMode;
16
- exports.ApiServerMode = ApiServerMode;
17
- (function (ApiServerMode) {
18
- ApiServerMode["func"] = "function";
19
- ApiServerMode["frame"] = "framework";
20
- })(ApiServerMode || (exports.ApiServerMode = ApiServerMode = {}));
34
+ var ApiServerMode = /* @__PURE__ */ ((ApiServerMode2) => {
35
+ ApiServerMode2["func"] = "function";
36
+ ApiServerMode2["frame"] = "framework";
37
+ return ApiServerMode2;
38
+ })(ApiServerMode || {});
21
39
  const ERROR_DIGEST = {
22
- INIT: 'Server init error',
23
- ENOTF: 'Page could not be found',
24
- WARMUP: 'SSR warmup failed',
25
- EINTER: 'Internal server error',
26
- ERENDER: 'SSR render failed',
27
- EMICROINJ: 'Get micro-frontend info failed'
40
+ INIT: "Server init error",
41
+ ENOTF: "Page could not be found",
42
+ WARMUP: "SSR warmup failed",
43
+ EINTER: "Internal server error",
44
+ ERENDER: "SSR render failed",
45
+ EMICROINJ: "Get micro-frontend info failed"
28
46
  };
29
- exports.ERROR_DIGEST = ERROR_DIGEST;
30
47
  const ERROR_PAGE_TEXT = {
31
- 404: 'This page could not be found.',
32
- 500: 'Internal Server Error.'
48
+ 404: "This page could not be found.",
49
+ 500: "Internal Server Error."
33
50
  };
34
- exports.ERROR_PAGE_TEXT = ERROR_PAGE_TEXT;
35
51
  const RUN_MODE = {
36
- FULL: 'full',
37
- TYPE: 'type'
52
+ FULL: "full",
53
+ TYPE: "type"
38
54
  };
39
- exports.RUN_MODE = RUN_MODE;
@@ -1,64 +1,38 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _exportNames = {
7
- Server: true,
8
- ModernServer: true,
9
- createProxyHandler: true
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
10
8
  };
11
- Object.defineProperty(exports, "ModernServer", {
12
- enumerable: true,
13
- get: function () {
14
- return _modernServer.ModernServer;
15
- }
16
- });
17
- Object.defineProperty(exports, "Server", {
18
- enumerable: true,
19
- get: function () {
20
- return _server.Server;
21
- }
22
- });
23
- Object.defineProperty(exports, "createProxyHandler", {
24
- enumerable: true,
25
- get: function () {
26
- return _proxy.createProxyHandler;
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
27
14
  }
15
+ return to;
16
+ };
17
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var stdin_exports = {};
20
+ __export(stdin_exports, {
21
+ ModernServer: () => import_modern_server.ModernServer,
22
+ Server: () => import_server.Server,
23
+ createProxyHandler: () => import_proxy.createProxyHandler,
24
+ default: () => src_default
28
25
  });
29
- exports.default = void 0;
30
- var _server = require("./server");
31
- var _modernServer = require("./server/modern-server");
32
- var _proxy = require("./libs/proxy");
33
- var _type = require("./type");
34
- Object.keys(_type).forEach(function (key) {
35
- if (key === "default" || key === "__esModule") return;
36
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
37
- if (key in exports && exports[key] === _type[key]) return;
38
- Object.defineProperty(exports, key, {
39
- enumerable: true,
40
- get: function () {
41
- return _type[key];
42
- }
43
- });
44
- });
45
- var _constants = require("./constants");
46
- Object.keys(_constants).forEach(function (key) {
47
- if (key === "default" || key === "__esModule") return;
48
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
49
- if (key in exports && exports[key] === _constants[key]) return;
50
- Object.defineProperty(exports, key, {
51
- enumerable: true,
52
- get: function () {
53
- return _constants[key];
54
- }
55
- });
56
- });
57
- var _default = options => {
26
+ module.exports = __toCommonJS(stdin_exports);
27
+ var import_server = require("./server");
28
+ var import_modern_server = require("./server/modern-server");
29
+ var import_proxy = require("./libs/proxy");
30
+ __reExport(stdin_exports, require("./type"), module.exports);
31
+ __reExport(stdin_exports, require("./constants"), module.exports);
32
+ var src_default = (options) => {
58
33
  if (options == null) {
59
- throw new Error('can not start mserver without options');
34
+ throw new Error("can not start mserver without options");
60
35
  }
61
- const server = new _server.Server(options);
36
+ const server = new import_server.Server(options);
62
37
  return server.init();
63
38
  };
64
- exports.default = _default;
@@ -1,72 +1,70 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
21
+ mod
22
+ ));
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var stdin_exports = {};
25
+ __export(stdin_exports, {
26
+ ModernServerContext: () => ModernServerContext
5
27
  });
6
- exports.ModernServerContext = void 0;
7
- var _url = require("url");
8
- var _querystring = _interopRequireDefault(require("querystring"));
9
- var _buffer = require("buffer");
10
- var _etag = _interopRequireDefault(require("etag"));
11
- var _fresh = _interopRequireDefault(require("fresh"));
12
- var _utils = require("../../utils");
13
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
28
+ module.exports = __toCommonJS(stdin_exports);
29
+ var import_url = require("url");
30
+ var import_querystring = __toESM(require("querystring"));
31
+ var import_buffer = require("buffer");
32
+ var import_etag = __toESM(require("etag"));
33
+ var import_fresh = __toESM(require("fresh"));
34
+ var import_utils = require("../../utils");
15
35
  class ModernServerContext {
16
- /**
17
- * http request
18
- */
19
-
20
- /**
21
- * http response
22
- */
23
-
24
- /**
25
- * url params
26
- */
27
-
28
- get logger() {
29
- return this.req.logger;
30
- }
31
- get metrics() {
32
- return this.req.metrics;
33
- }
34
36
  constructor(req, res, options) {
35
- _defineProperty(this, "req", void 0);
36
- _defineProperty(this, "res", void 0);
37
- _defineProperty(this, "params", {});
38
- _defineProperty(this, "serverData", void 0);
39
- _defineProperty(this, "options", {});
37
+ this.params = {};
38
+ this.options = {};
40
39
  this.req = req;
41
40
  this.res = res;
42
41
  this.options = options || {};
43
42
  this.serverData = {};
44
43
  this.bind();
45
44
  }
45
+ get logger() {
46
+ return this.req.logger;
47
+ }
48
+ get metrics() {
49
+ return this.req.metrics;
50
+ }
46
51
  bind() {
47
- const {
48
- req,
49
- res
50
- } = this;
51
- req.get = key => this.getReqHeader(key);
52
+ const { req, res } = this;
53
+ req.get = (key) => this.getReqHeader(key);
52
54
  res.set = (key, value) => this.res.setHeader(key, value);
53
- res.send = body => {
55
+ res.send = (body) => {
54
56
  this.send(body);
55
57
  };
56
58
  }
57
-
58
- // compat express res.send, only support etag now
59
59
  send(body) {
60
60
  try {
61
- const generateETag = !this.res.getHeader('ETag') && this.options.etag;
62
- if (body !== undefined && generateETag) {
63
- const encoding = typeof body === 'string' ? 'utf-8' : undefined;
64
- const buf = !_buffer.Buffer.isBuffer(body) ? _buffer.Buffer.from(body, encoding) : body;
65
- const etag = (0, _etag.default)(buf, {
66
- weak: true
67
- });
61
+ const generateETag = !this.res.getHeader("ETag") && this.options.etag;
62
+ if (body !== void 0 && generateETag) {
63
+ const encoding = typeof body === "string" ? "utf-8" : void 0;
64
+ const buf = !import_buffer.Buffer.isBuffer(body) ? import_buffer.Buffer.from(body, encoding) : body;
65
+ const etag = (0, import_etag.default)(buf, { weak: true });
68
66
  if (etag) {
69
- this.res.setHeader('ETag', etag);
67
+ this.res.setHeader("ETag", etag);
70
68
  }
71
69
  }
72
70
  if (this.fresh) {
@@ -84,39 +82,29 @@ class ModernServerContext {
84
82
  this.serverData[key] = value;
85
83
  }
86
84
  getReqHeader(key) {
87
- const {
88
- req
89
- } = this;
85
+ const { req } = this;
90
86
  const field = key.toLowerCase();
91
87
  switch (field) {
92
- case 'referer':
93
- case 'referrer':
94
- return req.headers.referrer || req.headers.referer || '';
88
+ case "referer":
89
+ case "referrer":
90
+ return req.headers.referrer || req.headers.referer || "";
95
91
  default:
96
- return req.headers[field] || '';
92
+ return req.headers[field] || "";
97
93
  }
98
94
  }
99
95
  get fresh() {
100
- const {
101
- status,
102
- res,
103
- method
104
- } = this;
105
-
106
- // GET or HEAD for weak freshness validation only
107
- if ('GET' !== method && 'HEAD' !== method) {
96
+ const { status, res, method } = this;
97
+ if ("GET" !== method && "HEAD" !== method) {
108
98
  return false;
109
99
  }
110
100
  if (status >= 200 && status < 300 || 304 === status) {
111
- return (0, _fresh.default)(this.headers, {
112
- etag: res.getHeader('ETag'),
113
- 'last-modified': res.getHeader('Last-Modified')
101
+ return (0, import_fresh.default)(this.headers, {
102
+ etag: res.getHeader("ETag"),
103
+ "last-modified": res.getHeader("Last-Modified")
114
104
  });
115
105
  }
116
106
  return false;
117
107
  }
118
-
119
- /* request property */
120
108
  get headers() {
121
109
  return this.req.headers;
122
110
  }
@@ -124,24 +112,24 @@ class ModernServerContext {
124
112
  return this.req.method;
125
113
  }
126
114
  get url() {
127
- return this.req.url || '';
115
+ return this.req.url || "";
128
116
  }
129
117
  set url(val) {
130
118
  this.req.url = val;
131
119
  }
132
120
  get host() {
133
- let host = this.getReqHeader('X-Forwarded-Host');
121
+ let host = this.getReqHeader("X-Forwarded-Host");
134
122
  if (!host) {
135
- host = this.getReqHeader('Host');
123
+ host = this.getReqHeader("Host");
136
124
  }
137
- return host.split(/\s*,\s*/, 1)[0] || '';
125
+ return host.split(/\s*,\s*/, 1)[0] || "";
138
126
  }
139
127
  get protocol() {
140
128
  if (this.req.socket.encrypted) {
141
- return 'https';
129
+ return "https";
142
130
  }
143
- const proto = this.getReqHeader('X-Forwarded-Proto');
144
- return proto ? proto.split(/\s*,\s*/, 1)[0] : 'http';
131
+ const proto = this.getReqHeader("X-Forwarded-Proto");
132
+ return proto ? proto.split(/\s*,\s*/, 1)[0] : "http";
145
133
  }
146
134
  get origin() {
147
135
  return `${this.protocol}://${this.host}`;
@@ -150,15 +138,14 @@ class ModernServerContext {
150
138
  return this.origin + this.url;
151
139
  }
152
140
  get parsedURL() {
153
- const url = new _url.URL(this.req.url, this.origin);
141
+ const url = new import_url.URL(this.req.url, this.origin);
154
142
  return url;
155
143
  }
156
144
  get path() {
157
145
  return this.parsedURL.pathname;
158
146
  }
159
147
  set path(p) {
160
- const url = new _url.URL(this.req.url, this.origin);
161
- // this should never happened
148
+ const url = new import_url.URL(this.req.url, this.origin);
162
149
  if (!url || !p) {
163
150
  return;
164
151
  }
@@ -170,31 +157,29 @@ class ModernServerContext {
170
157
  }
171
158
  get querystring() {
172
159
  if (!this.req) {
173
- return '';
160
+ return "";
174
161
  }
175
- return this.parsedURL.search.replace(/^\?/, '') || '';
162
+ return this.parsedURL.search.replace(/^\?/, "") || "";
176
163
  }
177
164
  get query() {
178
165
  const str = this.querystring;
179
- return _querystring.default.parse(str);
166
+ return import_querystring.default.parse(str);
180
167
  }
181
-
182
- /* response property */
183
168
  get status() {
184
169
  return this.res.statusCode;
185
170
  }
186
171
  set status(statusCode) {
187
172
  this.res.statusCode = statusCode;
188
173
  }
189
-
190
- /**
191
- * 判断链接是否已经关闭
192
- */
193
174
  resHasHandled() {
194
175
  return this.res.writableEnded;
195
176
  }
196
- error(dig, e = '') {
197
- this.logger.error(`Web Server Error - ${dig}, error = %s, req.url = %s, req.headers = %o`, e instanceof Error ? e.stack || e.message : e, this.path, (0, _utils.headersWithoutCookie)(this.headers));
177
+ error(dig, e = "") {
178
+ this.logger.error(
179
+ `Web Server Error - ${dig}, error = %s, req.url = %s, req.headers = %o`,
180
+ e instanceof Error ? e.stack || e.message : e,
181
+ this.path,
182
+ (0, import_utils.headersWithoutCookie)(this.headers)
183
+ );
198
184
  }
199
185
  }
200
- exports.ModernServerContext = ModernServerContext;