@modern-js/prod-server 2.5.1-alpha.3 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/cjs/libs/context/context.js +13 -0
- package/dist/cjs/libs/hook-api/index.js +4 -0
- package/dist/cjs/libs/loadConfig.js +5 -0
- package/dist/cjs/libs/render/cache/__tests__/cache.fun.test.js +4 -0
- package/dist/cjs/libs/render/cache/page-caches/lru.js +4 -0
- package/dist/cjs/libs/render/cache/spr.js +5 -0
- package/dist/cjs/libs/render/cache/util.js +4 -0
- package/dist/cjs/libs/render/index.js +4 -0
- package/dist/cjs/libs/render/reader.js +9 -0
- package/dist/cjs/libs/render/ssr.js +16 -4
- package/dist/cjs/libs/render/static.js +4 -0
- package/dist/cjs/libs/route/index.js +4 -0
- package/dist/cjs/libs/route/matcher.js +4 -0
- package/dist/cjs/libs/serve-file.js +26 -19
- package/dist/cjs/server/index.js +32 -4
- package/dist/cjs/server/modern-server.js +19 -3
- package/dist/esm/libs/context/context.js +15 -6
- package/dist/esm/libs/render/cache/spr.js +1 -0
- package/dist/esm/libs/render/ssr.js +5 -5
- package/dist/esm/libs/route/index.js +4 -0
- package/dist/esm/libs/route/matcher.js +4 -0
- package/dist/esm/libs/serve-file.js +2 -1
- package/dist/esm/server/index.js +30 -7
- package/dist/esm/server/modern-server.js +17 -4
- package/dist/esm-node/libs/context/context.js +9 -0
- package/dist/esm-node/libs/loadConfig.js +1 -0
- package/dist/esm-node/libs/render/cache/spr.js +1 -0
- package/dist/esm-node/libs/render/reader.js +5 -0
- package/dist/esm-node/libs/render/ssr.js +12 -4
- package/dist/esm-node/libs/route/index.js +4 -0
- package/dist/esm-node/libs/route/matcher.js +4 -0
- package/dist/esm-node/libs/serve-file.js +22 -19
- package/dist/esm-node/server/index.js +28 -4
- package/dist/esm-node/server/modern-server.js +15 -3
- package/dist/types/libs/context/context.d.ts +1 -1
- package/dist/types/libs/render/ssr.d.ts +1 -0
- package/dist/types/type.d.ts +1 -8
- package/dist/types/utils.d.ts +1 -1
- package/package.json +9 -9
- package/dist/js/modern/constants.js +0 -35
- package/dist/js/modern/index.js +0 -18
- package/dist/js/modern/libs/context/context.js +0 -160
- package/dist/js/modern/libs/context/index.js +0 -6
- package/dist/js/modern/libs/hook-api/index.js +0 -134
- package/dist/js/modern/libs/hook-api/route.js +0 -20
- package/dist/js/modern/libs/hook-api/template.js +0 -73
- package/dist/js/modern/libs/loadConfig.js +0 -62
- package/dist/js/modern/libs/logger.js +0 -111
- package/dist/js/modern/libs/metrics.js +0 -11
- package/dist/js/modern/libs/proxy.js +0 -92
- package/dist/js/modern/libs/render/cache/__tests__/cache.fun.test.js +0 -114
- package/dist/js/modern/libs/render/cache/__tests__/cache.test.js +0 -254
- package/dist/js/modern/libs/render/cache/__tests__/cacheable.js +0 -47
- package/dist/js/modern/libs/render/cache/__tests__/error-configuration.js +0 -37
- package/dist/js/modern/libs/render/cache/__tests__/matched-cache.js +0 -91
- package/dist/js/modern/libs/render/cache/index.js +0 -115
- package/dist/js/modern/libs/render/cache/page-caches/index.js +0 -32
- package/dist/js/modern/libs/render/cache/page-caches/lru.js +0 -29
- package/dist/js/modern/libs/render/cache/spr.js +0 -248
- package/dist/js/modern/libs/render/cache/type.js +0 -0
- package/dist/js/modern/libs/render/cache/util.js +0 -102
- package/dist/js/modern/libs/render/index.js +0 -86
- package/dist/js/modern/libs/render/measure.js +0 -68
- package/dist/js/modern/libs/render/reader.js +0 -107
- package/dist/js/modern/libs/render/ssr.js +0 -100
- package/dist/js/modern/libs/render/static.js +0 -60
- package/dist/js/modern/libs/render/type.js +0 -9
- package/dist/js/modern/libs/route/index.js +0 -54
- package/dist/js/modern/libs/route/matcher.js +0 -87
- package/dist/js/modern/libs/route/route.js +0 -16
- package/dist/js/modern/libs/serve-file.js +0 -67
- package/dist/js/modern/server/index.js +0 -208
- package/dist/js/modern/server/modern-server-split.js +0 -74
- package/dist/js/modern/server/modern-server.js +0 -554
- package/dist/js/modern/type.js +0 -0
- package/dist/js/modern/utils.js +0 -136
- package/dist/js/modern/worker-server.js +0 -89
- package/dist/js/node/constants.js +0 -62
- package/dist/js/node/index.js +0 -44
- package/dist/js/node/libs/context/context.js +0 -189
- package/dist/js/node/libs/context/index.js +0 -30
- package/dist/js/node/libs/hook-api/index.js +0 -164
- package/dist/js/node/libs/hook-api/route.js +0 -43
- package/dist/js/node/libs/hook-api/template.js +0 -97
- package/dist/js/node/libs/loadConfig.js +0 -91
- package/dist/js/node/libs/logger.js +0 -133
- package/dist/js/node/libs/metrics.js +0 -34
- package/dist/js/node/libs/proxy.js +0 -114
- package/dist/js/node/libs/render/cache/__tests__/cache.fun.test.js +0 -115
- package/dist/js/node/libs/render/cache/__tests__/cache.test.js +0 -245
- package/dist/js/node/libs/render/cache/__tests__/cacheable.js +0 -70
- package/dist/js/node/libs/render/cache/__tests__/error-configuration.js +0 -60
- package/dist/js/node/libs/render/cache/__tests__/matched-cache.js +0 -114
- package/dist/js/node/libs/render/cache/index.js +0 -134
- package/dist/js/node/libs/render/cache/page-caches/index.js +0 -55
- package/dist/js/node/libs/render/cache/page-caches/lru.js +0 -58
- package/dist/js/node/libs/render/cache/spr.js +0 -270
- package/dist/js/node/libs/render/cache/type.js +0 -15
- package/dist/js/node/libs/render/cache/util.js +0 -138
- package/dist/js/node/libs/render/index.js +0 -115
- package/dist/js/node/libs/render/measure.js +0 -90
- package/dist/js/node/libs/render/reader.js +0 -140
- package/dist/js/node/libs/render/ssr.js +0 -123
- package/dist/js/node/libs/render/static.js +0 -89
- package/dist/js/node/libs/render/type.js +0 -32
- package/dist/js/node/libs/route/index.js +0 -78
- package/dist/js/node/libs/route/matcher.js +0 -106
- package/dist/js/node/libs/route/route.js +0 -39
- package/dist/js/node/libs/serve-file.js +0 -97
- package/dist/js/node/server/index.js +0 -219
- package/dist/js/node/server/modern-server-split.js +0 -97
- package/dist/js/node/server/modern-server.js +0 -559
- package/dist/js/node/type.js +0 -15
- package/dist/js/node/utils.js +0 -166
- package/dist/js/node/worker-server.js +0 -113
- package/dist/js/treeshaking/constants.js +0 -29
- package/dist/js/treeshaking/index.js +0 -13
- package/dist/js/treeshaking/libs/context/context.js +0 -274
- package/dist/js/treeshaking/libs/context/index.js +0 -5
- package/dist/js/treeshaking/libs/hook-api/index.js +0 -281
- package/dist/js/treeshaking/libs/hook-api/route.js +0 -68
- package/dist/js/treeshaking/libs/hook-api/template.js +0 -127
- package/dist/js/treeshaking/libs/loadConfig.js +0 -82
- package/dist/js/treeshaking/libs/logger.js +0 -205
- package/dist/js/treeshaking/libs/metrics.js +0 -6
- package/dist/js/treeshaking/libs/proxy.js +0 -244
- package/dist/js/treeshaking/libs/render/cache/__tests__/cache.fun.test.js +0 -291
- package/dist/js/treeshaking/libs/render/cache/__tests__/cache.test.js +0 -781
- package/dist/js/treeshaking/libs/render/cache/__tests__/cacheable.js +0 -67
- package/dist/js/treeshaking/libs/render/cache/__tests__/error-configuration.js +0 -45
- package/dist/js/treeshaking/libs/render/cache/__tests__/matched-cache.js +0 -147
- package/dist/js/treeshaking/libs/render/cache/index.js +0 -346
- package/dist/js/treeshaking/libs/render/cache/page-caches/index.js +0 -154
- package/dist/js/treeshaking/libs/render/cache/page-caches/lru.js +0 -84
- package/dist/js/treeshaking/libs/render/cache/spr.js +0 -492
- package/dist/js/treeshaking/libs/render/cache/type.js +0 -1
- package/dist/js/treeshaking/libs/render/cache/util.js +0 -280
- package/dist/js/treeshaking/libs/render/index.js +0 -234
- package/dist/js/treeshaking/libs/render/measure.js +0 -146
- package/dist/js/treeshaking/libs/render/reader.js +0 -339
- package/dist/js/treeshaking/libs/render/ssr.js +0 -223
- package/dist/js/treeshaking/libs/render/static.js +0 -216
- package/dist/js/treeshaking/libs/render/type.js +0 -7
- package/dist/js/treeshaking/libs/route/index.js +0 -130
- package/dist/js/treeshaking/libs/route/matcher.js +0 -143
- package/dist/js/treeshaking/libs/route/route.js +0 -40
- package/dist/js/treeshaking/libs/serve-file.js +0 -184
- package/dist/js/treeshaking/server/index.js +0 -505
- package/dist/js/treeshaking/server/modern-server-split.js +0 -360
- package/dist/js/treeshaking/server/modern-server.js +0 -1089
- package/dist/js/treeshaking/type.js +0 -1
- package/dist/js/treeshaking/utils.js +0 -147
- package/dist/js/treeshaking/worker-server.js +0 -233
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __defProps = Object.defineProperties;
|
|
3
|
-
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
4
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
7
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
8
|
-
var __spreadValues = (a, b) => {
|
|
9
|
-
for (var prop in b || (b = {}))
|
|
10
|
-
if (__hasOwnProp.call(b, prop))
|
|
11
|
-
__defNormalProp(a, prop, b[prop]);
|
|
12
|
-
if (__getOwnPropSymbols)
|
|
13
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
14
|
-
if (__propIsEnum.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
}
|
|
17
|
-
return a;
|
|
18
|
-
};
|
|
19
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
20
|
-
var __async = (__this, __arguments, generator) => {
|
|
21
|
-
return new Promise((resolve, reject) => {
|
|
22
|
-
var fulfilled = (value) => {
|
|
23
|
-
try {
|
|
24
|
-
step(generator.next(value));
|
|
25
|
-
} catch (e) {
|
|
26
|
-
reject(e);
|
|
27
|
-
}
|
|
28
|
-
};
|
|
29
|
-
var rejected = (value) => {
|
|
30
|
-
try {
|
|
31
|
-
step(generator.throw(value));
|
|
32
|
-
} catch (e) {
|
|
33
|
-
reject(e);
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
37
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
38
|
-
});
|
|
39
|
-
};
|
|
40
|
-
import path from "path";
|
|
41
|
-
import fs from "fs";
|
|
42
|
-
import {
|
|
43
|
-
Logger,
|
|
44
|
-
SHARED_DIR,
|
|
45
|
-
OUTPUT_CONFIG_FILE,
|
|
46
|
-
dotenv,
|
|
47
|
-
dotenvExpand,
|
|
48
|
-
INTERNAL_SERVER_PLUGINS
|
|
49
|
-
} from "@modern-js/utils";
|
|
50
|
-
import {
|
|
51
|
-
serverManager,
|
|
52
|
-
AppContext,
|
|
53
|
-
ConfigContext,
|
|
54
|
-
loadPlugins
|
|
55
|
-
} from "@modern-js/server-core";
|
|
56
|
-
import { metrics as defaultMetrics } from "../libs/metrics";
|
|
57
|
-
import {
|
|
58
|
-
loadConfig,
|
|
59
|
-
getServerConfigPath,
|
|
60
|
-
requireConfig
|
|
61
|
-
} from "../libs/loadConfig";
|
|
62
|
-
import { debug } from "../utils";
|
|
63
|
-
import { createProdServer } from "./modern-server-split";
|
|
64
|
-
class Server {
|
|
65
|
-
constructor(options) {
|
|
66
|
-
this.serverImpl = createProdServer;
|
|
67
|
-
options.logger = options.logger || new Logger({
|
|
68
|
-
level: "warn"
|
|
69
|
-
});
|
|
70
|
-
options.metrics = options.metrics || defaultMetrics;
|
|
71
|
-
this.options = options;
|
|
72
|
-
this.serverConfig = {};
|
|
73
|
-
}
|
|
74
|
-
init() {
|
|
75
|
-
return __async(this, null, function* () {
|
|
76
|
-
const { options } = this;
|
|
77
|
-
this.loadServerEnv(options);
|
|
78
|
-
this.initServerConfig(options);
|
|
79
|
-
yield this.injectContext(this.runner, options);
|
|
80
|
-
this.runner = yield this.createHookRunner();
|
|
81
|
-
yield this.initConfig(this.runner, options);
|
|
82
|
-
yield this.injectContext(this.runner, options);
|
|
83
|
-
this.server = this.serverImpl(options);
|
|
84
|
-
yield this.runPrepareHook(this.runner);
|
|
85
|
-
this.app = yield this.server.createHTTPServer(this.getRequestHandler());
|
|
86
|
-
yield this.server.onInit(this.runner, this.app);
|
|
87
|
-
return this;
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
runConfigHook(runner, serverConfig) {
|
|
91
|
-
const newServerConfig = runner.config(serverConfig || {});
|
|
92
|
-
return newServerConfig;
|
|
93
|
-
}
|
|
94
|
-
runPrepareHook(runner) {
|
|
95
|
-
return __async(this, null, function* () {
|
|
96
|
-
runner.prepare();
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
initServerConfig(options) {
|
|
100
|
-
const { pwd, serverConfigFile } = options;
|
|
101
|
-
const distDirectory = path.join(pwd, options.config.output.path || "dist");
|
|
102
|
-
const serverConfigPath = getServerConfigPath(
|
|
103
|
-
distDirectory,
|
|
104
|
-
serverConfigFile
|
|
105
|
-
);
|
|
106
|
-
const serverConfig = requireConfig(serverConfigPath);
|
|
107
|
-
this.serverConfig = serverConfig;
|
|
108
|
-
}
|
|
109
|
-
initConfig(runner, options) {
|
|
110
|
-
return __async(this, null, function* () {
|
|
111
|
-
const { pwd, config } = options;
|
|
112
|
-
const { serverConfig } = this;
|
|
113
|
-
const finalServerConfig = this.runConfigHook(runner, serverConfig);
|
|
114
|
-
const resolvedConfigPath = path.join(
|
|
115
|
-
pwd,
|
|
116
|
-
config.output.path || "dist",
|
|
117
|
-
OUTPUT_CONFIG_FILE
|
|
118
|
-
);
|
|
119
|
-
options.config = loadConfig({
|
|
120
|
-
cliConfig: config,
|
|
121
|
-
serverConfig: finalServerConfig,
|
|
122
|
-
resolvedConfigPath
|
|
123
|
-
});
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
close() {
|
|
127
|
-
return __async(this, null, function* () {
|
|
128
|
-
this.app.close();
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
listen(options, listener) {
|
|
132
|
-
const callback = () => {
|
|
133
|
-
listener == null ? void 0 : listener();
|
|
134
|
-
};
|
|
135
|
-
if (typeof options === "object") {
|
|
136
|
-
this.app.listen(options, callback);
|
|
137
|
-
} else {
|
|
138
|
-
this.app.listen(process.env.PORT || options || 8080, callback);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
getRequestHandler() {
|
|
142
|
-
return (req, res, next) => {
|
|
143
|
-
const requestHandler = this.server.getRequestHandler();
|
|
144
|
-
return requestHandler(req, res, next);
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
render(req, res, url) {
|
|
148
|
-
return __async(this, null, function* () {
|
|
149
|
-
return this.server.render(req, res, url);
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
createHookRunner() {
|
|
153
|
-
return __async(this, null, function* () {
|
|
154
|
-
serverManager.clear();
|
|
155
|
-
const { options } = this;
|
|
156
|
-
const {
|
|
157
|
-
internalPlugins = INTERNAL_SERVER_PLUGINS,
|
|
158
|
-
pwd,
|
|
159
|
-
plugins = []
|
|
160
|
-
} = options;
|
|
161
|
-
const serverPlugins = this.serverConfig.plugins || [];
|
|
162
|
-
const loadedPlugins = loadPlugins(pwd, [...serverPlugins, ...plugins], {
|
|
163
|
-
internalPlugins
|
|
164
|
-
});
|
|
165
|
-
debug("plugins", loadedPlugins);
|
|
166
|
-
loadedPlugins.forEach((p) => {
|
|
167
|
-
serverManager.usePlugin(p);
|
|
168
|
-
});
|
|
169
|
-
const hooksRunner = yield serverManager.init();
|
|
170
|
-
return hooksRunner;
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
injectContext(runner, options) {
|
|
174
|
-
return __async(this, null, function* () {
|
|
175
|
-
const appContext = this.initAppContext();
|
|
176
|
-
const { config, pwd } = options;
|
|
177
|
-
ConfigContext.set(config);
|
|
178
|
-
AppContext.set(__spreadProps(__spreadValues({}, appContext), {
|
|
179
|
-
distDirectory: path.join(pwd, config.output.path || "dist")
|
|
180
|
-
}));
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
initAppContext() {
|
|
184
|
-
const { options } = this;
|
|
185
|
-
const { pwd: appDirectory, plugins = [], config } = options;
|
|
186
|
-
const serverPlugins = plugins.map((p) => ({
|
|
187
|
-
server: p
|
|
188
|
-
}));
|
|
189
|
-
return {
|
|
190
|
-
appDirectory,
|
|
191
|
-
distDirectory: path.join(appDirectory, config.output.path || "dist"),
|
|
192
|
-
sharedDirectory: path.resolve(appDirectory, SHARED_DIR),
|
|
193
|
-
plugins: serverPlugins
|
|
194
|
-
};
|
|
195
|
-
}
|
|
196
|
-
loadServerEnv(options) {
|
|
197
|
-
const { pwd: appDirectory } = options;
|
|
198
|
-
const serverEnv = process.env.MODERN_ENV;
|
|
199
|
-
const serverEnvPath = path.resolve(appDirectory, `.env.${serverEnv}`);
|
|
200
|
-
if (serverEnv && fs.existsSync(serverEnvPath) && !fs.statSync(serverEnvPath).isDirectory()) {
|
|
201
|
-
const envConfig = dotenv.config({ path: serverEnvPath });
|
|
202
|
-
dotenvExpand(envConfig);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
export {
|
|
207
|
-
Server
|
|
208
|
-
};
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
2
|
-
var __reflectGet = Reflect.get;
|
|
3
|
-
var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
|
|
4
|
-
var __async = (__this, __arguments, generator) => {
|
|
5
|
-
return new Promise((resolve, reject) => {
|
|
6
|
-
var fulfilled = (value) => {
|
|
7
|
-
try {
|
|
8
|
-
step(generator.next(value));
|
|
9
|
-
} catch (e) {
|
|
10
|
-
reject(e);
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
var rejected = (value) => {
|
|
14
|
-
try {
|
|
15
|
-
step(generator.throw(value));
|
|
16
|
-
} catch (e) {
|
|
17
|
-
reject(e);
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
21
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
|
-
import { ModernServer } from "./modern-server";
|
|
25
|
-
class ModernSSRServer extends ModernServer {
|
|
26
|
-
prepareAPIHandler(_) {
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
handleAPI(context) {
|
|
30
|
-
return __async(this, null, function* () {
|
|
31
|
-
return this.render404(context);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
class ModernAPIServer extends ModernServer {
|
|
36
|
-
prepareWebHandler(_) {
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
filterRoutes(routes) {
|
|
40
|
-
return routes.filter((route) => route.isApi);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
class ModernWebServer extends ModernServer {
|
|
44
|
-
warmupSSRBundle() {
|
|
45
|
-
return __async(this, null, function* () {
|
|
46
|
-
return null;
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
handleAPI(context) {
|
|
50
|
-
return __async(this, null, function* () {
|
|
51
|
-
return this.render404(context);
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
handleWeb(context, route) {
|
|
55
|
-
return __async(this, null, function* () {
|
|
56
|
-
route.isSSR = false;
|
|
57
|
-
return __superGet(ModernWebServer.prototype, this, "handleWeb").call(this, context, route);
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
const createProdServer = (options) => {
|
|
62
|
-
if (options.apiOnly) {
|
|
63
|
-
return new ModernAPIServer(options);
|
|
64
|
-
} else if (options.ssrOnly) {
|
|
65
|
-
return new ModernSSRServer(options);
|
|
66
|
-
} else if (options.webOnly) {
|
|
67
|
-
return new ModernWebServer(options);
|
|
68
|
-
} else {
|
|
69
|
-
return new ModernServer(options);
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
export {
|
|
73
|
-
createProdServer
|
|
74
|
-
};
|