@modern-js/prod-server 2.39.2 → 2.41.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/dist/cjs/libs/context/context.js +1 -0
- package/dist/cjs/workerServer.js +16 -4
- package/dist/esm/libs/context/context.js +1 -0
- package/dist/esm/workerServer.js +26 -6
- package/dist/esm-node/libs/context/context.js +1 -0
- package/dist/esm-node/workerServer.js +16 -4
- package/dist/types/libs/context/context.d.ts +1 -1
- package/dist/types/type.d.ts +2 -1
- package/dist/types/utils.d.ts +1 -1
- package/dist/types/workerServer.d.ts +4 -0
- package/package.json +14 -14
|
@@ -231,6 +231,7 @@ class ModernServerContext {
|
|
|
231
231
|
(0, import_class_private_field_set._)(this, _urls, /* @__PURE__ */ new Map());
|
|
232
232
|
(0, import_class_private_field_set._)(this, _queries, /* @__PURE__ */ new Map());
|
|
233
233
|
this.serverTiming = new import_serverTiming.ServerTiming(this.res, (0, import_utils.cutNameByHyphen)((options === null || options === void 0 ? void 0 : options.metaName) || "modern-js"));
|
|
234
|
+
req.reporter && (this.reporter = req.reporter);
|
|
234
235
|
}
|
|
235
236
|
}
|
|
236
237
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/cjs/workerServer.js
CHANGED
|
@@ -29,6 +29,7 @@ var import_hook_api = require("./libs/hook-api/index.worker");
|
|
|
29
29
|
var import_route = require("./libs/route");
|
|
30
30
|
var import_metrics = require("./libs/metrics");
|
|
31
31
|
var import_reporter = require("./libs/reporter");
|
|
32
|
+
const calcFallback = (metaName) => `x-${metaName.split(/[-_]/)[0]}-ssr-fallback`;
|
|
32
33
|
class ReturnResponse {
|
|
33
34
|
/**
|
|
34
35
|
* Iterate a Object
|
|
@@ -91,7 +92,8 @@ const checkIsSent = (context) => {
|
|
|
91
92
|
const middlewarePipeline = (0, import_plugin.createAsyncPipeline)();
|
|
92
93
|
const createHandler = (manifest) => {
|
|
93
94
|
const routeMgr = new import_route.RouteMatchManager();
|
|
94
|
-
const { pages, routes } = manifest;
|
|
95
|
+
const { pages, routes, options: manifestOpts } = manifest;
|
|
96
|
+
const { metaName = "modern-js", forceCSR = false } = manifestOpts || {};
|
|
95
97
|
routeMgr.reset(routes);
|
|
96
98
|
return async (options) => {
|
|
97
99
|
var _page_serverHooks_afterMatch, _page_serverHooks;
|
|
@@ -103,6 +105,9 @@ const createHandler = (manifest) => {
|
|
|
103
105
|
}
|
|
104
106
|
const entryName = pageMatch.spec.urlPath;
|
|
105
107
|
const page = pages[entryName];
|
|
108
|
+
if (forceCSR && url.searchParams.get("csr") === "1") {
|
|
109
|
+
return createResponse(page.template);
|
|
110
|
+
}
|
|
106
111
|
const logger = (0, import_logger.createLogger)({
|
|
107
112
|
level: "warn"
|
|
108
113
|
});
|
|
@@ -122,6 +127,9 @@ const createHandler = (manifest) => {
|
|
|
122
127
|
if (checkIsSent(hookContext)) {
|
|
123
128
|
return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
|
|
124
129
|
}
|
|
130
|
+
if (forceCSR && middlewarsHookContext.request.headers[calcFallback(metaName)]) {
|
|
131
|
+
return createResponse(page.template);
|
|
132
|
+
}
|
|
125
133
|
const responseLike = {
|
|
126
134
|
headers: {},
|
|
127
135
|
statusCode: 200,
|
|
@@ -214,6 +222,7 @@ function createWorkerHookContext(url, logger, metrics, reporter) {
|
|
|
214
222
|
reporter
|
|
215
223
|
};
|
|
216
224
|
}
|
|
225
|
+
let appliedMiddlewares = false;
|
|
217
226
|
function applyMiddlewares(ctx, middleware) {
|
|
218
227
|
if (middleware) {
|
|
219
228
|
const middlewares = (() => {
|
|
@@ -225,9 +234,12 @@ function applyMiddlewares(ctx, middleware) {
|
|
|
225
234
|
];
|
|
226
235
|
}
|
|
227
236
|
})();
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
237
|
+
if (!appliedMiddlewares) {
|
|
238
|
+
middlewares.forEach((middleware2) => {
|
|
239
|
+
middlewarePipeline.use(middleware2);
|
|
240
|
+
});
|
|
241
|
+
appliedMiddlewares = true;
|
|
242
|
+
}
|
|
231
243
|
middlewarePipeline.run(ctx, {
|
|
232
244
|
onLast: () => void 0
|
|
233
245
|
});
|
|
@@ -42,6 +42,7 @@ var ModernServerContext = /* @__PURE__ */ function() {
|
|
|
42
42
|
_class_private_field_set(this, _urls, /* @__PURE__ */ new Map());
|
|
43
43
|
_class_private_field_set(this, _queries, /* @__PURE__ */ new Map());
|
|
44
44
|
this.serverTiming = new ServerTiming(this.res, cutNameByHyphen((options === null || options === void 0 ? void 0 : options.metaName) || "modern-js"));
|
|
45
|
+
req.reporter && (this.reporter = req.reporter);
|
|
45
46
|
}
|
|
46
47
|
_create_class(ModernServerContext2, [
|
|
47
48
|
{
|
package/dist/esm/workerServer.js
CHANGED
|
@@ -10,6 +10,9 @@ import { createAfterMatchContext, createAfterRenderContext, createMiddlewareCont
|
|
|
10
10
|
import { RouteMatchManager } from "./libs/route";
|
|
11
11
|
import { metrics as defaultMetrics } from "./libs/metrics";
|
|
12
12
|
import { defaultReporter } from "./libs/reporter";
|
|
13
|
+
var calcFallback = function(metaName) {
|
|
14
|
+
return "x-".concat(metaName.split(/[-_]/)[0], "-ssr-fallback");
|
|
15
|
+
};
|
|
13
16
|
var ReturnResponse = /* @__PURE__ */ function() {
|
|
14
17
|
"use strict";
|
|
15
18
|
function ReturnResponse2(body, status) {
|
|
@@ -88,10 +91,11 @@ var checkIsSent = function(context) {
|
|
|
88
91
|
var middlewarePipeline = createAsyncPipeline();
|
|
89
92
|
var createHandler = function(manifest) {
|
|
90
93
|
var routeMgr = new RouteMatchManager();
|
|
91
|
-
var pages = manifest.pages, routes = manifest.routes;
|
|
94
|
+
var pages = manifest.pages, routes = manifest.routes, manifestOpts = manifest.options;
|
|
95
|
+
var _ref = manifestOpts || {}, _ref_metaName = _ref.metaName, metaName = _ref_metaName === void 0 ? "modern-js" : _ref_metaName, _ref_forceCSR = _ref.forceCSR, forceCSR = _ref_forceCSR === void 0 ? false : _ref_forceCSR;
|
|
92
96
|
routeMgr.reset(routes);
|
|
93
97
|
return function() {
|
|
94
|
-
var
|
|
98
|
+
var _ref2 = _async_to_generator(function(options) {
|
|
95
99
|
var _page_serverHooks_afterMatch, _page_serverHooks, request, loadableStats, routeManifest, url, pageMatch, entryName, page, logger, metrics, reporter, hookContext, afterMatchHookContext, _page_serverHooks1, _page_serverHooks_afterRender, _page_serverHooks2, middlewarsHookContext, responseLike, params, baseUrl, serverRenderContext, body, afterRenderHookContext, e;
|
|
96
100
|
function createServerRequest(url2, baseUrl2, request2, params2) {
|
|
97
101
|
var pathname = url2.pathname, host = url2.host, searchParams = url2.searchParams;
|
|
@@ -125,6 +129,12 @@ var createHandler = function(manifest) {
|
|
|
125
129
|
}
|
|
126
130
|
entryName = pageMatch.spec.urlPath;
|
|
127
131
|
page = pages[entryName];
|
|
132
|
+
if (forceCSR && url.searchParams.get("csr") === "1") {
|
|
133
|
+
return [
|
|
134
|
+
2,
|
|
135
|
+
createResponse(page.template)
|
|
136
|
+
];
|
|
137
|
+
}
|
|
128
138
|
logger = createLogger({
|
|
129
139
|
level: "warn"
|
|
130
140
|
});
|
|
@@ -162,6 +172,12 @@ var createHandler = function(manifest) {
|
|
|
162
172
|
new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers)
|
|
163
173
|
];
|
|
164
174
|
}
|
|
175
|
+
if (forceCSR && middlewarsHookContext.request.headers[calcFallback(metaName)]) {
|
|
176
|
+
return [
|
|
177
|
+
2,
|
|
178
|
+
createResponse(page.template)
|
|
179
|
+
];
|
|
180
|
+
}
|
|
165
181
|
responseLike = {
|
|
166
182
|
headers: {},
|
|
167
183
|
statusCode: 200,
|
|
@@ -232,7 +248,7 @@ var createHandler = function(manifest) {
|
|
|
232
248
|
});
|
|
233
249
|
});
|
|
234
250
|
return function(options) {
|
|
235
|
-
return
|
|
251
|
+
return _ref2.apply(this, arguments);
|
|
236
252
|
};
|
|
237
253
|
}();
|
|
238
254
|
};
|
|
@@ -261,6 +277,7 @@ function createWorkerHookContext(url, logger, metrics, reporter) {
|
|
|
261
277
|
reporter
|
|
262
278
|
};
|
|
263
279
|
}
|
|
280
|
+
var appliedMiddlewares = false;
|
|
264
281
|
function applyMiddlewares(ctx, middleware) {
|
|
265
282
|
if (middleware) {
|
|
266
283
|
var middlewares = function() {
|
|
@@ -272,9 +289,12 @@ function applyMiddlewares(ctx, middleware) {
|
|
|
272
289
|
];
|
|
273
290
|
}
|
|
274
291
|
}();
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
292
|
+
if (!appliedMiddlewares) {
|
|
293
|
+
middlewares.forEach(function(middleware2) {
|
|
294
|
+
middlewarePipeline.use(middleware2);
|
|
295
|
+
});
|
|
296
|
+
appliedMiddlewares = true;
|
|
297
|
+
}
|
|
278
298
|
middlewarePipeline.run(ctx, {
|
|
279
299
|
onLast: function() {
|
|
280
300
|
return void 0;
|
|
@@ -198,6 +198,7 @@ class ModernServerContext {
|
|
|
198
198
|
_class_private_field_set(this, _urls, /* @__PURE__ */ new Map());
|
|
199
199
|
_class_private_field_set(this, _queries, /* @__PURE__ */ new Map());
|
|
200
200
|
this.serverTiming = new ServerTiming(this.res, cutNameByHyphen((options === null || options === void 0 ? void 0 : options.metaName) || "modern-js"));
|
|
201
|
+
req.reporter && (this.reporter = req.reporter);
|
|
201
202
|
}
|
|
202
203
|
}
|
|
203
204
|
export {
|
|
@@ -5,6 +5,7 @@ import { createAfterMatchContext, createAfterRenderContext, createMiddlewareCont
|
|
|
5
5
|
import { RouteMatchManager } from "./libs/route";
|
|
6
6
|
import { metrics as defaultMetrics } from "./libs/metrics";
|
|
7
7
|
import { defaultReporter } from "./libs/reporter";
|
|
8
|
+
const calcFallback = (metaName) => `x-${metaName.split(/[-_]/)[0]}-ssr-fallback`;
|
|
8
9
|
class ReturnResponse {
|
|
9
10
|
/**
|
|
10
11
|
* Iterate a Object
|
|
@@ -67,7 +68,8 @@ const checkIsSent = (context) => {
|
|
|
67
68
|
const middlewarePipeline = createAsyncPipeline();
|
|
68
69
|
const createHandler = (manifest) => {
|
|
69
70
|
const routeMgr = new RouteMatchManager();
|
|
70
|
-
const { pages, routes } = manifest;
|
|
71
|
+
const { pages, routes, options: manifestOpts } = manifest;
|
|
72
|
+
const { metaName = "modern-js", forceCSR = false } = manifestOpts || {};
|
|
71
73
|
routeMgr.reset(routes);
|
|
72
74
|
return async (options) => {
|
|
73
75
|
var _page_serverHooks_afterMatch, _page_serverHooks;
|
|
@@ -79,6 +81,9 @@ const createHandler = (manifest) => {
|
|
|
79
81
|
}
|
|
80
82
|
const entryName = pageMatch.spec.urlPath;
|
|
81
83
|
const page = pages[entryName];
|
|
84
|
+
if (forceCSR && url.searchParams.get("csr") === "1") {
|
|
85
|
+
return createResponse(page.template);
|
|
86
|
+
}
|
|
82
87
|
const logger = createLogger({
|
|
83
88
|
level: "warn"
|
|
84
89
|
});
|
|
@@ -98,6 +103,9 @@ const createHandler = (manifest) => {
|
|
|
98
103
|
if (checkIsSent(hookContext)) {
|
|
99
104
|
return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
|
|
100
105
|
}
|
|
106
|
+
if (forceCSR && middlewarsHookContext.request.headers[calcFallback(metaName)]) {
|
|
107
|
+
return createResponse(page.template);
|
|
108
|
+
}
|
|
101
109
|
const responseLike = {
|
|
102
110
|
headers: {},
|
|
103
111
|
statusCode: 200,
|
|
@@ -190,6 +198,7 @@ function createWorkerHookContext(url, logger, metrics, reporter) {
|
|
|
190
198
|
reporter
|
|
191
199
|
};
|
|
192
200
|
}
|
|
201
|
+
let appliedMiddlewares = false;
|
|
193
202
|
function applyMiddlewares(ctx, middleware) {
|
|
194
203
|
if (middleware) {
|
|
195
204
|
const middlewares = (() => {
|
|
@@ -201,9 +210,12 @@ function applyMiddlewares(ctx, middleware) {
|
|
|
201
210
|
];
|
|
202
211
|
}
|
|
203
212
|
})();
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
213
|
+
if (!appliedMiddlewares) {
|
|
214
|
+
middlewares.forEach((middleware2) => {
|
|
215
|
+
middlewarePipeline.use(middleware2);
|
|
216
|
+
});
|
|
217
|
+
appliedMiddlewares = true;
|
|
218
|
+
}
|
|
207
219
|
middlewarePipeline.run(ctx, {
|
|
208
220
|
onLast: () => void 0
|
|
209
221
|
});
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/// <reference types="node" />
|
|
3
3
|
/// <reference types="node" />
|
|
4
4
|
/// <reference types="node/http" />
|
|
5
|
-
/// <reference types=".dts-temp/
|
|
5
|
+
/// <reference types=".dts-temp/MyKuaUY5TchUfAps6LPPb/src/type" />
|
|
6
6
|
import { IncomingMessage, ServerResponse } from 'http';
|
|
7
7
|
import qs from 'querystring';
|
|
8
8
|
import type { ModernServerContext as ModernServerContextInterface, Reporter as ModernServerReporter, ServerTiming as ModernServerTiming } from '@modern-js/types';
|
package/dist/types/type.d.ts
CHANGED
|
@@ -5,12 +5,13 @@ import { IncomingMessage, Server, ServerResponse } from 'http';
|
|
|
5
5
|
import { Readable } from 'stream';
|
|
6
6
|
import { serverManager, ServerOptions } from '@modern-js/server-core';
|
|
7
7
|
import type { ServerPlugin } from '@modern-js/server-core';
|
|
8
|
-
import type { Metrics, Logger, NextFunction, ModernServerContext, InternalPlugins } from '@modern-js/types';
|
|
8
|
+
import type { Metrics, Logger, NextFunction, ModernServerContext, InternalPlugins, Reporter } from '@modern-js/types';
|
|
9
9
|
import type { ModernRouteInterface } from './libs/route';
|
|
10
10
|
declare module 'http' {
|
|
11
11
|
interface IncomingMessage {
|
|
12
12
|
logger: Logger;
|
|
13
13
|
metrics: Metrics;
|
|
14
|
+
reporter?: Reporter;
|
|
14
15
|
body?: any;
|
|
15
16
|
}
|
|
16
17
|
interface OutgoingMessage {
|
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/MyKuaUY5TchUfAps6LPPb/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;
|
|
@@ -50,6 +50,10 @@ export type Manifest = {
|
|
|
50
50
|
*/
|
|
51
51
|
pages: Record<string, Page>;
|
|
52
52
|
routes: ModernRouteInterface[];
|
|
53
|
+
options?: {
|
|
54
|
+
forceCSR?: boolean;
|
|
55
|
+
metaName?: string;
|
|
56
|
+
};
|
|
53
57
|
};
|
|
54
58
|
export declare const createHandler: (manifest: Manifest) => (options: HandlerOptions) => Promise<ReturnResponse>;
|
|
55
59
|
export {};
|
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"modern",
|
|
16
16
|
"modern.js"
|
|
17
17
|
],
|
|
18
|
-
"version": "2.
|
|
18
|
+
"version": "2.41.0",
|
|
19
19
|
"jsnext:source": "./src/index.ts",
|
|
20
20
|
"types": "./dist/types/index.d.ts",
|
|
21
21
|
"main": "./dist/cjs/index.js",
|
|
@@ -63,24 +63,24 @@
|
|
|
63
63
|
}
|
|
64
64
|
},
|
|
65
65
|
"dependencies": {
|
|
66
|
-
"@swc/helpers": "0.5.
|
|
67
|
-
"cookie": "
|
|
66
|
+
"@swc/helpers": "0.5.3",
|
|
67
|
+
"cookie": "0.5.0",
|
|
68
68
|
"etag": "^1.8.1",
|
|
69
69
|
"fresh": "^0.5.2",
|
|
70
|
-
"http-proxy-middleware": "^2.0.
|
|
70
|
+
"http-proxy-middleware": "^2.0.4",
|
|
71
71
|
"ignore-styles": "^5.0.1",
|
|
72
72
|
"lru-cache": "^6.0.0",
|
|
73
73
|
"merge-deep": "^3.0.3",
|
|
74
74
|
"node-html-parser": "^6.1.5",
|
|
75
75
|
"path-to-regexp": "^6.2.0",
|
|
76
76
|
"serve-static": "^1.14.1",
|
|
77
|
-
"@modern-js/plugin": "2.
|
|
78
|
-
"@modern-js/server-core": "2.
|
|
79
|
-
"@modern-js/utils": "2.
|
|
80
|
-
"@modern-js/runtime-utils": "2.
|
|
77
|
+
"@modern-js/plugin": "2.41.0",
|
|
78
|
+
"@modern-js/server-core": "2.41.0",
|
|
79
|
+
"@modern-js/utils": "2.41.0",
|
|
80
|
+
"@modern-js/runtime-utils": "2.41.0"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|
|
83
|
-
"@types/cookie": "
|
|
83
|
+
"@types/cookie": "0.5.1",
|
|
84
84
|
"@types/etag": "^1.8.1",
|
|
85
85
|
"@types/fresh": "^0.5.0",
|
|
86
86
|
"@types/jest": "^29",
|
|
@@ -89,17 +89,17 @@
|
|
|
89
89
|
"@types/node": "^14",
|
|
90
90
|
"@types/serve-static": "^1.13.10",
|
|
91
91
|
"@types/ws": "^8.5.5",
|
|
92
|
-
"axios": "^1.
|
|
92
|
+
"axios": "^1.6.0",
|
|
93
93
|
"jest": "^29",
|
|
94
94
|
"memfs": "^3.5.1",
|
|
95
95
|
"node-mocks-http": "^1.11.0",
|
|
96
96
|
"portfinder": "^1.0.28",
|
|
97
97
|
"typescript": "^5",
|
|
98
98
|
"ws": "^8.13.0",
|
|
99
|
-
"@modern-js/server-core": "2.
|
|
100
|
-
"@
|
|
101
|
-
"@
|
|
102
|
-
"@scripts/jest-config": "2.
|
|
99
|
+
"@modern-js/server-core": "2.41.0",
|
|
100
|
+
"@scripts/build": "2.41.0",
|
|
101
|
+
"@modern-js/types": "2.41.0",
|
|
102
|
+
"@scripts/jest-config": "2.41.0"
|
|
103
103
|
},
|
|
104
104
|
"sideEffects": false,
|
|
105
105
|
"publishConfig": {
|