@modern-js/server 1.4.3 → 1.4.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 (144) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/js/modern/dev-tools/mock/index.js +1 -1
  3. package/dist/js/modern/dev-tools/socket-server.js +2 -2
  4. package/dist/js/modern/index.js +1 -1
  5. package/dist/js/modern/server/{dev-server/dev-server-split.js → dev-server-split.js} +0 -0
  6. package/dist/js/modern/server/{dev-server/dev-server.js → dev-server.js} +15 -14
  7. package/dist/js/modern/server/index.js +15 -138
  8. package/dist/js/modern/{libs/render/cache/type.js → types.js} +0 -0
  9. package/dist/js/node/dev-tools/mock/index.js +2 -2
  10. package/dist/js/node/dev-tools/socket-server.js +2 -3
  11. package/dist/js/node/index.js +2 -2
  12. package/dist/js/node/server/{dev-server/dev-server-split.js → dev-server-split.js} +0 -0
  13. package/dist/js/node/server/{dev-server/dev-server.js → dev-server.js} +18 -24
  14. package/dist/js/node/server/index.js +17 -152
  15. package/dist/js/node/{libs/render/cache/type.js → types.js} +0 -0
  16. package/dist/types/dev-tools/babel/register.d.ts +1 -1
  17. package/dist/types/dev-tools/dev-server-plugin.d.ts +1 -1
  18. package/dist/types/dev-tools/launch-editor/index.d.ts +1 -2
  19. package/dist/types/dev-tools/mock/getMockData.d.ts +1 -2
  20. package/dist/types/dev-tools/mock/index.d.ts +1 -2
  21. package/dist/types/dev-tools/socket-server.d.ts +1 -1
  22. package/dist/types/index.d.ts +4 -5
  23. package/dist/types/server/{dev-server/dev-server-split.d.ts → dev-server-split.d.ts} +5 -4
  24. package/dist/types/server/{dev-server/dev-server.d.ts → dev-server.d.ts} +4 -3
  25. package/dist/types/server/index.d.ts +4 -19
  26. package/dist/types/types.d.ts +28 -0
  27. package/modern.config.js +5 -1
  28. package/package.json +8 -40
  29. package/tests/server.test.ts +10 -3
  30. package/dist/js/modern/constants.js +0 -26
  31. package/dist/js/modern/libs/context/context.js +0 -180
  32. package/dist/js/modern/libs/context/index.js +0 -3
  33. package/dist/js/modern/libs/hook-api/route.js +0 -39
  34. package/dist/js/modern/libs/hook-api/template.js +0 -61
  35. package/dist/js/modern/libs/metrics.js +0 -12
  36. package/dist/js/modern/libs/proxy.js +0 -33
  37. package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +0 -70
  38. package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +0 -233
  39. package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +0 -53
  40. package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +0 -35
  41. package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +0 -121
  42. package/dist/js/modern/libs/render/cache/index.js +0 -74
  43. package/dist/js/modern/libs/render/cache/page-caches/index.js +0 -9
  44. package/dist/js/modern/libs/render/cache/page-caches/lru.js +0 -35
  45. package/dist/js/modern/libs/render/cache/spr.js +0 -280
  46. package/dist/js/modern/libs/render/cache/util.js +0 -79
  47. package/dist/js/modern/libs/render/index.js +0 -65
  48. package/dist/js/modern/libs/render/modern/browser-list.js +0 -7
  49. package/dist/js/modern/libs/render/modern/index.js +0 -42
  50. package/dist/js/modern/libs/render/reader.js +0 -112
  51. package/dist/js/modern/libs/render/ssr.js +0 -58
  52. package/dist/js/modern/libs/render/static.js +0 -46
  53. package/dist/js/modern/libs/render/type.js +0 -7
  54. package/dist/js/modern/libs/route/index.js +0 -68
  55. package/dist/js/modern/libs/route/matcher.js +0 -94
  56. package/dist/js/modern/libs/route/route.js +0 -24
  57. package/dist/js/modern/libs/serve-file.js +0 -28
  58. package/dist/js/modern/server/dev-server/index.js +0 -2
  59. package/dist/js/modern/server/modern-server-split.js +0 -81
  60. package/dist/js/modern/server/modern-server.js +0 -584
  61. package/dist/js/modern/type.js +0 -1
  62. package/dist/js/modern/utils.js +0 -112
  63. package/dist/js/node/constants.js +0 -36
  64. package/dist/js/node/libs/context/context.js +0 -194
  65. package/dist/js/node/libs/context/index.js +0 -18
  66. package/dist/js/node/libs/hook-api/route.js +0 -48
  67. package/dist/js/node/libs/hook-api/template.js +0 -69
  68. package/dist/js/node/libs/metrics.js +0 -18
  69. package/dist/js/node/libs/proxy.js +0 -44
  70. package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +0 -77
  71. package/dist/js/node/libs/render/cache/__tests__/cache.test.js +0 -238
  72. package/dist/js/node/libs/render/cache/__tests__/cacheable.js +0 -60
  73. package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +0 -42
  74. package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +0 -128
  75. package/dist/js/node/libs/render/cache/index.js +0 -86
  76. package/dist/js/node/libs/render/cache/page-caches/index.js +0 -17
  77. package/dist/js/node/libs/render/cache/page-caches/lru.js +0 -47
  78. package/dist/js/node/libs/render/cache/spr.js +0 -298
  79. package/dist/js/node/libs/render/cache/util.js +0 -105
  80. package/dist/js/node/libs/render/index.js +0 -91
  81. package/dist/js/node/libs/render/modern/browser-list.js +0 -14
  82. package/dist/js/node/libs/render/modern/index.js +0 -58
  83. package/dist/js/node/libs/render/reader.js +0 -139
  84. package/dist/js/node/libs/render/ssr.js +0 -76
  85. package/dist/js/node/libs/render/static.js +0 -62
  86. package/dist/js/node/libs/render/type.js +0 -14
  87. package/dist/js/node/libs/route/index.js +0 -83
  88. package/dist/js/node/libs/route/matcher.js +0 -108
  89. package/dist/js/node/libs/route/route.js +0 -33
  90. package/dist/js/node/libs/serve-file.js +0 -41
  91. package/dist/js/node/server/dev-server/index.js +0 -27
  92. package/dist/js/node/server/modern-server-split.js +0 -97
  93. package/dist/js/node/server/modern-server.js +0 -622
  94. package/dist/js/node/type.js +0 -5
  95. package/dist/js/node/utils.js +0 -143
  96. package/dist/types/constants.d.ts +0 -20
  97. package/dist/types/libs/context/context.d.ts +0 -61
  98. package/dist/types/libs/context/index.d.ts +0 -4
  99. package/dist/types/libs/hook-api/route.d.ts +0 -14
  100. package/dist/types/libs/hook-api/template.d.ts +0 -14
  101. package/dist/types/libs/metrics.d.ts +0 -3
  102. package/dist/types/libs/proxy.d.ts +0 -4
  103. package/dist/types/libs/render/cache/__tests__/cache.fun.test.d.ts +0 -1
  104. package/dist/types/libs/render/cache/__tests__/cache.test.d.ts +0 -1
  105. package/dist/types/libs/render/cache/__tests__/cacheable.d.ts +0 -62
  106. package/dist/types/libs/render/cache/__tests__/error-configuration.d.ts +0 -28
  107. package/dist/types/libs/render/cache/__tests__/matched-cache.d.ts +0 -124
  108. package/dist/types/libs/render/cache/index.d.ts +0 -6
  109. package/dist/types/libs/render/cache/page-caches/index.d.ts +0 -2
  110. package/dist/types/libs/render/cache/page-caches/lru.d.ts +0 -15
  111. package/dist/types/libs/render/cache/spr.d.ts +0 -24
  112. package/dist/types/libs/render/cache/type.d.ts +0 -48
  113. package/dist/types/libs/render/cache/util.d.ts +0 -17
  114. package/dist/types/libs/render/index.d.ts +0 -18
  115. package/dist/types/libs/render/modern/browser-list.d.ts +0 -1
  116. package/dist/types/libs/render/modern/index.d.ts +0 -3
  117. package/dist/types/libs/render/reader.d.ts +0 -18
  118. package/dist/types/libs/render/ssr.d.ts +0 -10
  119. package/dist/types/libs/render/static.d.ts +0 -3
  120. package/dist/types/libs/render/type.d.ts +0 -34
  121. package/dist/types/libs/route/index.d.ts +0 -15
  122. package/dist/types/libs/route/matcher.d.ts +0 -15
  123. package/dist/types/libs/route/route.d.ts +0 -14
  124. package/dist/types/libs/serve-file.d.ts +0 -8
  125. package/dist/types/server/dev-server/index.d.ts +0 -2
  126. package/dist/types/server/modern-server-split.d.ts +0 -26
  127. package/dist/types/server/modern-server.d.ts +0 -72
  128. package/dist/types/type.d.ts +0 -80
  129. package/dist/types/utils.d.ts +0 -19
  130. package/tests/context.test.ts +0 -52
  131. package/tests/fixtures/hosting-files/static/index.js +0 -1
  132. package/tests/fixtures/reader/index.ts +0 -3
  133. package/tests/fixtures/route-spec/dynamic.json +0 -13
  134. package/tests/fixtures/route-spec/index.json +0 -29
  135. package/tests/fixtures/ssr/bundle.js +0 -5
  136. package/tests/fixtures/static-dir/bar.html +0 -11
  137. package/tests/fixtures/static-dir/baz/index.html +0 -11
  138. package/tests/fixtures/static-dir/foo/index.html +0 -11
  139. package/tests/helper.ts +0 -8
  140. package/tests/hook.test.ts +0 -44
  141. package/tests/middleware.test.ts +0 -179
  142. package/tests/render.test.ts +0 -102
  143. package/tests/route.test.ts +0 -77
  144. package/tests/utils.test.ts +0 -106
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @modern-js/server
2
2
 
