@modern-js/prod-server 2.27.0 → 2.29.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 +36 -0
- package/dist/cjs/index.js +4 -0
- package/dist/cjs/libs/context/context.js +10 -4
- package/dist/cjs/libs/hook-api/index.js +2 -1
- package/dist/cjs/libs/hook-api/index.worker.js +2 -1
- package/dist/cjs/libs/render/cache/__tests__/cache.test.js +12 -7
- package/dist/cjs/libs/render/cache/index.js +2 -1
- package/dist/cjs/libs/render/cache/spr.js +2 -1
- package/dist/cjs/libs/render/index.js +12 -3
- package/dist/cjs/libs/render/reader.js +2 -1
- package/dist/cjs/libs/render/ssr.js +3 -20
- package/dist/cjs/libs/reporter.js +22 -0
- package/dist/cjs/libs/route/matcher.js +2 -2
- package/dist/cjs/libs/serverTiming.js +27 -0
- package/dist/cjs/server/index.js +6 -4
- package/dist/cjs/server/modernServer.js +44 -16
- package/dist/cjs/utils.js +33 -0
- package/dist/cjs/workerServer.js +15 -6
- package/dist/esm/index.js +1 -0
- package/dist/esm/libs/context/context.js +8 -2
- package/dist/esm/libs/hook-api/index.js +2 -1
- package/dist/esm/libs/hook-api/index.worker.js +2 -1
- package/dist/esm/libs/render/cache/__tests__/cache.test.js +12 -12
- package/dist/esm/libs/render/cache/index.js +2 -2
- package/dist/esm/libs/render/cache/spr.js +2 -2
- package/dist/esm/libs/render/index.js +12 -3
- package/dist/esm/libs/render/reader.js +2 -2
- package/dist/esm/libs/render/ssr.js +6 -28
- package/dist/esm/libs/reporter.js +12 -0
- package/dist/esm/libs/route/matcher.js +2 -2
- package/dist/esm/libs/serverTiming.js +27 -0
- package/dist/esm/renderHtml.js +6 -6
- package/dist/esm/server/index.js +6 -4
- package/dist/esm/server/modernServer.js +84 -44
- package/dist/esm/server/modernServerSplit.js +6 -6
- package/dist/esm/utils.js +57 -0
- package/dist/esm/workerServer.js +14 -5
- package/dist/esm-node/index.js +1 -0
- package/dist/esm-node/libs/context/context.js +8 -2
- package/dist/esm-node/libs/hook-api/index.js +2 -1
- package/dist/esm-node/libs/hook-api/index.worker.js +2 -1
- package/dist/esm-node/libs/render/cache/__tests__/cache.test.js +12 -7
- package/dist/esm-node/libs/render/cache/index.js +2 -1
- package/dist/esm-node/libs/render/cache/spr.js +2 -1
- package/dist/esm-node/libs/render/index.js +12 -3
- package/dist/esm-node/libs/render/reader.js +2 -1
- package/dist/esm-node/libs/render/ssr.js +3 -20
- package/dist/esm-node/libs/reporter.js +12 -0
- package/dist/esm-node/libs/route/matcher.js +2 -2
- package/dist/esm-node/libs/serverTiming.js +17 -0
- package/dist/esm-node/server/index.js +6 -4
- package/dist/esm-node/server/modernServer.js +45 -17
- package/dist/esm-node/utils.js +30 -0
- package/dist/esm-node/workerServer.js +15 -6
- package/dist/types/index.d.ts +1 -0
- package/dist/types/libs/context/context.d.ts +5 -2
- package/dist/types/libs/hook-api/index.worker.d.ts +2 -1
- package/dist/types/libs/render/index.d.ts +13 -18
- package/dist/types/libs/reporter.d.ts +2 -0
- package/dist/types/libs/serverTiming.d.ts +12 -0
- package/dist/types/server/modernServer.d.ts +6 -4
- package/dist/types/type.d.ts +1 -0
- package/dist/types/utils.d.ts +3 -2
- package/package.json +8 -8
package/dist/cjs/workerServer.js
CHANGED
|
@@ -23,6 +23,7 @@ const _indexworker = require("./libs/hook-api/index.worker");
|
|
|
23
23
|
const _logger = require("./libs/logger");
|
|
24
24
|
const _route = require("./libs/route");
|
|
25
25
|
const _metrics = require("./libs/metrics");
|
|
26
|
+
const _reporter = require("./libs/reporter");
|
|
26
27
|
class ReturnResponse {
|
|
27
28
|
/**
|
|
28
29
|
* Iterate a Object
|
|
@@ -88,7 +89,7 @@ const createHandler = (manifest) => {
|
|
|
88
89
|
const { pages, routes } = manifest;
|
|
89
90
|
routeMgr.reset(routes);
|
|
90
91
|
return async (options) => {
|
|
91
|
-
var _page_serverHooks,
|
|
92
|
+
var _page_serverHooks_afterMatch, _page_serverHooks, _page;
|
|
92
93
|
const { request, loadableStats, routeManifest } = options;
|
|
93
94
|
const url = new URL(request.url);
|
|
94
95
|
const pageMatch = routeMgr.match(url.pathname);
|
|
@@ -101,15 +102,16 @@ const createHandler = (manifest) => {
|
|
|
101
102
|
level: "warn"
|
|
102
103
|
});
|
|
103
104
|
const metrics = _metrics.metrics;
|
|
104
|
-
const
|
|
105
|
+
const reporter = _reporter.defaultReporter;
|
|
106
|
+
const hookContext = createWorkerHookContext(request.url, logger, metrics, reporter);
|
|
105
107
|
const afterMatchHookContext = (0, _indexworker.createAfterMatchContext)(hookContext, entryName);
|
|
106
|
-
page === null ||
|
|
108
|
+
(_page = page) === null || _page === void 0 ? void 0 : (_page_serverHooks = _page.serverHooks) === null || _page_serverHooks === void 0 ? void 0 : (_page_serverHooks_afterMatch = _page_serverHooks.afterMatch) === null || _page_serverHooks_afterMatch === void 0 ? void 0 : _page_serverHooks_afterMatch.call(_page_serverHooks, afterMatchHookContext, () => void 0);
|
|
107
109
|
if (checkIsSent(hookContext)) {
|
|
108
110
|
return new ReturnResponse(hookContext.res.body || "Unkown body", hookContext.res.status, hookContext.res.headers);
|
|
109
111
|
}
|
|
110
112
|
if (page.serverRender) {
|
|
111
113
|
try {
|
|
112
|
-
var _page_serverHooks1,
|
|
114
|
+
var _page_serverHooks1, _page_serverHooks_afterRender, _page_serverHooks2;
|
|
113
115
|
const middlewarsHookContext = (0, _indexworker.createMiddlewareContext)(hookContext);
|
|
114
116
|
applyMiddlewares(middlewarsHookContext, (_page_serverHooks1 = page.serverHooks) === null || _page_serverHooks1 === void 0 ? void 0 : _page_serverHooks1.middleware);
|
|
115
117
|
if (checkIsSent(hookContext)) {
|
|
@@ -137,9 +139,15 @@ const createHandler = (manifest) => {
|
|
|
137
139
|
template: page.template,
|
|
138
140
|
entryName: page.entryName,
|
|
139
141
|
logger,
|
|
142
|
+
reporter: _reporter.defaultReporter,
|
|
140
143
|
metrics,
|
|
141
144
|
// FIXME: pass correctly req & res
|
|
142
145
|
req: request,
|
|
146
|
+
serverTiming: {
|
|
147
|
+
addServeTiming() {
|
|
148
|
+
return this;
|
|
149
|
+
}
|
|
150
|
+
},
|
|
143
151
|
res: responseLike
|
|
144
152
|
};
|
|
145
153
|
const body = await page.serverRender(serverRenderContext);
|
|
@@ -184,7 +192,7 @@ function createResponse(template) {
|
|
|
184
192
|
return RESPONSE_NOTFOUND;
|
|
185
193
|
}
|
|
186
194
|
}
|
|
187
|
-
function createWorkerHookContext(url, logger, metrics) {
|
|
195
|
+
function createWorkerHookContext(url, logger, metrics, reporter) {
|
|
188
196
|
const [res, req] = [
|
|
189
197
|
{
|
|
190
198
|
headers: new Headers(),
|
|
@@ -198,7 +206,8 @@ function createWorkerHookContext(url, logger, metrics) {
|
|
|
198
206
|
res,
|
|
199
207
|
req,
|
|
200
208
|
logger,
|
|
201
|
-
metrics
|
|
209
|
+
metrics,
|
|
210
|
+
reporter
|
|
202
211
|
};
|
|
203
212
|
}
|
|
204
213
|
function applyMiddlewares(ctx, middleware) {
|
package/dist/esm/index.js
CHANGED
|
@@ -4,6 +4,7 @@ export { ModernServer } from "./server/modernServer";
|
|
|
4
4
|
export { createProxyHandler } from "./libs/proxy";
|
|
5
5
|
export * from "./type";
|
|
6
6
|
export * from "./constants";
|
|
7
|
+
export { createRenderHandler } from "./libs/render";
|
|
7
8
|
export default function(options) {
|
|
8
9
|
if (options == null) {
|
|
9
10
|
throw new Error("can not start mserver without options");
|
|
@@ -7,21 +7,27 @@ import qs from "querystring";
|
|
|
7
7
|
import { Buffer } from "buffer";
|
|
8
8
|
import createEtag from "etag";
|
|
9
9
|
import fresh from "fresh";
|
|
10
|
+
import { cutNameByHyphen } from "@modern-js/utils";
|
|
11
|
+
import { ServerTiming } from "../serverTiming";
|
|
12
|
+
import { defaultReporter } from "../reporter";
|
|
10
13
|
import { headersWithoutCookie } from "../../utils";
|
|
11
14
|
var MOCK_URL_BASE = "https://modernjs.dev/";
|
|
12
15
|
export var ModernServerContext = /* @__PURE__ */ function() {
|
|
13
16
|
"use strict";
|
|
14
17
|
function ModernServerContext2(req, res, options) {
|
|
15
18
|
_class_call_check(this, ModernServerContext2);
|
|
19
|
+
var _options;
|
|
16
20
|
_define_property(this, "req", void 0);
|
|
17
21
|
_define_property(this, "res", void 0);
|
|
18
22
|
_define_property(this, "params", {});
|
|
19
|
-
_define_property(this, "
|
|
23
|
+
_define_property(this, "reporter", defaultReporter);
|
|
24
|
+
_define_property(this, "serverTiming", void 0);
|
|
25
|
+
_define_property(this, "serverData", {});
|
|
20
26
|
_define_property(this, "options", {});
|
|
21
27
|
this.req = req;
|
|
22
28
|
this.res = res;
|
|
23
29
|
this.options = options || {};
|
|
24
|
-
this.
|
|
30
|
+
this.serverTiming = new ServerTiming(res, cutNameByHyphen(((_options = options) === null || _options === void 0 ? void 0 : _options.metaName) || "modern-js"));
|
|
25
31
|
this.bind();
|
|
26
32
|
}
|
|
27
33
|
_create_class(ModernServerContext2, [
|
|
@@ -4,10 +4,11 @@ import { RouteAPI } from "./route";
|
|
|
4
4
|
import { TemplateAPI } from "./template";
|
|
5
5
|
import { BaseRequest, BaseResponse } from "./base";
|
|
6
6
|
export var base = function(context) {
|
|
7
|
-
var res = context.res;
|
|
7
|
+
var res = context.res, reporter = context.reporter;
|
|
8
8
|
return {
|
|
9
9
|
response: new BaseResponse(res),
|
|
10
10
|
request: new BaseRequest(context),
|
|
11
|
+
reporter: reporter,
|
|
11
12
|
logger: context.logger,
|
|
12
13
|
metrics: context.metrics
|
|
13
14
|
};
|
|
@@ -55,7 +55,7 @@ var ServerResponse = /* @__PURE__ */ function() {
|
|
|
55
55
|
return ServerResponse2;
|
|
56
56
|
}();
|
|
57
57
|
export var base = function(context) {
|
|
58
|
-
var req = context.req, res = context.res, logger = context.logger, metrics = context.metrics;
|
|
58
|
+
var req = context.req, res = context.res, logger = context.logger, metrics = context.metrics, reporter = context.reporter;
|
|
59
59
|
var serverResponse = new ServerResponse(res);
|
|
60
60
|
var _ref = new URL(req.url), host = _ref.host, pathname = _ref.pathname, searchParams = _ref.searchParams;
|
|
61
61
|
var headers = {};
|
|
@@ -64,6 +64,7 @@ export var base = function(context) {
|
|
|
64
64
|
});
|
|
65
65
|
return {
|
|
66
66
|
response: new BaseResponse(serverResponse),
|
|
67
|
+
reporter: reporter,
|
|
67
68
|
request: new BaseRequest({
|
|
68
69
|
url: req.url,
|
|
69
70
|
host: host,
|
|
@@ -21,7 +21,7 @@ var createCacheConfig = function() {
|
|
|
21
21
|
jest.setTimeout(6e4);
|
|
22
22
|
describe("cache", function() {
|
|
23
23
|
it("should cache correctly", /* @__PURE__ */ _async_to_generator(function() {
|
|
24
|
-
var cache, context, content, cacheConfig, cacheResult;
|
|
24
|
+
var _cacheResult, cache, context, content, cacheConfig, cacheResult;
|
|
25
25
|
return _ts_generator(this, function(_state) {
|
|
26
26
|
switch (_state.label) {
|
|
27
27
|
case 0:
|
|
@@ -48,7 +48,7 @@ describe("cache", function() {
|
|
|
48
48
|
case 2:
|
|
49
49
|
cacheResult = _state.sent();
|
|
50
50
|
expect(cacheResult).not.toBe(null);
|
|
51
|
-
expect(cacheResult === null ||
|
|
51
|
+
expect((_cacheResult = cacheResult) === null || _cacheResult === void 0 ? void 0 : _cacheResult.content).toBe("hello");
|
|
52
52
|
return [
|
|
53
53
|
2
|
|
54
54
|
];
|
|
@@ -261,7 +261,7 @@ describe("cache", function() {
|
|
|
261
261
|
});
|
|
262
262
|
}));
|
|
263
263
|
it("should get cache correctly", /* @__PURE__ */ _async_to_generator(function() {
|
|
264
|
-
var cache, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, cacheable, context, cacheConfig, cacheResult, err;
|
|
264
|
+
var cache, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, cacheable, _cacheResult, context, cacheConfig, cacheResult, err;
|
|
265
265
|
return _ts_generator(this, function(_state) {
|
|
266
266
|
switch (_state.label) {
|
|
267
267
|
case 0:
|
|
@@ -304,7 +304,7 @@ describe("cache", function() {
|
|
|
304
304
|
];
|
|
305
305
|
case 4:
|
|
306
306
|
cacheResult = _state.sent();
|
|
307
|
-
expect(cacheResult === null ||
|
|
307
|
+
expect((_cacheResult = cacheResult) === null || _cacheResult === void 0 ? void 0 : _cacheResult.content).toBe(cacheable.content);
|
|
308
308
|
_state.label = 5;
|
|
309
309
|
case 5:
|
|
310
310
|
_iteratorNormalCompletion = true;
|
|
@@ -346,7 +346,7 @@ describe("cache", function() {
|
|
|
346
346
|
});
|
|
347
347
|
}));
|
|
348
348
|
it("should match cache correctly", /* @__PURE__ */ _async_to_generator(function() {
|
|
349
|
-
var cache, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, cacheable, _cacheable, baseCacheable, matchOne, other, _baseCacheable_requestOpt, requestOpt, cacheConfig, content, context, matchContext, cacheResult, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, notMatch, notMatchContext, nothing, err, err;
|
|
349
|
+
var cache, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, cacheable, _cacheResult, _cacheable, baseCacheable, matchOne, other, _baseCacheable_requestOpt, requestOpt, cacheConfig, content, context, matchContext, cacheResult, _iteratorNormalCompletion1, _didIteratorError1, _iteratorError1, _iterator1, _step1, notMatch, notMatchContext, nothing, err, err;
|
|
350
350
|
return _ts_generator(this, function(_state) {
|
|
351
351
|
switch (_state.label) {
|
|
352
352
|
case 0:
|
|
@@ -396,7 +396,7 @@ describe("cache", function() {
|
|
|
396
396
|
];
|
|
397
397
|
case 4:
|
|
398
398
|
cacheResult = _state.sent();
|
|
399
|
-
expect(cacheResult === null ||
|
|
399
|
+
expect((_cacheResult = cacheResult) === null || _cacheResult === void 0 ? void 0 : _cacheResult.content).toBe(content);
|
|
400
400
|
_iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
|
|
401
401
|
_state.label = 5;
|
|
402
402
|
case 5:
|
|
@@ -501,7 +501,7 @@ describe("cache", function() {
|
|
|
501
501
|
});
|
|
502
502
|
}));
|
|
503
503
|
it("should stale cache correctly", /* @__PURE__ */ _async_to_generator(function() {
|
|
504
|
-
var cache, context, config, content, shouldCache, freshResult, staleResult;
|
|
504
|
+
var _freshResult, _staleResult, cache, context, config, content, shouldCache, freshResult, staleResult;
|
|
505
505
|
return _ts_generator(this, function(_state) {
|
|
506
506
|
switch (_state.label) {
|
|
507
507
|
case 0:
|
|
@@ -530,7 +530,7 @@ describe("cache", function() {
|
|
|
530
530
|
];
|
|
531
531
|
case 2:
|
|
532
532
|
freshResult = _state.sent();
|
|
533
|
-
expect(freshResult === null ||
|
|
533
|
+
expect((_freshResult = freshResult) === null || _freshResult === void 0 ? void 0 : _freshResult.isStale).toBe(false);
|
|
534
534
|
return [
|
|
535
535
|
4,
|
|
536
536
|
new Promise(function(resolve) {
|
|
@@ -547,7 +547,7 @@ describe("cache", function() {
|
|
|
547
547
|
];
|
|
548
548
|
case 4:
|
|
549
549
|
staleResult = _state.sent();
|
|
550
|
-
expect(staleResult === null ||
|
|
550
|
+
expect((_staleResult = staleResult) === null || _staleResult === void 0 ? void 0 : _staleResult.isStale).toBe(true);
|
|
551
551
|
return [
|
|
552
552
|
2
|
|
553
553
|
];
|
|
@@ -555,7 +555,7 @@ describe("cache", function() {
|
|
|
555
555
|
});
|
|
556
556
|
}));
|
|
557
557
|
it("should garbage cache correctly", /* @__PURE__ */ _async_to_generator(function() {
|
|
558
|
-
var cache, context, config, content, shouldCache, freshResult, staleResult;
|
|
558
|
+
var _freshResult, _staleResult, cache, context, config, content, shouldCache, freshResult, staleResult;
|
|
559
559
|
return _ts_generator(this, function(_state) {
|
|
560
560
|
switch (_state.label) {
|
|
561
561
|
case 0:
|
|
@@ -585,7 +585,7 @@ describe("cache", function() {
|
|
|
585
585
|
];
|
|
586
586
|
case 2:
|
|
587
587
|
freshResult = _state.sent();
|
|
588
|
-
expect(freshResult === null ||
|
|
588
|
+
expect((_freshResult = freshResult) === null || _freshResult === void 0 ? void 0 : _freshResult.isGarbage).toBe(false);
|
|
589
589
|
return [
|
|
590
590
|
4,
|
|
591
591
|
new Promise(function(resolve) {
|
|
@@ -602,7 +602,7 @@ describe("cache", function() {
|
|
|
602
602
|
];
|
|
603
603
|
case 4:
|
|
604
604
|
staleResult = _state.sent();
|
|
605
|
-
expect(staleResult === null ||
|
|
605
|
+
expect((_staleResult = staleResult) === null || _staleResult === void 0 ? void 0 : _staleResult.isGarbage).toBe(true);
|
|
606
606
|
return [
|
|
607
607
|
2
|
|
608
608
|
];
|
|
@@ -9,7 +9,7 @@ export default function(renderFn, ctx) {
|
|
|
9
9
|
var sprCache = createCache();
|
|
10
10
|
var doRender = function() {
|
|
11
11
|
var _ref = _async_to_generator(function(context) {
|
|
12
|
-
var cacheContext, cacheFile, renderResult, cacheHash, renderResult1, render;
|
|
12
|
+
var _cacheFile, cacheContext, cacheFile, renderResult, cacheHash, renderResult1, render;
|
|
13
13
|
function afterRender(source, onAfterRender) {
|
|
14
14
|
return _afterRender.apply(this, arguments);
|
|
15
15
|
}
|
|
@@ -124,7 +124,7 @@ export default function(renderFn, ctx) {
|
|
|
124
124
|
afterRender(renderResult, saveHtmlIntoCache)
|
|
125
125
|
];
|
|
126
126
|
case 3:
|
|
127
|
-
cacheHash = cacheFile === null ||
|
|
127
|
+
cacheHash = (_cacheFile = cacheFile) === null || _cacheFile === void 0 ? void 0 : _cacheFile.hash;
|
|
128
128
|
if (!cacheFile.isGarbage)
|
|
129
129
|
return [
|
|
130
130
|
3,
|
|
@@ -311,11 +311,11 @@ var CacheManager = /* @__PURE__ */ function() {
|
|
|
311
311
|
value: function del(context, cacheHash) {
|
|
312
312
|
var _this = this;
|
|
313
313
|
return _async_to_generator(function() {
|
|
314
|
-
var cacheKey, data;
|
|
314
|
+
var _data, cacheKey, data;
|
|
315
315
|
return _ts_generator(this, function(_state) {
|
|
316
316
|
cacheKey = _this.generateRequestKey(context);
|
|
317
317
|
data = _this.cache.get(cacheKey);
|
|
318
|
-
data === null ||
|
|
318
|
+
(_data = data) === null || _data === void 0 ? void 0 : _data.caches.del(cacheHash);
|
|
319
319
|
return [
|
|
320
320
|
2
|
|
321
321
|
];
|
|
@@ -8,10 +8,10 @@ import { readFile } from "./reader";
|
|
|
8
8
|
import * as ssr from "./ssr";
|
|
9
9
|
import { injectServerData } from "./utils";
|
|
10
10
|
export var createRenderHandler = function(param) {
|
|
11
|
-
var distDir = param.distDir, staticGenerate = param.staticGenerate, forceCSR = param.forceCSR, nonce = param.nonce, _param_metaName = param.metaName, metaName = _param_metaName === void 0 ? "modern-js" : _param_metaName;
|
|
11
|
+
var distDir = param.distDir, staticGenerate = param.staticGenerate, forceCSR = param.forceCSR, nonce = param.nonce, ssrRender = param.ssrRender, _param_metaName = param.metaName, metaName = _param_metaName === void 0 ? "modern-js" : _param_metaName;
|
|
12
12
|
return function() {
|
|
13
13
|
var _render = _async_to_generator(function(param2) {
|
|
14
|
-
var ctx, route, runner, entryPath, urlPath, entry, result, templatePath, content, useCSR, result1, err;
|
|
14
|
+
var ctx, route, runner, entryPath, urlPath, entry, result, templatePath, content, useCSR, ssrRenderOptions, result1, err;
|
|
15
15
|
return _ts_generator(this, function(_state) {
|
|
16
16
|
switch (_state.label) {
|
|
17
17
|
case 0:
|
|
@@ -67,9 +67,18 @@ export var createRenderHandler = function(param) {
|
|
|
67
67
|
,
|
|
68
68
|
7
|
|
69
69
|
]);
|
|
70
|
+
ssrRenderOptions = {
|
|
71
|
+
distDir: distDir,
|
|
72
|
+
entryName: route.entryName,
|
|
73
|
+
urlPath: route.urlPath,
|
|
74
|
+
bundle: route.bundle,
|
|
75
|
+
template: content.toString(),
|
|
76
|
+
staticGenerate: staticGenerate,
|
|
77
|
+
nonce: nonce
|
|
78
|
+
};
|
|
70
79
|
return [
|
|
71
80
|
4,
|
|
72
|
-
ssr.render(ctx, {
|
|
81
|
+
ssrRender ? ssrRender(ctx, ssrRenderOptions, runner) : ssr.render(ctx, {
|
|
73
82
|
distDir: distDir,
|
|
74
83
|
entryName: route.entryName,
|
|
75
84
|
urlPath: route.urlPath,
|
|
@@ -157,7 +157,7 @@ export var LruReader = /* @__PURE__ */ function() {
|
|
|
157
157
|
var reader = new LruReader();
|
|
158
158
|
export var readFile = function() {
|
|
159
159
|
var _ref = _async_to_generator(function(filepath) {
|
|
160
|
-
var file;
|
|
160
|
+
var _file, file;
|
|
161
161
|
return _ts_generator(this, function(_state) {
|
|
162
162
|
switch (_state.label) {
|
|
163
163
|
case 0:
|
|
@@ -169,7 +169,7 @@ export var readFile = function() {
|
|
|
169
169
|
file = _state.sent();
|
|
170
170
|
return [
|
|
171
171
|
2,
|
|
172
|
-
file === null ||
|
|
172
|
+
(_file = file) === null || _file === void 0 ? void 0 : _file.content
|
|
173
173
|
];
|
|
174
174
|
}
|
|
175
175
|
});
|
|
@@ -7,7 +7,7 @@ import { createLogger, createMetrics } from "./measure";
|
|
|
7
7
|
import { injectServerDataStream, injectServerData } from "./utils";
|
|
8
8
|
export var render = function() {
|
|
9
9
|
var _ref = _async_to_generator(function(ctx, renderOptions, runner) {
|
|
10
|
-
var _ctx_res, urlPath, bundle, distDir, template, entryName, staticGenerate, _renderOptions_enableUnsafeCtx, enableUnsafeCtx, nonce, bundleJS, loadableUri, loadableStats, routesManifestUri, routeManifest,
|
|
10
|
+
var _ctx_res, urlPath, bundle, distDir, template, entryName, staticGenerate, _renderOptions_enableUnsafeCtx, enableUnsafeCtx, nonce, bundleJS, loadableUri, loadableStats, routesManifestUri, routeManifest, context, bundleJSContent, serverRender, content, _context_redirection, url, _context_redirection_status, status;
|
|
11
11
|
return _ts_generator(this, function(_state) {
|
|
12
12
|
switch (_state.label) {
|
|
13
13
|
case 0:
|
|
@@ -17,12 +17,6 @@ export var render = function() {
|
|
|
17
17
|
loadableStats = fs.existsSync(loadableUri) ? require(loadableUri) : "";
|
|
18
18
|
routesManifestUri = path.join(distDir, ROUTE_MANIFEST_FILE);
|
|
19
19
|
routeManifest = fs.existsSync(routesManifestUri) ? require(routesManifestUri) : void 0;
|
|
20
|
-
return [
|
|
21
|
-
4,
|
|
22
|
-
getRequestBody(ctx.req)
|
|
23
|
-
];
|
|
24
|
-
case 1:
|
|
25
|
-
body = _state.sent();
|
|
26
20
|
context = {
|
|
27
21
|
request: {
|
|
28
22
|
baseUrl: urlPath,
|
|
@@ -32,7 +26,7 @@ export var render = function() {
|
|
|
32
26
|
query: ctx.query,
|
|
33
27
|
url: ctx.href,
|
|
34
28
|
headers: ctx.headers,
|
|
35
|
-
body: body
|
|
29
|
+
body: ctx.req.body
|
|
36
30
|
},
|
|
37
31
|
response: {
|
|
38
32
|
setHeader: function(key, value) {
|
|
@@ -51,6 +45,8 @@ export var render = function() {
|
|
|
51
45
|
staticGenerate: staticGenerate,
|
|
52
46
|
logger: void 0,
|
|
53
47
|
metrics: void 0,
|
|
48
|
+
reporter: ctx.reporter,
|
|
49
|
+
serverTiming: ctx.serverTiming,
|
|
54
50
|
req: ctx.req,
|
|
55
51
|
res: ctx.res,
|
|
56
52
|
enableUnsafeCtx: enableUnsafeCtx,
|
|
@@ -63,14 +59,14 @@ export var render = function() {
|
|
|
63
59
|
4,
|
|
64
60
|
Promise.resolve(require(bundleJS))
|
|
65
61
|
];
|
|
66
|
-
case
|
|
62
|
+
case 1:
|
|
67
63
|
bundleJSContent = _state.sent();
|
|
68
64
|
serverRender = bundleJSContent[SERVER_RENDER_FUNCTION_NAME];
|
|
69
65
|
return [
|
|
70
66
|
4,
|
|
71
67
|
cache(serverRender, ctx)(context)
|
|
72
68
|
];
|
|
73
|
-
case
|
|
69
|
+
case 2:
|
|
74
70
|
content = _state.sent();
|
|
75
71
|
_context_redirection = context.redirection, url = _context_redirection.url, _context_redirection_status = _context_redirection.status, status = _context_redirection_status === void 0 ? 302 : _context_redirection_status;
|
|
76
72
|
if (url) {
|
|
@@ -112,21 +108,3 @@ export var render = function() {
|
|
|
112
108
|
return _ref.apply(this, arguments);
|
|
113
109
|
};
|
|
114
110
|
}();
|
|
115
|
-
var getRequestBody = function(req) {
|
|
116
|
-
return new Promise(function(resolve, reject) {
|
|
117
|
-
if ((req === null || req === void 0 ? void 0 : req.method) && req.method.toLowerCase() !== "get") {
|
|
118
|
-
var body = "";
|
|
119
|
-
req.on("data", function(chunk) {
|
|
120
|
-
body += chunk.toString();
|
|
121
|
-
});
|
|
122
|
-
req.on("end", function() {
|
|
123
|
-
resolve(body);
|
|
124
|
-
});
|
|
125
|
-
req.on("error", function(err) {
|
|
126
|
-
reject(err);
|
|
127
|
-
});
|
|
128
|
-
} else {
|
|
129
|
-
resolve(void 0);
|
|
130
|
-
}
|
|
131
|
-
});
|
|
132
|
-
};
|
|
@@ -65,9 +65,9 @@ export var RouteMatcher = /* @__PURE__ */ function() {
|
|
|
65
65
|
if (!this.urlReg) {
|
|
66
66
|
return this.urlPath.length;
|
|
67
67
|
} else {
|
|
68
|
-
var _result_;
|
|
68
|
+
var _result_, _result;
|
|
69
69
|
var result = this.urlReg.exec(pathname);
|
|
70
|
-
return (result === null ||
|
|
70
|
+
return ((_result = result) === null || _result === void 0 ? void 0 : (_result_ = _result[0]) === null || _result_ === void 0 ? void 0 : _result_.length) || null;
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
)
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { _ as _class_call_check } from "@swc/helpers/_/_class_call_check";
|
|
2
|
+
import { _ as _create_class } from "@swc/helpers/_/_create_class";
|
|
3
|
+
import { _ as _define_property } from "@swc/helpers/_/_define_property";
|
|
4
|
+
var SERVER_TIMING = "Server-Timing";
|
|
5
|
+
export var ServerTiming = /* @__PURE__ */ function() {
|
|
6
|
+
"use strict";
|
|
7
|
+
function ServerTiming2(res, meta) {
|
|
8
|
+
_class_call_check(this, ServerTiming2);
|
|
9
|
+
_define_property(this, "meta", void 0);
|
|
10
|
+
_define_property(this, "res", void 0);
|
|
11
|
+
this.meta = meta;
|
|
12
|
+
this.res = res;
|
|
13
|
+
}
|
|
14
|
+
_create_class(ServerTiming2, [
|
|
15
|
+
{
|
|
16
|
+
key: "addServeTiming",
|
|
17
|
+
value: function addServeTiming(name, dur, desc) {
|
|
18
|
+
var _name = "bd-".concat(this.meta, "-").concat(name);
|
|
19
|
+
var serverTiming = this.res.getHeader(SERVER_TIMING) || this.res.getHeader(SERVER_TIMING.toLocaleLowerCase());
|
|
20
|
+
var value = "".concat(_name, ";").concat(desc ? 'decs="'.concat(desc, '";') : "", " dur=").concat(dur);
|
|
21
|
+
this.res.setHeader(SERVER_TIMING, serverTiming ? "".concat(serverTiming, ", ").concat(value) : value);
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
]);
|
|
26
|
+
return ServerTiming2;
|
|
27
|
+
}();
|
package/dist/esm/renderHtml.js
CHANGED
|
@@ -11,9 +11,9 @@ import { Readable } from "stream";
|
|
|
11
11
|
import { Socket } from "net";
|
|
12
12
|
import { Server } from "./server";
|
|
13
13
|
import { isRedirect } from "./utils";
|
|
14
|
-
var IncomingMessageLike = /* @__PURE__ */ function(
|
|
14
|
+
var IncomingMessageLike = /* @__PURE__ */ function(Readable1) {
|
|
15
15
|
"use strict";
|
|
16
|
-
_inherits(IncomingMessageLike2,
|
|
16
|
+
_inherits(IncomingMessageLike2, Readable1);
|
|
17
17
|
var _super = _create_super(IncomingMessageLike2);
|
|
18
18
|
function IncomingMessageLike2(param) {
|
|
19
19
|
var method = param.method, url = param.url, headers = param.headers;
|
|
@@ -33,9 +33,9 @@ var IncomingMessageLike = /* @__PURE__ */ function(Readable2) {
|
|
|
33
33
|
}
|
|
34
34
|
return IncomingMessageLike2;
|
|
35
35
|
}(Readable);
|
|
36
|
-
var ServerResponseLike = /* @__PURE__ */ function(
|
|
36
|
+
var ServerResponseLike = /* @__PURE__ */ function(OutgoingMessage1) {
|
|
37
37
|
"use strict";
|
|
38
|
-
_inherits(ServerResponseLike2,
|
|
38
|
+
_inherits(ServerResponseLike2, OutgoingMessage1);
|
|
39
39
|
var _super = _create_super(ServerResponseLike2);
|
|
40
40
|
function ServerResponseLike2() {
|
|
41
41
|
_class_call_check(this, ServerResponseLike2);
|
|
@@ -60,9 +60,9 @@ var ServerResponseLike = /* @__PURE__ */ function(OutgoingMessage2) {
|
|
|
60
60
|
]);
|
|
61
61
|
return ServerResponseLike2;
|
|
62
62
|
}(OutgoingMessage);
|
|
63
|
-
var CustomServer = /* @__PURE__ */ function(
|
|
63
|
+
var CustomServer = /* @__PURE__ */ function(Server1) {
|
|
64
64
|
"use strict";
|
|
65
|
-
_inherits(CustomServer2,
|
|
65
|
+
_inherits(CustomServer2, Server1);
|
|
66
66
|
var _super = _create_super(CustomServer2);
|
|
67
67
|
function CustomServer2() {
|
|
68
68
|
_class_call_check(this, CustomServer2);
|
package/dist/esm/server/index.js
CHANGED
|
@@ -210,7 +210,8 @@ export var Server = /* @__PURE__ */ function() {
|
|
|
210
210
|
key: "listen",
|
|
211
211
|
value: function listen(options, listener) {
|
|
212
212
|
var callback = function() {
|
|
213
|
-
|
|
213
|
+
var _listener;
|
|
214
|
+
(_listener = listener) === null || _listener === void 0 ? void 0 : _listener();
|
|
214
215
|
};
|
|
215
216
|
if (typeof options === "object") {
|
|
216
217
|
if (process.env.PORT) {
|
|
@@ -306,6 +307,7 @@ export var Server = /* @__PURE__ */ function() {
|
|
|
306
307
|
{
|
|
307
308
|
key: "initAppContext",
|
|
308
309
|
value: function initAppContext() {
|
|
310
|
+
var _appContext, _appContext1, _appContext2;
|
|
309
311
|
var options = this.options;
|
|
310
312
|
var appDirectory = options.pwd, _options_plugins = options.plugins, plugins = _options_plugins === void 0 ? [] : _options_plugins, config = options.config, appContext = options.appContext;
|
|
311
313
|
var serverPlugins = plugins.map(function(p) {
|
|
@@ -315,9 +317,9 @@ export var Server = /* @__PURE__ */ function() {
|
|
|
315
317
|
});
|
|
316
318
|
return {
|
|
317
319
|
appDirectory: appDirectory,
|
|
318
|
-
apiDirectory: appContext === null ||
|
|
319
|
-
lambdaDirectory: appContext === null ||
|
|
320
|
-
sharedDirectory: (appContext === null ||
|
|
320
|
+
apiDirectory: (_appContext = appContext) === null || _appContext === void 0 ? void 0 : _appContext.apiDirectory,
|
|
321
|
+
lambdaDirectory: (_appContext1 = appContext) === null || _appContext1 === void 0 ? void 0 : _appContext1.lambdaDirectory,
|
|
322
|
+
sharedDirectory: ((_appContext2 = appContext) === null || _appContext2 === void 0 ? void 0 : _appContext2.sharedDirectory) || path.resolve(appDirectory, SHARED_DIR),
|
|
321
323
|
distDirectory: path.join(appDirectory, config.output.path || "dist"),
|
|
322
324
|
plugins: serverPlugins
|
|
323
325
|
};
|