@modern-js/prod-server 2.6.0 → 2.7.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 +26 -0
- package/dist/cjs/index.js +2 -2
- package/dist/cjs/libs/{serve-file.js → serveFile.js} +6 -7
- package/dist/cjs/server/index.js +6 -4
- package/dist/cjs/server/{modern-server.js → modernServer.js} +25 -23
- package/dist/cjs/server/{modern-server-split.js → modernServerSplit.js} +8 -8
- package/dist/cjs/utils.js +4 -13
- package/dist/cjs/{worker-server.js → workerServer.js} +3 -3
- package/dist/esm/index.js +1 -1
- package/dist/esm/libs/{serve-file.js → serveFile.js} +4 -5
- package/dist/esm/server/index.js +5 -3
- package/dist/esm/server/{modern-server.js → modernServer.js} +18 -15
- package/dist/esm/server/{modern-server-split.js → modernServerSplit.js} +1 -1
- package/dist/esm/utils.js +4 -8
- package/dist/esm-node/index.js +1 -1
- package/dist/esm-node/libs/{serve-file.js → serveFile.js} +3 -4
- package/dist/esm-node/server/index.js +5 -3
- package/dist/esm-node/server/{modern-server.js → modernServer.js} +21 -19
- package/dist/esm-node/server/{modern-server-split.js → modernServerSplit.js} +1 -1
- package/dist/esm-node/utils.js +4 -12
- package/dist/types/index.d.ts +1 -1
- package/dist/types/libs/context/context.d.ts +1 -1
- package/dist/types/libs/{serve-file.d.ts → serveFile.d.ts} +1 -2
- package/dist/types/server/{modern-server.d.ts → modernServer.d.ts} +1 -1
- package/dist/types/type.d.ts +8 -1
- package/dist/types/utils.d.ts +2 -3
- package/package.json +12 -12
- /package/dist/esm/{worker-server.js → workerServer.js} +0 -0
- /package/dist/esm-node/{worker-server.js → workerServer.js} +0 -0
- /package/dist/types/server/{modern-server-split.d.ts → modernServerSplit.d.ts} +0 -0
- /package/dist/types/{worker-server.d.ts → workerServer.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
1
|
# @modern-js/prod-server
|
|
2
2
|
|
|
3
|
+
## 2.7.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 84bfb439b8: feat: support custom apiDir, lambdaDir and style of writing for bff
|
|
8
|
+
feat: 支持定制 api 目录,lambda 目录,bff 的写法
|
|
9
|
+
|
|
10
|
+
### Patch Changes
|
|
11
|
+
|
|
12
|
+
- 7fff9020e1: chore: make file naming consistent
|
|
13
|
+
|
|
14
|
+
chore: 统一文件命名为小驼峰格式
|
|
15
|
+
|
|
16
|
+
- 1eea234fdd: chore: make test files naming consistent
|
|
17
|
+
|
|
18
|
+
chore: 统一测试文件命名为小驼峰格式
|
|
19
|
+
|
|
20
|
+
- Updated dependencies [0f15fc597c]
|
|
21
|
+
- Updated dependencies [dcad887024]
|
|
22
|
+
- Updated dependencies [a4672f7c16]
|
|
23
|
+
- Updated dependencies [7fff9020e1]
|
|
24
|
+
- Updated dependencies [1eea234fdd]
|
|
25
|
+
- Updated dependencies [84bfb439b8]
|
|
26
|
+
- @modern-js/utils@2.7.0
|
|
27
|
+
- @modern-js/server-core@2.7.0
|
|
28
|
+
|
|
3
29
|
## 2.6.0
|
|
4
30
|
|
|
5
31
|
### Patch Changes
|
package/dist/cjs/index.js
CHANGED
|
@@ -18,14 +18,14 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var src_exports = {};
|
|
20
20
|
__export(src_exports, {
|
|
21
|
-
ModernServer: () =>
|
|
21
|
+
ModernServer: () => import_modernServer.ModernServer,
|
|
22
22
|
Server: () => import_server.Server,
|
|
23
23
|
createProxyHandler: () => import_proxy.createProxyHandler,
|
|
24
24
|
default: () => src_default
|
|
25
25
|
});
|
|
26
26
|
module.exports = __toCommonJS(src_exports);
|
|
27
27
|
var import_server = require("./server");
|
|
28
|
-
var
|
|
28
|
+
var import_modernServer = require("./server/modernServer");
|
|
29
29
|
var import_proxy = require("./libs/proxy");
|
|
30
30
|
__reExport(src_exports, require("./type"), module.exports);
|
|
31
31
|
__reExport(src_exports, require("./constants"), module.exports);
|
|
@@ -25,17 +25,17 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
25
25
|
mod
|
|
26
26
|
));
|
|
27
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
var
|
|
29
|
-
__export(
|
|
28
|
+
var serveFile_exports = {};
|
|
29
|
+
__export(serveFile_exports, {
|
|
30
30
|
createStaticFileHandler: () => createStaticFileHandler,
|
|
31
31
|
faviconFallbackHandler: () => faviconFallbackHandler
|
|
32
32
|
});
|
|
33
|
-
module.exports = __toCommonJS(
|
|
33
|
+
module.exports = __toCommonJS(serveFile_exports);
|
|
34
34
|
var import_serve_static = __toESM(require("serve-static"));
|
|
35
35
|
var import_utils = require("@modern-js/utils");
|
|
36
|
-
var import_utils2 = require("../utils");
|
|
37
36
|
const removedPrefix = (req, prefix) => {
|
|
38
|
-
|
|
37
|
+
const useLocalPrefix = !prefix.includes(".");
|
|
38
|
+
if (useLocalPrefix) {
|
|
39
39
|
req.url = req.url.slice(prefix.length);
|
|
40
40
|
return () => {
|
|
41
41
|
req.url = prefix + req.url;
|
|
@@ -53,11 +53,10 @@ const faviconFallbackHandler = (context, next) => {
|
|
|
53
53
|
next();
|
|
54
54
|
}
|
|
55
55
|
};
|
|
56
|
-
const createStaticFileHandler = (rules,
|
|
56
|
+
const createStaticFileHandler = (rules, assetPrefix = "/") => (
|
|
57
57
|
// eslint-disable-next-line consistent-return
|
|
58
58
|
async (context, next) => {
|
|
59
59
|
const { url: requestUrl, req, res } = context;
|
|
60
|
-
const { assetPrefix = "/" } = output;
|
|
61
60
|
const hitRule = rules.find((item) => {
|
|
62
61
|
if ((0, import_utils.isString)(item.path) && requestUrl.startsWith(item.path)) {
|
|
63
62
|
return true;
|
package/dist/cjs/server/index.js
CHANGED
|
@@ -37,10 +37,10 @@ var import_server_core = require("@modern-js/server-core");
|
|
|
37
37
|
var import_metrics = require("../libs/metrics");
|
|
38
38
|
var import_loadConfig = require("../libs/loadConfig");
|
|
39
39
|
var import_utils2 = require("../utils");
|
|
40
|
-
var
|
|
40
|
+
var import_modernServerSplit = require("./modernServerSplit");
|
|
41
41
|
class Server {
|
|
42
42
|
constructor(options) {
|
|
43
|
-
this.serverImpl =
|
|
43
|
+
this.serverImpl = import_modernServerSplit.createProdServer;
|
|
44
44
|
options.logger = options.logger || new import_utils.Logger({
|
|
45
45
|
level: "warn"
|
|
46
46
|
});
|
|
@@ -172,14 +172,16 @@ class Server {
|
|
|
172
172
|
}
|
|
173
173
|
initAppContext() {
|
|
174
174
|
const { options } = this;
|
|
175
|
-
const { pwd: appDirectory, plugins = [], config } = options;
|
|
175
|
+
const { pwd: appDirectory, plugins = [], config, appContext } = options;
|
|
176
176
|
const serverPlugins = plugins.map((p) => ({
|
|
177
177
|
server: p
|
|
178
178
|
}));
|
|
179
179
|
return {
|
|
180
180
|
appDirectory,
|
|
181
|
+
apiDirectory: appContext == null ? void 0 : appContext.apiDirectory,
|
|
182
|
+
lambdaDirectory: appContext == null ? void 0 : appContext.lambdaDirectory,
|
|
183
|
+
sharedDirectory: (appContext == null ? void 0 : appContext.sharedDirectory) || import_path.default.resolve(appDirectory, import_utils.SHARED_DIR),
|
|
181
184
|
distDirectory: import_path.default.join(appDirectory, config.output.path || "dist"),
|
|
182
|
-
sharedDirectory: import_path.default.resolve(appDirectory, import_utils.SHARED_DIR),
|
|
183
185
|
plugins: serverPlugins
|
|
184
186
|
};
|
|
185
187
|
}
|
|
@@ -25,17 +25,17 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
25
25
|
mod
|
|
26
26
|
));
|
|
27
27
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
28
|
-
var
|
|
29
|
-
__export(
|
|
28
|
+
var modernServer_exports = {};
|
|
29
|
+
__export(modernServer_exports, {
|
|
30
30
|
ModernServer: () => ModernServer
|
|
31
31
|
});
|
|
32
|
-
module.exports = __toCommonJS(
|
|
32
|
+
module.exports = __toCommonJS(modernServer_exports);
|
|
33
33
|
var import_http = require("http");
|
|
34
34
|
var import_path = __toESM(require("path"));
|
|
35
35
|
var import_utils = require("@modern-js/utils");
|
|
36
36
|
var import_route = require("../libs/route");
|
|
37
37
|
var import_render = require("../libs/render");
|
|
38
|
-
var
|
|
38
|
+
var import_serveFile = require("../libs/serveFile");
|
|
39
39
|
var import_utils2 = require("../utils");
|
|
40
40
|
var reader = __toESM(require("../libs/render/reader"));
|
|
41
41
|
var import_proxy = require("../libs/proxy");
|
|
@@ -43,7 +43,6 @@ var import_context = require("../libs/context");
|
|
|
43
43
|
var import_template = require("../libs/hook-api/template");
|
|
44
44
|
var import_constants = require("../constants");
|
|
45
45
|
var import_hook_api = require("../libs/hook-api");
|
|
46
|
-
const API_DIR = "./api";
|
|
47
46
|
const SERVER_DIR = "./server";
|
|
48
47
|
class ModernServer {
|
|
49
48
|
constructor({
|
|
@@ -78,7 +77,7 @@ class ModernServer {
|
|
|
78
77
|
}
|
|
79
78
|
// server prepare
|
|
80
79
|
async onInit(runner, app) {
|
|
81
|
-
var _a, _b;
|
|
80
|
+
var _a, _b, _c;
|
|
82
81
|
this.runner = runner;
|
|
83
82
|
const { distDir, staticGenerate, conf } = this;
|
|
84
83
|
(0, import_utils2.debug)("final server conf", this.conf);
|
|
@@ -97,19 +96,6 @@ class ModernServer {
|
|
|
97
96
|
this.warmupSSRBundle();
|
|
98
97
|
await this.prepareFrameHandler();
|
|
99
98
|
await this.prepareBeforeRouteHandler(usageRoutes, distDir);
|
|
100
|
-
const staticPathRegExp = (0, import_utils2.getStaticReg)(
|
|
101
|
-
this.conf.output || {},
|
|
102
|
-
this.conf.html
|
|
103
|
-
);
|
|
104
|
-
this.staticFileHandler = (0, import_serve_file.createStaticFileHandler)(
|
|
105
|
-
[
|
|
106
|
-
{
|
|
107
|
-
path: staticPathRegExp,
|
|
108
|
-
target: distDir
|
|
109
|
-
}
|
|
110
|
-
],
|
|
111
|
-
this.conf.output
|
|
112
|
-
);
|
|
113
99
|
const ssrConfig = (_b = this.conf.server) == null ? void 0 : _b.ssr;
|
|
114
100
|
const forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
|
|
115
101
|
this.routeRenderHandler = (0, import_render.createRenderHandler)({
|
|
@@ -118,8 +104,8 @@ class ModernServer {
|
|
|
118
104
|
forceCSR
|
|
119
105
|
});
|
|
120
106
|
await this.setupBeforeProdMiddleware();
|
|
121
|
-
this.addHandler(this.
|
|
122
|
-
this.addHandler(
|
|
107
|
+
this.addHandler(this.setupStaticMiddleware((_c = this.conf.output) == null ? void 0 : _c.assetPrefix));
|
|
108
|
+
this.addHandler(import_serveFile.faviconFallbackHandler);
|
|
123
109
|
this.addBeforeRouteHandler();
|
|
124
110
|
this.addHandler(this.routeHandler.bind(this));
|
|
125
111
|
this.compose();
|
|
@@ -212,13 +198,12 @@ class ModernServer {
|
|
|
212
198
|
const { getMiddlewares, ...collector } = (0, import_utils2.createMiddlewareCollecter)();
|
|
213
199
|
await runner.gather(collector);
|
|
214
200
|
const { api: pluginAPIExt, web: pluginWebExt } = getMiddlewares();
|
|
215
|
-
const apiDir = import_path.default.join(workDir, API_DIR);
|
|
216
201
|
const serverDir = import_path.default.join(workDir, SERVER_DIR);
|
|
217
202
|
if (await import_utils.fs.pathExists(import_path.default.join(serverDir)) && !onlyApi) {
|
|
218
203
|
const webExtension = (0, import_utils2.mergeExtension)(pluginWebExt);
|
|
219
204
|
this.frameWebHandler = await this.prepareWebHandler(webExtension);
|
|
220
205
|
}
|
|
221
|
-
if (
|
|
206
|
+
if (!onlyWeb) {
|
|
222
207
|
const apiExtension = (0, import_utils2.mergeExtension)(pluginAPIExt);
|
|
223
208
|
this.frameAPIHandler = await this.prepareAPIHandler(apiExtension);
|
|
224
209
|
}
|
|
@@ -243,6 +228,7 @@ class ModernServer {
|
|
|
243
228
|
pwd: workDir,
|
|
244
229
|
config: extension,
|
|
245
230
|
prefix: Array.isArray(prefix) ? prefix[0] : prefix,
|
|
231
|
+
httpMethodDecider: bff == null ? void 0 : bff.httpMethodDecider,
|
|
246
232
|
render: this.render.bind(this)
|
|
247
233
|
},
|
|
248
234
|
{ onLast: () => null }
|
|
@@ -258,6 +244,22 @@ class ModernServer {
|
|
|
258
244
|
this.addHandler(mid);
|
|
259
245
|
});
|
|
260
246
|
}
|
|
247
|
+
setupStaticMiddleware(prefix) {
|
|
248
|
+
const staticPathRegExp = (0, import_utils2.getStaticReg)(
|
|
249
|
+
this.conf.output,
|
|
250
|
+
this.conf.html,
|
|
251
|
+
prefix
|
|
252
|
+
);
|
|
253
|
+
return (0, import_serveFile.createStaticFileHandler)(
|
|
254
|
+
[
|
|
255
|
+
{
|
|
256
|
+
path: staticPathRegExp,
|
|
257
|
+
target: this.distDir
|
|
258
|
+
}
|
|
259
|
+
],
|
|
260
|
+
prefix
|
|
261
|
+
);
|
|
262
|
+
}
|
|
261
263
|
async handleAPI(context) {
|
|
262
264
|
const { req, res } = context;
|
|
263
265
|
if (!this.frameAPIHandler) {
|
|
@@ -15,13 +15,13 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
15
|
return to;
|
|
16
16
|
};
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var
|
|
19
|
-
__export(
|
|
18
|
+
var modernServerSplit_exports = {};
|
|
19
|
+
__export(modernServerSplit_exports, {
|
|
20
20
|
createProdServer: () => createProdServer
|
|
21
21
|
});
|
|
22
|
-
module.exports = __toCommonJS(
|
|
23
|
-
var
|
|
24
|
-
class ModernSSRServer extends
|
|
22
|
+
module.exports = __toCommonJS(modernServerSplit_exports);
|
|
23
|
+
var import_modernServer = require("./modernServer");
|
|
24
|
+
class ModernSSRServer extends import_modernServer.ModernServer {
|
|
25
25
|
prepareAPIHandler(_) {
|
|
26
26
|
return null;
|
|
27
27
|
}
|
|
@@ -29,7 +29,7 @@ class ModernSSRServer extends import_modern_server.ModernServer {
|
|
|
29
29
|
return this.render404(context);
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
class ModernAPIServer extends
|
|
32
|
+
class ModernAPIServer extends import_modernServer.ModernServer {
|
|
33
33
|
prepareWebHandler(_) {
|
|
34
34
|
return null;
|
|
35
35
|
}
|
|
@@ -37,7 +37,7 @@ class ModernAPIServer extends import_modern_server.ModernServer {
|
|
|
37
37
|
return routes.filter((route) => route.isApi);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
class ModernWebServer extends
|
|
40
|
+
class ModernWebServer extends import_modernServer.ModernServer {
|
|
41
41
|
async warmupSSRBundle() {
|
|
42
42
|
return null;
|
|
43
43
|
}
|
|
@@ -57,7 +57,7 @@ const createProdServer = (options) => {
|
|
|
57
57
|
} else if (options.webOnly) {
|
|
58
58
|
return new ModernWebServer(options);
|
|
59
59
|
} else {
|
|
60
|
-
return new
|
|
60
|
+
return new import_modernServer.ModernServer(options);
|
|
61
61
|
}
|
|
62
62
|
};
|
|
63
63
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/cjs/utils.js
CHANGED
|
@@ -25,8 +25,7 @@ __export(utils_exports, {
|
|
|
25
25
|
isRedirect: () => isRedirect,
|
|
26
26
|
mergeExtension: () => mergeExtension,
|
|
27
27
|
noop: () => noop,
|
|
28
|
-
prepareFavicons: () => prepareFavicons
|
|
29
|
-
useLocalPrefix: () => useLocalPrefix
|
|
28
|
+
prepareFavicons: () => prepareFavicons
|
|
30
29
|
});
|
|
31
30
|
module.exports = __toCommonJS(utils_exports);
|
|
32
31
|
var import_utils = require("@modern-js/utils");
|
|
@@ -89,16 +88,9 @@ const createMiddlewareCollecter = () => {
|
|
|
89
88
|
addAPIMiddleware
|
|
90
89
|
};
|
|
91
90
|
};
|
|
92
|
-
const
|
|
93
|
-
|
|
94
|
-
};
|
|
95
|
-
const getStaticReg = (output = {}, html = {}) => {
|
|
96
|
-
const {
|
|
97
|
-
distPath: { css: cssPath, js: jsPath, media: mediaPath } = {},
|
|
98
|
-
assetPrefix = "/"
|
|
99
|
-
} = output;
|
|
91
|
+
const getStaticReg = (output = {}, html = {}, prefix = "/") => {
|
|
92
|
+
const { distPath: { css: cssPath, js: jsPath, media: mediaPath } = {} } = output;
|
|
100
93
|
const { favicon, faviconByEntries } = html;
|
|
101
|
-
const prefix = useLocalPrefix(assetPrefix) ? assetPrefix : "";
|
|
102
94
|
const favicons = prepareFavicons(favicon, faviconByEntries);
|
|
103
95
|
const staticFiles = [cssPath, jsPath, mediaPath].filter((v) => Boolean(v));
|
|
104
96
|
const staticReg = ["static/", "upload/", ...staticFiles];
|
|
@@ -147,6 +139,5 @@ const isRedirect = (code) => {
|
|
|
147
139
|
isRedirect,
|
|
148
140
|
mergeExtension,
|
|
149
141
|
noop,
|
|
150
|
-
prepareFavicons
|
|
151
|
-
useLocalPrefix
|
|
142
|
+
prepareFavicons
|
|
152
143
|
});
|
|
@@ -15,12 +15,12 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
15
|
return to;
|
|
16
16
|
};
|
|
17
17
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var
|
|
19
|
-
__export(
|
|
18
|
+
var workerServer_exports = {};
|
|
19
|
+
__export(workerServer_exports, {
|
|
20
20
|
createHandler: () => createHandler,
|
|
21
21
|
handleUrl: () => handleUrl
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
23
|
+
module.exports = __toCommonJS(workerServer_exports);
|
|
24
24
|
var import_logger = require("./libs/logger");
|
|
25
25
|
var import_route = require("./libs/route");
|
|
26
26
|
var import_metrics = require("./libs/metrics");
|
package/dist/esm/index.js
CHANGED
|
@@ -124,9 +124,9 @@ var __generator = this && this.__generator || function(thisArg, body) {
|
|
|
124
124
|
};
|
|
125
125
|
import serve from "serve-static";
|
|
126
126
|
import { isString, isRegExp } from "@modern-js/utils";
|
|
127
|
-
import { useLocalPrefix } from "../utils";
|
|
128
127
|
var removedPrefix = function(req, prefix) {
|
|
129
|
-
|
|
128
|
+
var useLocalPrefix = !prefix.includes(".");
|
|
129
|
+
if (useLocalPrefix) {
|
|
130
130
|
req.url = req.url.slice(prefix.length);
|
|
131
131
|
return function() {
|
|
132
132
|
req.url = prefix + req.url;
|
|
@@ -144,14 +144,13 @@ var faviconFallbackHandler = function(context, next) {
|
|
|
144
144
|
}
|
|
145
145
|
};
|
|
146
146
|
var createStaticFileHandler = function(rules) {
|
|
147
|
-
var
|
|
147
|
+
var assetPrefix = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "/";
|
|
148
148
|
return function() {
|
|
149
149
|
var _ref = // eslint-disable-next-line consistent-return
|
|
150
150
|
_asyncToGenerator(function(context, next) {
|
|
151
|
-
var requestUrl, req, res,
|
|
151
|
+
var requestUrl, req, res, hitRule, resume;
|
|
152
152
|
return __generator(this, function(_state) {
|
|
153
153
|
requestUrl = context.url, req = context.req, res = context.res;
|
|
154
|
-
_output_assetPrefix = output.assetPrefix, assetPrefix = _output_assetPrefix === void 0 ? "/" : _output_assetPrefix;
|
|
155
154
|
hitRule = rules.find(function(item) {
|
|
156
155
|
if (isString(item.path) && requestUrl.startsWith(item.path)) {
|
|
157
156
|
return true;
|
package/dist/esm/server/index.js
CHANGED
|
@@ -225,7 +225,7 @@ import { serverManager, AppContext, ConfigContext, loadPlugins } from "@modern-j
|
|
|
225
225
|
import { metrics as defaultMetrics } from "../libs/metrics";
|
|
226
226
|
import { loadConfig, getServerConfigPath, requireConfig } from "../libs/loadConfig";
|
|
227
227
|
import { debug } from "../utils";
|
|
228
|
-
import { createProdServer } from "./
|
|
228
|
+
import { createProdServer } from "./modernServerSplit";
|
|
229
229
|
var Server = /*#__PURE__*/ function() {
|
|
230
230
|
"use strict";
|
|
231
231
|
function Server(options) {
|
|
@@ -496,7 +496,7 @@ var Server = /*#__PURE__*/ function() {
|
|
|
496
496
|
key: "initAppContext",
|
|
497
497
|
value: function initAppContext() {
|
|
498
498
|
var options = this.options;
|
|
499
|
-
var appDirectory = options.pwd, _options_plugins = options.plugins, plugins = _options_plugins === void 0 ? [] : _options_plugins, config = options.config;
|
|
499
|
+
var appDirectory = options.pwd, _options_plugins = options.plugins, plugins = _options_plugins === void 0 ? [] : _options_plugins, config = options.config, appContext = options.appContext;
|
|
500
500
|
var serverPlugins = plugins.map(function(p) {
|
|
501
501
|
return {
|
|
502
502
|
server: p
|
|
@@ -504,8 +504,10 @@ var Server = /*#__PURE__*/ function() {
|
|
|
504
504
|
});
|
|
505
505
|
return {
|
|
506
506
|
appDirectory: appDirectory,
|
|
507
|
+
apiDirectory: appContext === null || appContext === void 0 ? void 0 : appContext.apiDirectory,
|
|
508
|
+
lambdaDirectory: appContext === null || appContext === void 0 ? void 0 : appContext.lambdaDirectory,
|
|
509
|
+
sharedDirectory: (appContext === null || appContext === void 0 ? void 0 : appContext.sharedDirectory) || path.resolve(appDirectory, SHARED_DIR),
|
|
507
510
|
distDirectory: path.join(appDirectory, config.output.path || "dist"),
|
|
508
|
-
sharedDirectory: path.resolve(appDirectory, SHARED_DIR),
|
|
509
511
|
plugins: serverPlugins
|
|
510
512
|
};
|
|
511
513
|
}
|
|
@@ -201,7 +201,7 @@ import path from "path";
|
|
|
201
201
|
import { fs, isPromise, mime, ROUTE_SPEC_FILE } from "@modern-js/utils";
|
|
202
202
|
import { RouteMatchManager } from "../libs/route";
|
|
203
203
|
import { createRenderHandler } from "../libs/render";
|
|
204
|
-
import { createStaticFileHandler, faviconFallbackHandler } from "../libs/
|
|
204
|
+
import { createStaticFileHandler, faviconFallbackHandler } from "../libs/serveFile";
|
|
205
205
|
import { createErrorDocument, createMiddlewareCollecter, getStaticReg, mergeExtension, noop, debug, isRedirect } from "../utils";
|
|
206
206
|
import * as reader from "../libs/render/reader";
|
|
207
207
|
import { createProxyHandler } from "../libs/proxy";
|
|
@@ -209,7 +209,6 @@ import { createContext } from "../libs/context";
|
|
|
209
209
|
import { templateInjectableStream } from "../libs/hook-api/template";
|
|
210
210
|
import { AGGRED_DIR, ERROR_DIGEST, ERROR_PAGE_TEXT, RUN_MODE } from "../constants";
|
|
211
211
|
import { createAfterMatchContext, createAfterRenderContext, createMiddlewareContext } from "../libs/hook-api";
|
|
212
|
-
var API_DIR = "./api";
|
|
213
212
|
var SERVER_DIR = "./server";
|
|
214
213
|
var ModernServer = /*#__PURE__*/ function() {
|
|
215
214
|
"use strict";
|
|
@@ -232,7 +231,6 @@ var ModernServer = /*#__PURE__*/ function() {
|
|
|
232
231
|
_defineProperty(this, "runMode", void 0);
|
|
233
232
|
_defineProperty(this, "reader", reader);
|
|
234
233
|
_defineProperty(this, "proxyTarget", void 0);
|
|
235
|
-
_defineProperty(this, "staticFileHandler", void 0);
|
|
236
234
|
_defineProperty(this, "routeRenderHandler", void 0);
|
|
237
235
|
_defineProperty(this, "beforeRouteHandler", null);
|
|
238
236
|
_defineProperty(this, "frameWebHandler", null);
|
|
@@ -261,7 +259,7 @@ var ModernServer = /*#__PURE__*/ function() {
|
|
|
261
259
|
function onInit(runner, app) {
|
|
262
260
|
var _this = this;
|
|
263
261
|
return _asyncToGenerator(function() {
|
|
264
|
-
var _conf_bff, _this_conf_server, distDir, staticGenerate, conf, usageRoutes,
|
|
262
|
+
var _conf_bff, _this_conf_server, _this_conf_output, distDir, staticGenerate, conf, usageRoutes, ssrConfig, forceCSR;
|
|
265
263
|
return __generator(this, function(_state) {
|
|
266
264
|
switch(_state.label){
|
|
267
265
|
case 0:
|
|
@@ -293,13 +291,6 @@ var ModernServer = /*#__PURE__*/ function() {
|
|
|
293
291
|
];
|
|
294
292
|
case 2:
|
|
295
293
|
_state.sent();
|
|
296
|
-
staticPathRegExp = getStaticReg(_this.conf.output || {}, _this.conf.html);
|
|
297
|
-
_this.staticFileHandler = createStaticFileHandler([
|
|
298
|
-
{
|
|
299
|
-
path: staticPathRegExp,
|
|
300
|
-
target: distDir
|
|
301
|
-
}
|
|
302
|
-
], _this.conf.output);
|
|
303
294
|
ssrConfig = (_this_conf_server = _this.conf.server) === null || _this_conf_server === void 0 ? void 0 : _this_conf_server.ssr;
|
|
304
295
|
forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
|
|
305
296
|
_this.routeRenderHandler = createRenderHandler({
|
|
@@ -313,7 +304,7 @@ var ModernServer = /*#__PURE__*/ function() {
|
|
|
313
304
|
];
|
|
314
305
|
case 3:
|
|
315
306
|
_state.sent();
|
|
316
|
-
_this.addHandler(_this.
|
|
307
|
+
_this.addHandler(_this.setupStaticMiddleware((_this_conf_output = _this.conf.output) === null || _this_conf_output === void 0 ? void 0 : _this_conf_output.assetPrefix));
|
|
317
308
|
_this.addHandler(faviconFallbackHandler);
|
|
318
309
|
_this.addBeforeRouteHandler();
|
|
319
310
|
_this.addHandler(_this.routeHandler.bind(_this));
|
|
@@ -516,7 +507,7 @@ var ModernServer = /*#__PURE__*/ function() {
|
|
|
516
507
|
function prepareFrameHandler(options) {
|
|
517
508
|
var _this = this;
|
|
518
509
|
return _asyncToGenerator(function() {
|
|
519
|
-
var workDir, runner, _ref, onlyApi, onlyWeb, _createMiddlewareCollecter, getMiddlewares, collector, _getMiddlewares, pluginAPIExt, pluginWebExt,
|
|
510
|
+
var workDir, runner, _ref, onlyApi, onlyWeb, _createMiddlewareCollecter, getMiddlewares, collector, _getMiddlewares, pluginAPIExt, pluginWebExt, serverDir, webExtension, apiExtension;
|
|
520
511
|
return __generator(this, function(_state) {
|
|
521
512
|
switch(_state.label){
|
|
522
513
|
case 0:
|
|
@@ -532,7 +523,6 @@ var ModernServer = /*#__PURE__*/ function() {
|
|
|
532
523
|
case 1:
|
|
533
524
|
_state.sent();
|
|
534
525
|
_getMiddlewares = getMiddlewares(), pluginAPIExt = _getMiddlewares.api, pluginWebExt = _getMiddlewares.web;
|
|
535
|
-
apiDir = path.join(workDir, API_DIR);
|
|
536
526
|
serverDir = path.join(workDir, SERVER_DIR);
|
|
537
527
|
return [
|
|
538
528
|
4,
|
|
@@ -552,7 +542,7 @@ var ModernServer = /*#__PURE__*/ function() {
|
|
|
552
542
|
_this.frameWebHandler = _state.sent();
|
|
553
543
|
_state.label = 4;
|
|
554
544
|
case 4:
|
|
555
|
-
if (
|
|
545
|
+
if (!!onlyWeb) return [
|
|
556
546
|
3,
|
|
557
547
|
6
|
|
558
548
|
];
|
|
@@ -621,6 +611,7 @@ var ModernServer = /*#__PURE__*/ function() {
|
|
|
621
611
|
pwd: workDir,
|
|
622
612
|
config: extension,
|
|
623
613
|
prefix: Array.isArray(prefix) ? prefix[0] : prefix,
|
|
614
|
+
httpMethodDecider: bff === null || bff === void 0 ? void 0 : bff.httpMethodDecider,
|
|
624
615
|
render: _this.render.bind(_this)
|
|
625
616
|
}, {
|
|
626
617
|
onLast: function() {
|
|
@@ -665,6 +656,18 @@ var ModernServer = /*#__PURE__*/ function() {
|
|
|
665
656
|
})();
|
|
666
657
|
}
|
|
667
658
|
},
|
|
659
|
+
{
|
|
660
|
+
key: "setupStaticMiddleware",
|
|
661
|
+
value: function setupStaticMiddleware(prefix) {
|
|
662
|
+
var staticPathRegExp = getStaticReg(this.conf.output, this.conf.html, prefix);
|
|
663
|
+
return createStaticFileHandler([
|
|
664
|
+
{
|
|
665
|
+
path: staticPathRegExp,
|
|
666
|
+
target: this.distDir
|
|
667
|
+
}
|
|
668
|
+
], prefix);
|
|
669
|
+
}
|
|
670
|
+
},
|
|
668
671
|
{
|
|
669
672
|
key: "handleAPI",
|
|
670
673
|
value: function handleAPI(context) {
|
|
@@ -230,7 +230,7 @@ var __generator = this && this.__generator || function(thisArg, body) {
|
|
|
230
230
|
};
|
|
231
231
|
}
|
|
232
232
|
};
|
|
233
|
-
import { ModernServer } from "./
|
|
233
|
+
import { ModernServer } from "./modernServer";
|
|
234
234
|
var ModernSSRServer = /*#__PURE__*/ function(ModernServer) {
|
|
235
235
|
"use strict";
|
|
236
236
|
_inherits(ModernSSRServer, ModernServer);
|
package/dist/esm/utils.js
CHANGED
|
@@ -51,7 +51,7 @@ function _unsupportedIterableToArray(o, minLen) {
|
|
|
51
51
|
if (n === "Map" || n === "Set") return Array.from(n);
|
|
52
52
|
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);
|
|
53
53
|
}
|
|
54
|
-
import { createDebugger
|
|
54
|
+
import { createDebugger } from "@modern-js/utils";
|
|
55
55
|
var debug = createDebugger("prod-server");
|
|
56
56
|
var mergeExtension = function(users) {
|
|
57
57
|
var output = [];
|
|
@@ -85,14 +85,10 @@ var createMiddlewareCollecter = function() {
|
|
|
85
85
|
addAPIMiddleware: addAPIMiddleware
|
|
86
86
|
};
|
|
87
87
|
};
|
|
88
|
-
var useLocalPrefix = function(url) {
|
|
89
|
-
return isProd() && !url.includes(".");
|
|
90
|
-
};
|
|
91
88
|
var getStaticReg = function() {
|
|
92
|
-
var output = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, html = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
93
|
-
var tmp = output.distPath, _ref = tmp === void 0 ? {} : tmp, cssPath = _ref.css, jsPath = _ref.js, mediaPath = _ref.media
|
|
89
|
+
var output = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}, html = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, prefix = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "/";
|
|
90
|
+
var tmp = output.distPath, _ref = tmp === void 0 ? {} : tmp, cssPath = _ref.css, jsPath = _ref.js, mediaPath = _ref.media;
|
|
94
91
|
var favicon = html.favicon, faviconByEntries = html.faviconByEntries;
|
|
95
|
-
var prefix = useLocalPrefix(assetPrefix) ? assetPrefix : "";
|
|
96
92
|
var favicons = prepareFavicons(favicon, faviconByEntries);
|
|
97
93
|
var staticFiles = [
|
|
98
94
|
cssPath,
|
|
@@ -144,4 +140,4 @@ var isRedirect = function(code) {
|
|
|
144
140
|
308
|
|
145
141
|
].includes(code);
|
|
146
142
|
};
|
|
147
|
-
export { createErrorDocument, createMiddlewareCollecter, debug, getStaticReg, headersWithoutCookie, isRedirect, mergeExtension, noop, prepareFavicons
|
|
143
|
+
export { createErrorDocument, createMiddlewareCollecter, debug, getStaticReg, headersWithoutCookie, isRedirect, mergeExtension, noop, prepareFavicons };
|
package/dist/esm-node/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import serve from "serve-static";
|
|
2
2
|
import { isString, isRegExp } from "@modern-js/utils";
|
|
3
|
-
import { useLocalPrefix } from "../utils";
|
|
4
3
|
const removedPrefix = (req, prefix) => {
|
|
5
|
-
|
|
4
|
+
const useLocalPrefix = !prefix.includes(".");
|
|
5
|
+
if (useLocalPrefix) {
|
|
6
6
|
req.url = req.url.slice(prefix.length);
|
|
7
7
|
return () => {
|
|
8
8
|
req.url = prefix + req.url;
|
|
@@ -20,11 +20,10 @@ const faviconFallbackHandler = (context, next) => {
|
|
|
20
20
|
next();
|
|
21
21
|
}
|
|
22
22
|
};
|
|
23
|
-
const createStaticFileHandler = (rules,
|
|
23
|
+
const createStaticFileHandler = (rules, assetPrefix = "/") => (
|
|
24
24
|
// eslint-disable-next-line consistent-return
|
|
25
25
|
async (context, next) => {
|
|
26
26
|
const { url: requestUrl, req, res } = context;
|
|
27
|
-
const { assetPrefix = "/" } = output;
|
|
28
27
|
const hitRule = rules.find((item) => {
|
|
29
28
|
if (isString(item.path) && requestUrl.startsWith(item.path)) {
|
|
30
29
|
return true;
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
requireConfig
|
|
22
22
|
} from "../libs/loadConfig";
|
|
23
23
|
import { debug } from "../utils";
|
|
24
|
-
import { createProdServer } from "./
|
|
24
|
+
import { createProdServer } from "./modernServerSplit";
|
|
25
25
|
class Server {
|
|
26
26
|
constructor(options) {
|
|
27
27
|
this.serverImpl = createProdServer;
|
|
@@ -156,14 +156,16 @@ class Server {
|
|
|
156
156
|
}
|
|
157
157
|
initAppContext() {
|
|
158
158
|
const { options } = this;
|
|
159
|
-
const { pwd: appDirectory, plugins = [], config } = options;
|
|
159
|
+
const { pwd: appDirectory, plugins = [], config, appContext } = options;
|
|
160
160
|
const serverPlugins = plugins.map((p) => ({
|
|
161
161
|
server: p
|
|
162
162
|
}));
|
|
163
163
|
return {
|
|
164
164
|
appDirectory,
|
|
165
|
+
apiDirectory: appContext == null ? void 0 : appContext.apiDirectory,
|
|
166
|
+
lambdaDirectory: appContext == null ? void 0 : appContext.lambdaDirectory,
|
|
167
|
+
sharedDirectory: (appContext == null ? void 0 : appContext.sharedDirectory) || path.resolve(appDirectory, SHARED_DIR),
|
|
165
168
|
distDirectory: path.join(appDirectory, config.output.path || "dist"),
|
|
166
|
-
sharedDirectory: path.resolve(appDirectory, SHARED_DIR),
|
|
167
169
|
plugins: serverPlugins
|
|
168
170
|
};
|
|
169
171
|
}
|
|
@@ -8,7 +8,7 @@ import { createRenderHandler } from "../libs/render";
|
|
|
8
8
|
import {
|
|
9
9
|
createStaticFileHandler,
|
|
10
10
|
faviconFallbackHandler
|
|
11
|
-
} from "../libs/
|
|
11
|
+
} from "../libs/serveFile";
|
|
12
12
|
import {
|
|
13
13
|
createErrorDocument,
|
|
14
14
|
createMiddlewareCollecter,
|
|
@@ -33,7 +33,6 @@ import {
|
|
|
33
33
|
createAfterRenderContext,
|
|
34
34
|
createMiddlewareContext
|
|
35
35
|
} from "../libs/hook-api";
|
|
36
|
-
const API_DIR = "./api";
|
|
37
36
|
const SERVER_DIR = "./server";
|
|
38
37
|
class ModernServer {
|
|
39
38
|
constructor({
|
|
@@ -68,7 +67,7 @@ class ModernServer {
|
|
|
68
67
|
}
|
|
69
68
|
// server prepare
|
|
70
69
|
async onInit(runner, app) {
|
|
71
|
-
var _a, _b;
|
|
70
|
+
var _a, _b, _c;
|
|
72
71
|
this.runner = runner;
|
|
73
72
|
const { distDir, staticGenerate, conf } = this;
|
|
74
73
|
debug("final server conf", this.conf);
|
|
@@ -87,19 +86,6 @@ class ModernServer {
|
|
|
87
86
|
this.warmupSSRBundle();
|
|
88
87
|
await this.prepareFrameHandler();
|
|
89
88
|
await this.prepareBeforeRouteHandler(usageRoutes, distDir);
|
|
90
|
-
const staticPathRegExp = getStaticReg(
|
|
91
|
-
this.conf.output || {},
|
|
92
|
-
this.conf.html
|
|
93
|
-
);
|
|
94
|
-
this.staticFileHandler = createStaticFileHandler(
|
|
95
|
-
[
|
|
96
|
-
{
|
|
97
|
-
path: staticPathRegExp,
|
|
98
|
-
target: distDir
|
|
99
|
-
}
|
|
100
|
-
],
|
|
101
|
-
this.conf.output
|
|
102
|
-
);
|
|
103
89
|
const ssrConfig = (_b = this.conf.server) == null ? void 0 : _b.ssr;
|
|
104
90
|
const forceCSR = typeof ssrConfig === "object" ? ssrConfig.forceCSR : false;
|
|
105
91
|
this.routeRenderHandler = createRenderHandler({
|
|
@@ -108,7 +94,7 @@ class ModernServer {
|
|
|
108
94
|
forceCSR
|
|
109
95
|
});
|
|
110
96
|
await this.setupBeforeProdMiddleware();
|
|
111
|
-
this.addHandler(this.
|
|
97
|
+
this.addHandler(this.setupStaticMiddleware((_c = this.conf.output) == null ? void 0 : _c.assetPrefix));
|
|
112
98
|
this.addHandler(faviconFallbackHandler);
|
|
113
99
|
this.addBeforeRouteHandler();
|
|
114
100
|
this.addHandler(this.routeHandler.bind(this));
|
|
@@ -202,13 +188,12 @@ class ModernServer {
|
|
|
202
188
|
const { getMiddlewares, ...collector } = createMiddlewareCollecter();
|
|
203
189
|
await runner.gather(collector);
|
|
204
190
|
const { api: pluginAPIExt, web: pluginWebExt } = getMiddlewares();
|
|
205
|
-
const apiDir = path.join(workDir, API_DIR);
|
|
206
191
|
const serverDir = path.join(workDir, SERVER_DIR);
|
|
207
192
|
if (await fs.pathExists(path.join(serverDir)) && !onlyApi) {
|
|
208
193
|
const webExtension = mergeExtension(pluginWebExt);
|
|
209
194
|
this.frameWebHandler = await this.prepareWebHandler(webExtension);
|
|
210
195
|
}
|
|
211
|
-
if (
|
|
196
|
+
if (!onlyWeb) {
|
|
212
197
|
const apiExtension = mergeExtension(pluginAPIExt);
|
|
213
198
|
this.frameAPIHandler = await this.prepareAPIHandler(apiExtension);
|
|
214
199
|
}
|
|
@@ -233,6 +218,7 @@ class ModernServer {
|
|
|
233
218
|
pwd: workDir,
|
|
234
219
|
config: extension,
|
|
235
220
|
prefix: Array.isArray(prefix) ? prefix[0] : prefix,
|
|
221
|
+
httpMethodDecider: bff == null ? void 0 : bff.httpMethodDecider,
|
|
236
222
|
render: this.render.bind(this)
|
|
237
223
|
},
|
|
238
224
|
{ onLast: () => null }
|
|
@@ -248,6 +234,22 @@ class ModernServer {
|
|
|
248
234
|
this.addHandler(mid);
|
|
249
235
|
});
|
|
250
236
|
}
|
|
237
|
+
setupStaticMiddleware(prefix) {
|
|
238
|
+
const staticPathRegExp = getStaticReg(
|
|
239
|
+
this.conf.output,
|
|
240
|
+
this.conf.html,
|
|
241
|
+
prefix
|
|
242
|
+
);
|
|
243
|
+
return createStaticFileHandler(
|
|
244
|
+
[
|
|
245
|
+
{
|
|
246
|
+
path: staticPathRegExp,
|
|
247
|
+
target: this.distDir
|
|
248
|
+
}
|
|
249
|
+
],
|
|
250
|
+
prefix
|
|
251
|
+
);
|
|
252
|
+
}
|
|
251
253
|
async handleAPI(context) {
|
|
252
254
|
const { req, res } = context;
|
|
253
255
|
if (!this.frameAPIHandler) {
|
package/dist/esm-node/utils.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createDebugger
|
|
1
|
+
import { createDebugger } from "@modern-js/utils";
|
|
2
2
|
const debug = createDebugger("prod-server");
|
|
3
3
|
const mergeExtension = (users) => {
|
|
4
4
|
const output = [];
|
|
@@ -58,16 +58,9 @@ const createMiddlewareCollecter = () => {
|
|
|
58
58
|
addAPIMiddleware
|
|
59
59
|
};
|
|
60
60
|
};
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
};
|
|
64
|
-
const getStaticReg = (output = {}, html = {}) => {
|
|
65
|
-
const {
|
|
66
|
-
distPath: { css: cssPath, js: jsPath, media: mediaPath } = {},
|
|
67
|
-
assetPrefix = "/"
|
|
68
|
-
} = output;
|
|
61
|
+
const getStaticReg = (output = {}, html = {}, prefix = "/") => {
|
|
62
|
+
const { distPath: { css: cssPath, js: jsPath, media: mediaPath } = {} } = output;
|
|
69
63
|
const { favicon, faviconByEntries } = html;
|
|
70
|
-
const prefix = useLocalPrefix(assetPrefix) ? assetPrefix : "";
|
|
71
64
|
const favicons = prepareFavicons(favicon, faviconByEntries);
|
|
72
65
|
const staticFiles = [cssPath, jsPath, mediaPath].filter((v) => Boolean(v));
|
|
73
66
|
const staticReg = ["static/", "upload/", ...staticFiles];
|
|
@@ -115,6 +108,5 @@ export {
|
|
|
115
108
|
isRedirect,
|
|
116
109
|
mergeExtension,
|
|
117
110
|
noop,
|
|
118
|
-
prepareFavicons
|
|
119
|
-
useLocalPrefix
|
|
111
|
+
prepareFavicons
|
|
120
112
|
};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ModernServerOptions } from './type';
|
|
|
2
2
|
import { Server } from './server';
|
|
3
3
|
export { Server };
|
|
4
4
|
export type { ServerConfig } from '@modern-js/server-core';
|
|
5
|
-
export { ModernServer } from './server/
|
|
5
|
+
export { ModernServer } from './server/modernServer';
|
|
6
6
|
export { createProxyHandler } from './libs/proxy';
|
|
7
7
|
export * from './type';
|
|
8
8
|
export * from './constants';
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
/// <reference types="node" />
|
|
4
4
|
/// <reference types="node" />
|
|
5
5
|
/// <reference types="node/http" />
|
|
6
|
-
/// <reference types=".dts-temp/
|
|
6
|
+
/// <reference types=".dts-temp/NtW8DT-FXC5GraMEoP2PI/src/type" />
|
|
7
7
|
import { IncomingMessage, ServerResponse } from 'http';
|
|
8
8
|
import { URL } from 'url';
|
|
9
9
|
import qs from 'querystring';
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ServerOptions } from '@modern-js/server-core';
|
|
2
1
|
import type { ModernServerContext } from '@modern-js/types';
|
|
3
2
|
import { NextFunction, ModernServerHandler } from '../type';
|
|
4
3
|
type Rule = {
|
|
@@ -6,5 +5,5 @@ type Rule = {
|
|
|
6
5
|
target: string;
|
|
7
6
|
};
|
|
8
7
|
export declare const faviconFallbackHandler: ModernServerHandler;
|
|
9
|
-
export declare const createStaticFileHandler: (rules: Rule[],
|
|
8
|
+
export declare const createStaticFileHandler: (rules: Rule[], assetPrefix?: string) => (context: ModernServerContext, next: NextFunction) => Promise<void>;
|
|
10
9
|
export {};
|
|
@@ -22,7 +22,6 @@ export declare class ModernServer implements ModernServerInterface {
|
|
|
22
22
|
protected readonly runMode: string;
|
|
23
23
|
protected reader: typeof reader;
|
|
24
24
|
protected readonly proxyTarget: ModernServerOptions['proxyTarget'];
|
|
25
|
-
private staticFileHandler;
|
|
26
25
|
private routeRenderHandler;
|
|
27
26
|
private beforeRouteHandler;
|
|
28
27
|
private frameWebHandler;
|
|
@@ -63,6 +62,7 @@ export declare class ModernServer implements ModernServerInterface {
|
|
|
63
62
|
protected prepareAPIHandler(extension: APIServerStartInput['config']): Promise<Adapter>;
|
|
64
63
|
protected filterRoutes(routes: ModernRouteInterface[]): ServerRoute[];
|
|
65
64
|
protected setupBeforeProdMiddleware(): Promise<void>;
|
|
65
|
+
protected setupStaticMiddleware(prefix?: string): (context: ModernServerContext, next: NextFunction) => Promise<void>;
|
|
66
66
|
protected handleAPI(context: ModernServerContext): Promise<void>;
|
|
67
67
|
protected handleWeb(context: ModernServerContext, route: ModernRoute): Promise<import("../type").RenderResult | null>;
|
|
68
68
|
protected proxy(): Promise<any>;
|
package/dist/types/type.d.ts
CHANGED
|
@@ -26,7 +26,14 @@ export type ModernServerOptions = {
|
|
|
26
26
|
ssrOnly?: boolean;
|
|
27
27
|
webOnly?: boolean;
|
|
28
28
|
runMode?: string;
|
|
29
|
-
|
|
29
|
+
appContext?: {
|
|
30
|
+
appDirectory?: string;
|
|
31
|
+
sharedDirectory: string;
|
|
32
|
+
apiDirectory: string;
|
|
33
|
+
lambdaDirectory: string;
|
|
34
|
+
};
|
|
35
|
+
serverConfigFile?: string;
|
|
36
|
+
proxyTarget?: any;
|
|
30
37
|
};
|
|
31
38
|
export type RenderResult = {
|
|
32
39
|
content: string | Buffer;
|
package/dist/types/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
/// <reference types="node/http" />
|
|
3
|
-
/// <reference types=".dts-temp/
|
|
3
|
+
/// <reference types=".dts-temp/NtW8DT-FXC5GraMEoP2PI/src/type" />
|
|
4
4
|
import { IncomingMessage } from 'http';
|
|
5
5
|
import type { OutputNormalizedConfig, HtmlNormalizedConfig } from '@modern-js/server-core';
|
|
6
6
|
export declare const debug: any;
|
|
@@ -18,8 +18,7 @@ export declare const createMiddlewareCollecter: () => {
|
|
|
18
18
|
addWebMiddleware: (input: any) => void;
|
|
19
19
|
addAPIMiddleware: (input: any) => void;
|
|
20
20
|
};
|
|
21
|
-
export declare const
|
|
22
|
-
export declare const getStaticReg: (output?: OutputNormalizedConfig, html?: HtmlNormalizedConfig) => RegExp;
|
|
21
|
+
export declare const getStaticReg: (output?: OutputNormalizedConfig, html?: HtmlNormalizedConfig, prefix?: string) => RegExp;
|
|
23
22
|
export declare const prepareFavicons: (favicon: string | undefined, faviconByEntries?: Record<string, string | undefined>) => string[];
|
|
24
23
|
export declare const headersWithoutCookie: (headers: IncomingMessage['headers']) => import("http").IncomingHttpHeaders;
|
|
25
24
|
export declare const isRedirect: (code: number) => boolean;
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"modern",
|
|
12
12
|
"modern.js"
|
|
13
13
|
],
|
|
14
|
-
"version": "2.
|
|
14
|
+
"version": "2.7.0",
|
|
15
15
|
"jsnext:source": "./src/index.ts",
|
|
16
16
|
"types": "./dist/types/index.d.ts",
|
|
17
17
|
"main": "./dist/cjs/index.js",
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
},
|
|
28
28
|
"./worker": {
|
|
29
29
|
"node": {
|
|
30
|
-
"jsnext:source": "./src/
|
|
31
|
-
"import": "./dist/esm-node/
|
|
32
|
-
"require": "./dist/cjs/
|
|
30
|
+
"jsnext:source": "./src/workerServer.ts",
|
|
31
|
+
"import": "./dist/esm-node/workerServer.js",
|
|
32
|
+
"require": "./dist/cjs/workerServer.js"
|
|
33
33
|
},
|
|
34
|
-
"default": "./dist/esm/
|
|
34
|
+
"default": "./dist/esm/workerServer.js"
|
|
35
35
|
}
|
|
36
36
|
},
|
|
37
37
|
"typesVersions": {
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"./dist/types/index.d.ts"
|
|
41
41
|
],
|
|
42
42
|
"worker": [
|
|
43
|
-
"./dist/types/
|
|
43
|
+
"./dist/types/workerServer.d.ts"
|
|
44
44
|
]
|
|
45
45
|
}
|
|
46
46
|
},
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
"merge-deep": "^3.0.3",
|
|
55
55
|
"path-to-regexp": "^6.2.0",
|
|
56
56
|
"serve-static": "^1.14.1",
|
|
57
|
-
"@modern-js/utils": "2.
|
|
58
|
-
"@modern-js/server-core": "2.
|
|
57
|
+
"@modern-js/utils": "2.7.0",
|
|
58
|
+
"@modern-js/server-core": "2.7.0"
|
|
59
59
|
},
|
|
60
60
|
"devDependencies": {
|
|
61
61
|
"@types/cookie": "^0.4.1",
|
|
@@ -71,10 +71,10 @@
|
|
|
71
71
|
"node-mocks-http": "^1.11.0",
|
|
72
72
|
"portfinder": "^1.0.28",
|
|
73
73
|
"typescript": "^4",
|
|
74
|
-
"@modern-js/types": "2.
|
|
75
|
-
"@modern-js/server-core": "2.
|
|
76
|
-
"@scripts/jest-config": "2.
|
|
77
|
-
"@scripts/build": "2.
|
|
74
|
+
"@modern-js/types": "2.7.0",
|
|
75
|
+
"@modern-js/server-core": "2.7.0",
|
|
76
|
+
"@scripts/jest-config": "2.7.0",
|
|
77
|
+
"@scripts/build": "2.7.0"
|
|
78
78
|
},
|
|
79
79
|
"sideEffects": false,
|
|
80
80
|
"publishConfig": {
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|