3
+ ## 1.4.4
4
+
5
+ ### Patch Changes
6
+
7
+ - 55e18278: chore: remove unused dependencies and devDependencies
8
+ - 02fb4146: support product server
9
+ - Updated dependencies [4c792f68]
10
+ - Updated dependencies [02fb4146]
11
+ - Updated dependencies [a7f42f48]
12
+ - @modern-js/utils@1.3.3
13
+ - @modern-js/prod-server@1.0.1
14
+
3
15
  ## 1.4.3
4
16
 
5
17
  ### Patch Changes
@@ -1,6 +1,6 @@
1
1
  import path from 'path';
2
2
  import { fs } from '@modern-js/utils';
3
- import { AGGRED_DIR } from "../../constants";
3
+ import { AGGRED_DIR } from '@modern-js/prod-server';
4
4
  import getMockData, { getMatched } from "./getMockData";
5
5
  export const createMockHandler = ({
6
6
  pwd
@@ -1,6 +1,5 @@
1
1
  import ws from 'ws';
2
2
  import { logger } from '@modern-js/utils';
3
- import { noop } from "../utils";
4
3
  export default class SocketServer {
5
4
  constructor(options) {
6
5
  this.wsServer = void 0;
@@ -41,7 +40,8 @@ export default class SocketServer {
41
40
  extWs.terminate();
42
41
  } else {
43
42
  extWs.isAlive = false;
44
- extWs.ping(noop);
43
+ extWs.ping(() => {// empty
44
+ });
45
45
  }
46
46
  });
47
47
  }, 30000);
@@ -1,4 +1,4 @@
1
- import { Server } from "./server";
1
+ import { DevServer as Server } from "./server";
2
2
  export { Server };
3
3
  export default (options => {
4
4
  if (options == null) {
@@ -9,16 +9,13 @@ import path from 'path';
9
9
  import { createServer as createHttpsServer } from 'https';
10
10
  import { API_DIR, HMR_SOCK_PATH, SERVER_DIR, SHARED_DIR } from '@modern-js/utils';
11
11
  import webpackDevMiddleware from 'webpack-dev-middleware';
12
- import { ModernServer } from "../modern-server";
13
- import { createMockHandler } from "../../dev-tools/mock";
14
- import { createProxyHandler } from "../../libs/proxy";
15
- import SocketServer from "../../dev-tools/socket-server";
16
- import DevServerPlugin from "../../dev-tools/dev-server-plugin";
17
- import { createLaunchEditorHandler } from "../../dev-tools/launch-editor";
18
- import { enableRegister } from "../../dev-tools/babel/register";
19
- import * as reader from "../../libs/render/reader";
20
- import Watcher from "../../dev-tools/watcher";
21
- import { AGGRED_DIR } from "../../constants";
12
+ import { createProxyHandler, ModernServer, AGGRED_DIR } from '@modern-js/prod-server';
13
+ import { createMockHandler } from "../dev-tools/mock";
14
+ import SocketServer from "../dev-tools/socket-server";
15
+ import DevServerPlugin from "../dev-tools/dev-server-plugin";
16
+ import { createLaunchEditorHandler } from "../dev-tools/launch-editor";
17
+ import { enableRegister } from "../dev-tools/babel/register";
18
+ import Watcher from "../dev-tools/watcher";
22
19
  const DEFAULT_DEV_OPTIONS = {
23
20
  client: {
24
21
  port: '8080',
@@ -37,8 +34,7 @@ const DEFAULT_DEV_OPTIONS = {
37
34
  };
38
35
  export class ModernDevServer extends ModernServer {
39
36
  constructor(options) {
40
- super(options); // set webpack compiler
41
-
37
+ super(options);
42
38
  this.devProxyHandler = null;
43
39
  this.mockHandler = null;
44
40
  this.dev = void 0;
@@ -46,6 +42,8 @@ export class ModernDevServer extends ModernServer {
46
42
  this.socketServer = void 0;
47
43
  this.watcher = void 0;
48
44
  this.devMiddleware = void 0;
45
+ this.workDir = this.pwd; // set webpack compiler
46
+
49
47
  this.compiler = options.compiler; // set dev server options, like webpack-dev-server
50
48
 
51
49
  this.dev = typeof options.dev === 'boolean' ? DEFAULT_DEV_OPTIONS : _objectSpread(_objectSpread({}, DEFAULT_DEV_OPTIONS), options.dev);
@@ -107,7 +105,7 @@ export class ModernDevServer extends ModernServer {
107
105
  this.router.reset(this.filterRoutes(options.routes || this.presetRoutes || []));
108
106
  this.cleanSSRCache(); // reset static file
109
107
 
110
- reader.updateFile();
108
+ this.reader.updateFile();
111
109
  this.runner.reset();
112
110
  }
113
111
 
@@ -143,13 +141,16 @@ export class ModernDevServer extends ModernServer {
143
141
  if (devHttpsOption) {
144
142
  const {
145
143
  genHttpsOptions
146
- } = require("../../dev-tools/https");
144
+ } = require("../dev-tools/https");
147
145
 
148
146
  const httpsOptions = await genHttpsOptions(devHttpsOption);
149
147
  return createHttpsServer(httpsOptions, handler);
150
148
  } else {
151
149
  return createServer(handler);
152
150
  }
151
+ }
152
+
153
+ warmupSSRBundle() {// empty
153
154
  } // set up plugin to each compiler
154
155
  // register hooks for each compilation, update socket stats if recompiled
155
156
  // start dev middleware
@@ -1,147 +1,24 @@
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; }
1
+ import { Server } from '@modern-js/prod-server';
2
+ import { ModernDevServer } from "./dev-server";
3
+ import { ModernAPIDevServer, ModernSSRDevServer } from "./dev-server-split";
2
4
 
3
- 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; }
4
-
5
- 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; }
6
-
7
- import path from 'path';
8
- import { serverManager, AppContext, ConfigContext } from '@modern-js/server-core';
9
- import { compatRequire, logger as defaultLogger } from '@modern-js/utils';
10
- import { initAppContext, initAppDir, loadUserConfig } from '@modern-js/core';
11
- import { metrics as defaultMetrics } from "../libs/metrics";
12
- import { ModernServer } from "./modern-server";
13
- import { ModernAPIServer, ModernSSRServer, ModernWebServer } from "./modern-server-split";
14
- export class Server {
15
- constructor(options) {
16
- this.options = void 0;
17
- this.server = void 0;
18
- this.app = void 0;
19
- this.runner = void 0;
20
- this.options = options;
21
- }
22
-
23
- getRequestHandler() {
24
- return (req, res, next) => {
25
- const requestHandler = this.server.getRequestHandler();
26
- return requestHandler(req, res, next);
27
- };
5
+ const createDevServer = options => {
6
+ if (options.apiOnly) {
7
+ return new ModernAPIDevServer(options);
8
+ } else if (options.ssrOnly) {
9
+ return new ModernSSRDevServer(options);
10
+ } else {
11
+ return new ModernDevServer(options);
28
12
  }
13
+ };
29
14
 
30
- ready(readyOptions = {}) {
31
- this.server.ready(readyOptions);
32
- }
33
-
34
- async init() {
35
- const {
36
- options
37
- } = this;
38
- options.logger = options.logger || defaultLogger;
39
- options.metrics = options.metrics || defaultMetrics; // initialize server
15
+ export class DevServer extends Server {
16
+ constructor(options) {
17
+ super(options);
40
18
 
41
19
  if (options.dev) {
42
- this.server = this.createDevServer();
43
- } else {
44
- this.server = this.createProdServer();
45
- } // check if https is configured when start dev server
46
-
47
-
48
- this.app = await this.server.createHTTPServer(this.getRequestHandler());
49
- this.runner = await this.createHookRunner(); // runner can only be used after server init
50
-
51
- await this.server.init(this.runner);
52
- return this;
53
- }
54
-
55
- listen(port = 8080, listener) {
56
- this.app.listen(process.env.PORT || port, () => {
57
- if (listener) {
58
- listener();
59
- }
60
-
61
- this.listener(this.app);
62
- });
63
- }
64
-
65
- listener(app) {
66
- this.server.onListening(app);
67
- }
68
-
69
- async close() {
70
- await this.server.close();
71
- await new Promise(resolve => this.app.close(() => {
72
- resolve();
73
- }));
74
- }
75
-
76
- createProdServer() {
77
- const {
78
- options
79
- } = this;
80
-
81
- if (options.apiOnly) {
82
- return new ModernAPIServer(options);
83
- } else if (options.ssrOnly) {
84
- return new ModernSSRServer(options);
85
- } else if (options.webOnly) {
86
- return new ModernWebServer(options);
87
- } else {
88
- return new ModernServer(options);
89
- }
90
- }
91
-
92
- createDevServer() {
93
- const {
94
- options
95
- } = this;
96
-
97
- const {
98
- ModernAPIDevServer,
99
- ModernSSRDevServer,
100
- ModernDevServer
101
- } = require("./dev-server");
102
-
103
- if (options.apiOnly) {
104
- return new ModernAPIDevServer(options);
105
- } else if (options.ssrOnly) {
106
- return new ModernSSRDevServer(options);
107
- } else {
108
- return new ModernDevServer(options);
20
+ this.serverImpl = createDevServer;
109
21
  }
110
22
  }
111
23
 
112
- async createHookRunner() {
113
- var _options$plugins;
114
-
115
- const {
116
- options
117
- } = this;
118
- serverManager.clear();
119
- (_options$plugins = options.plugins) === null || _options$plugins === void 0 ? void 0 : _options$plugins.forEach(p => {
120
- serverManager.usePlugin(compatRequire(p.pluginPath));
121
- });
122
- const appContext = await this.initAppContext();
123
- serverManager.run(() => {
124
- var _options$config$outpu;
125
-
126
- ConfigContext.set(this.options.config);
127
- AppContext.set(_objectSpread(_objectSpread({}, appContext), {}, {
128
- distDirectory: path.join(options.pwd, ((_options$config$outpu = options.config.output) === null || _options$config$outpu === void 0 ? void 0 : _options$config$outpu.path) || 'dist')
129
- }));
130
- });
131
- return serverManager.init({});
132
- }
133
-
134
- async initAppContext() {
135
- var _this$options$plugins;
136
-
137
- const appDirectory = await initAppDir();
138
- const loaded = await loadUserConfig(appDirectory);
139
- const plugins = (_this$options$plugins = this.options.plugins) === null || _this$options$plugins === void 0 ? void 0 : _this$options$plugins.map(p => ({
140
- server: p,
141
- cli: undefined
142
- }));
143
- const appContext = initAppContext(appDirectory, plugins || [], loaded.filePath);
144
- return appContext;
145
- }
146
-
147
24
  }
@@ -9,7 +9,7 @@ var _path = _interopRequireDefault(require("path"));
9
9
 
10
10
  var _utils = require("@modern-js/utils");
11
11
 
12
- var _constants = require("../../constants");
12
+ var _prodServer = require("@modern-js/prod-server");
13
13
 
14
14
  var _getMockData = _interopRequireWildcard(require("./getMockData"));
15
15
 
@@ -26,7 +26,7 @@ const createMockHandler = ({
26
26
  let filepath = '';
27
27
 
28
28
  for (const ext of exts) {
29
- const maybeMatch = _path.default.join(pwd, `${_constants.AGGRED_DIR.mock}/index${ext}`);
29
+ const maybeMatch = _path.default.join(pwd, `${_prodServer.AGGRED_DIR.mock}/index${ext}`);
30
30
 
31
31
  if (_utils.fs.existsSync(maybeMatch)) {
32
32
  filepath = maybeMatch;
@@ -9,8 +9,6 @@ var _ws = _interopRequireDefault(require("ws"));
9
9
 
10
10
  var _utils = require("@modern-js/utils");
11
11
 
12
- var _utils2 = require("../utils");
13
-
14
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
13
 
16
14
  class SocketServer {
@@ -53,7 +51,8 @@ class SocketServer {
53
51
  extWs.terminate();
54
52
  } else {
55
53
  extWs.isAlive = false;
56
- extWs.ping(_utils2.noop);
54
+ extWs.ping(() => {// empty
55
+ });
57
56
  }
58
57
  });
59
58
  }, 30000);
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  Object.defineProperty(exports, "Server", {
7
7
  enumerable: true,
8
8
  get: function () {
9
- return _server.Server;
9
+ return _server.DevServer;
10
10
  }
11
11
  });
12
12
  exports.default = void 0;
@@ -18,7 +18,7 @@ var _default = options => {
18
18
  throw new Error('can not start mserver without options');
19
19
  }
20
20
 
21
- const server = new _server.Server(options);
21
+ const server = new _server.DevServer(options);
22
22
  return server.init();
23
23
  };
24
24
 
@@ -15,29 +15,19 @@ var _utils = require("@modern-js/utils");
15
15
 
16
16
  var _webpackDevMiddleware = _interopRequireDefault(require("webpack-dev-middleware"));
17
17
 
18
- var _modernServer = require("../modern-server");
18
+ var _prodServer = require("@modern-js/prod-server");
19
19
 
20
- var _mock = require("../../dev-tools/mock");
20
+ var _mock = require("../dev-tools/mock");
21
21
 
22
- var _proxy = require("../../libs/proxy");
22
+ var _socketServer = _interopRequireDefault(require("../dev-tools/socket-server"));
23
23
 
24
- var _socketServer = _interopRequireDefault(require("../../dev-tools/socket-server"));
24
+ var _devServerPlugin = _interopRequireDefault(require("../dev-tools/dev-server-plugin"));
25
25
 
26
- var _devServerPlugin = _interopRequireDefault(require("../../dev-tools/dev-server-plugin"));
26
+ var _launchEditor = require("../dev-tools/launch-editor");
27
27
 
28
- var _launchEditor = require("../../dev-tools/launch-editor");
28
+ var _register = require("../dev-tools/babel/register");
29
29
 
30
- var _register = require("../../dev-tools/babel/register");
31
-
32
- var reader = _interopRequireWildcard(require("../../libs/render/reader"));
33
-
34
- var _watcher = _interopRequireDefault(require("../../dev-tools/watcher"));
35
-
36
- var _constants = require("../../constants");
37
-
38
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
39
-
40
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
30
+ var _watcher = _interopRequireDefault(require("../dev-tools/watcher"));
41
31
 
42
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
43
33
 
@@ -64,10 +54,9 @@ const DEFAULT_DEV_OPTIONS = {
64
54
  liveReload: true
65
55
  };
66
56
 
67
- class ModernDevServer extends _modernServer.ModernServer {
57
+ class ModernDevServer extends _prodServer.ModernServer {
68
58
  constructor(options) {
69
- super(options); // set webpack compiler
70
-
59
+ super(options);
71
60
  this.devProxyHandler = null;
72
61
  this.mockHandler = null;
73
62
  this.dev = void 0;
@@ -75,6 +64,8 @@ class ModernDevServer extends _modernServer.ModernServer {
75
64
  this.socketServer = void 0;
76
65
  this.watcher = void 0;
77
66
  this.devMiddleware = void 0;
67
+ this.workDir = this.pwd; // set webpack compiler
68
+
78
69
  this.compiler = options.compiler; // set dev server options, like webpack-dev-server
79
70
 
80
71
  this.dev = typeof options.dev === 'boolean' ? DEFAULT_DEV_OPTIONS : _objectSpread(_objectSpread({}, DEFAULT_DEV_OPTIONS), options.dev);
@@ -105,7 +96,7 @@ class ModernDevServer extends _modernServer.ModernServer {
105
96
  }
106
97
  }); // dev proxy handler, each proxy has own handler
107
98
 
108
- this.devProxyHandler = (0, _proxy.createProxyHandler)((_conf$tools = conf.tools) === null || _conf$tools === void 0 ? void 0 : (_conf$tools$devServer = _conf$tools.devServer) === null || _conf$tools$devServer === void 0 ? void 0 : _conf$tools$devServer.proxy);
99
+ this.devProxyHandler = (0, _prodServer.createProxyHandler)((_conf$tools = conf.tools) === null || _conf$tools === void 0 ? void 0 : (_conf$tools$devServer = _conf$tools.devServer) === null || _conf$tools$devServer === void 0 ? void 0 : _conf$tools$devServer.proxy);
109
100
 
110
101
  if (this.devProxyHandler) {
111
102
  this.devProxyHandler.forEach(handler => {
@@ -136,7 +127,7 @@ class ModernDevServer extends _modernServer.ModernServer {
136
127
  this.router.reset(this.filterRoutes(options.routes || this.presetRoutes || []));
137
128
  this.cleanSSRCache(); // reset static file
138
129
 
139
- reader.updateFile();
130
+ this.reader.updateFile();
140
131
  this.runner.reset();
141
132
  }
142
133
 
@@ -172,13 +163,16 @@ class ModernDevServer extends _modernServer.ModernServer {
172
163
  if (devHttpsOption) {
173
164
  const {
174
165
  genHttpsOptions
175
- } = require("../../dev-tools/https");
166
+ } = require("../dev-tools/https");
176
167
 
177
168
  const httpsOptions = await genHttpsOptions(devHttpsOption);
178
169
  return (0, _https.createServer)(httpsOptions, handler);
179
170
  } else {
180
171
  return (0, _http.createServer)(handler);
181
172
  }
173
+ }
174
+
175
+ warmupSSRBundle() {// empty
182
176
  } // set up plugin to each compiler
183
177
  // register hooks for each compilation, update socket stats if recompiled
184
178
  // start dev middleware
@@ -278,7 +272,7 @@ class ModernDevServer extends _modernServer.ModernServer {
278
272
  } = this;
279
273
  const {
280
274
  mock
281
- } = _constants.AGGRED_DIR;
275
+ } = _prodServer.AGGRED_DIR;
282
276
  const defaultWatched = [`${mock}/**/*`, `${_utils.SERVER_DIR}/**/*`, `${_utils.API_DIR}/**`, `${_utils.SHARED_DIR}/**/*`];
283
277
  const defaultWatchedPaths = defaultWatched.map(p => _path.default.normalize(_path.default.join(pwd, p)));
284
278
 
@@ -3,168 +3,33 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.Server = void 0;
6
+ exports.DevServer = void 0;
7
7
 
8
- var _path = _interopRequireDefault(require("path"));
8
+ var _prodServer = require("@modern-js/prod-server");
9
9
 
10
- var _serverCore = require("@modern-js/server-core");
10
+ var _devServer = require("./dev-server");
11
11
 
12
- var _utils = require("@modern-js/utils");
12
+ var _devServerSplit = require("./dev-server-split");
13
13
 
14
- var _core = require("@modern-js/core");
15
-
16
- var _metrics = require("../libs/metrics");
17
-
18
- var _modernServer = require("./modern-server");
19
-
20
- var _modernServerSplit = require("./modern-server-split");
21
-
22
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
- 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; }
25
-
26
- 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; }
27
-
28
- 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; }
29
-
30
- class Server {
31
- constructor(options) {
32
- this.options = void 0;
33
- this.server = void 0;
34
- this.app = void 0;
35
- this.runner = void 0;
36
- this.options = options;
37
- }
38
-
39
- getRequestHandler() {
40
- return (req, res, next) => {
41
- const requestHandler = this.server.getRequestHandler();
42
- return requestHandler(req, res, next);
43
- };
14
+ const createDevServer = options => {
15
+ if (options.apiOnly) {
16
+ return new _devServerSplit.ModernAPIDevServer(options);
17
+ } else if (options.ssrOnly) {
18
+ return new _devServerSplit.ModernSSRDevServer(options);
19
+ } else {
20
+ return new _devServer.ModernDevServer(options);
44
21
  }
22
+ };
45
23
 
46
- ready(readyOptions = {}) {
47
- this.server.ready(readyOptions);
48
- }
49
-
50
- async init() {
51
- const {
52
- options
53
- } = this;
54
- options.logger = options.logger || _utils.logger;
55
- options.metrics = options.metrics || _metrics.metrics; // initialize server
24
+ class DevServer extends _prodServer.Server {
25
+ constructor(options) {
26
+ super(options);
56
27
 
57
28
  if (options.dev) {
58
- this.server = this.createDevServer();
59
- } else {
60
- this.server = this.createProdServer();
61
- } // check if https is configured when start dev server
62
-
63
-
64
- this.app = await this.server.createHTTPServer(this.getRequestHandler());
65
- this.runner = await this.createHookRunner(); // runner can only be used after server init
66
-
67
- await this.server.init(this.runner);
68
- return this;
69
- }
70
-
71
- listen(port = 8080, listener) {
72
- this.app.listen(process.env.PORT || port, () => {
73
- if (listener) {
74
- listener();
75
- }
76
-
77
- this.listener(this.app);
78
- });
79
- }
80
-
81
- listener(app) {
82
- this.server.onListening(app);
83
- }
84
-
85
- async close() {
86
- await this.server.close();
87
- await new Promise(resolve => this.app.close(() => {
88
- resolve();
89
- }));
90
- }
91
-
92
- createProdServer() {
93
- const {
94
- options
95
- } = this;
96
-
97
- if (options.apiOnly) {
98
- return new _modernServerSplit.ModernAPIServer(options);
99
- } else if (options.ssrOnly) {
100
- return new _modernServerSplit.ModernSSRServer(options);
101
- } else if (options.webOnly) {
102
- return new _modernServerSplit.ModernWebServer(options);
103
- } else {
104
- return new _modernServer.ModernServer(options);
29
+ this.serverImpl = createDevServer;
105
30
  }
106
31
  }
107
32
 
108
- createDevServer() {
109
- const {
110
- options
111
- } = this;
112
-
113
- const {
114
- ModernAPIDevServer,
115
- ModernSSRDevServer,
116
- ModernDevServer
117
- } = require("./dev-server");
118
-
119
- if (options.apiOnly) {
120
- return new ModernAPIDevServer(options);
121
- } else if (options.ssrOnly) {
122
- return new ModernSSRDevServer(options);
123
- } else {
124
- return new ModernDevServer(options);
125
- }
126
- }
127
-
128
- async createHookRunner() {
129
- var _options$plugins;
130
-
131
- const {
132
- options
133
- } = this;
134
-
135
- _serverCore.serverManager.clear();
136
-
137
- (_options$plugins = options.plugins) === null || _options$plugins === void 0 ? void 0 : _options$plugins.forEach(p => {
138
- _serverCore.serverManager.usePlugin((0, _utils.compatRequire)(p.pluginPath));
139
- });
140
- const appContext = await this.initAppContext();
141
-
142
- _serverCore.serverManager.run(() => {
143
- var _options$config$outpu;
144
-
145
- _serverCore.ConfigContext.set(this.options.config);
146
-
147
- _serverCore.AppContext.set(_objectSpread(_objectSpread({}, appContext), {}, {
148
- distDirectory: _path.default.join(options.pwd, ((_options$config$outpu = options.config.output) === null || _options$config$outpu === void 0 ? void 0 : _options$config$outpu.path) || 'dist')
149
- }));
150
- });
151
-
152
- return _serverCore.serverManager.init({});
153
- }
154
-
155
- async initAppContext() {
156
- var _this$options$plugins;
157
-
158
- const appDirectory = await (0, _core.initAppDir)();
159
- const loaded = await (0, _core.loadUserConfig)(appDirectory);
160
- const plugins = (_this$options$plugins = this.options.plugins) === null || _this$options$plugins === void 0 ? void 0 : _this$options$plugins.map(p => ({
161
- server: p,
162
- cli: undefined
163
- }));
164
- const appContext = (0, _core.initAppContext)(appDirectory, plugins || [], loaded.filePath);
165
- return appContext;
166
- }
167
-
168
33
  }
169
34
 
170
- exports.Server = Server;
35
+ exports.DevServer = DevServer;
@@ -1,2 +1,2 @@
1
- import { ModernServerOptions } from '../../type';
1
+ import { ModernServerOptions } from '@modern-js/prod-server';
2
2
  export declare const enableRegister: (projectRoot: string, config: ModernServerOptions['config']) => any;
@@ -1,5 +1,5 @@
1
1
  import Webpack from 'webpack';
2
- import { DevServerOptions } from '../type';
2
+ import { DevServerOptions } from '../types';
3
3
  export default class DevServerPlugin {
4
4
  private readonly options;
5
5
  constructor(options: DevServerOptions);
@@ -1,3 +1,2 @@
1
- import { ModernServerContext } from '../../libs/context';
2
- import { NextFunction } from '../../type';
1
+ import { ModernServerContext, NextFunction } from '@modern-js/types';
3
2
  export declare const createLaunchEditorHandler: () => (ctx: ModernServerContext, next: NextFunction) => void;
@@ -1,7 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { IncomingMessage, ServerResponse } from 'http';
3
- import { NextFunction } from '../../type';
4
- import { ModernServerContext } from '../../libs/context';
3
+ import { ModernServerContext, NextFunction } from '@modern-js/types';
5
4
  export declare type MockConfig = Record<string, {
6
5
  data: any;
7
6
  } | ((req: IncomingMessage, res: ServerResponse, next: NextFunction) => Promise<void>)>;