@nifrajs/node 2.7.1 → 2.8.1
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/index.d.ts.map +1 -1
- package/dist/index.js +86 -16
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +94 -20
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,eAAe,EAErB,MAAM,WAAW,CAAA;AAKlB,sGAAsG;AACtG,UAAU,YAAY;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,6EAA6E;AAC7E,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,YAAY,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC9E;;kEAE8D;IAC9D,uBAAuB,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;CACzF;AAKD,4EAA4E;AAC5E,KAAK,WAAW,GAAG,MAAM,GAAG,UAAU,CAAA;AAEtC,uFAAuF;AACvF,UAAU,OAAO;IACf,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,WAAW,GAAG,IAAI,CAAA;IACxD,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAA;CACtB;AAED,wGAAwG;AACxG,UAAU,QAAQ;IAChB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAAA;IAC3C,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7C,cAAc,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAAA;CAClC;AAED,uGAAuG;AACvG,UAAU,cAAc;IACtB,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,OAAO,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvE,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1D;AAED,2FAA2F;AAC3F,KAAK,gBAAgB,GACjB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,GACxD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAC1B,CAAA;AAsBL,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,CAAA;AAC9C,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf,CAAC,CAAC,OAAO,EAAE,eAAe,KAAK,eAAe,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -333,9 +333,17 @@ function handle(app, nodeReq, nodeRes, getProtocol, staticState) {
|
|
|
333
333
|
}
|
|
334
334
|
// The TCP socket peer (the one address a client can't forge) → `c.clientIp`, unless the app's
|
|
335
335
|
// `clientIp` trust declaration derives it from the forwarding chain instead. `undefined` for an
|
|
336
|
-
// already-closed socket.
|
|
337
|
-
|
|
338
|
-
const
|
|
336
|
+
// already-closed socket. The peer is constant for a socket's lifetime, so the platform object is
|
|
337
|
+
// built once per CONNECTION and reused across every keep-alive request on it.
|
|
338
|
+
const socket = nodeReq.socket;
|
|
339
|
+
let platform = socket?.[PLATFORM];
|
|
340
|
+
if (platform === undefined) {
|
|
341
|
+
const peerAddress = socket?.remoteAddress;
|
|
342
|
+
if (peerAddress !== undefined && socket !== null) {
|
|
343
|
+
platform = { clientIp: peerAddress };
|
|
344
|
+
socket[PLATFORM] = platform;
|
|
345
|
+
}
|
|
346
|
+
}
|
|
339
347
|
// Static files first (GET/HEAD). The match is synchronous, so a non-asset request never leaves the
|
|
340
348
|
// app's sync fast path below; only a prefix hit reads from disk (and async-writes the file).
|
|
341
349
|
if (staticState !== undefined && (nodeReq.method === "GET" || nodeReq.method === "HEAD")) {
|
|
@@ -419,9 +427,13 @@ function writeJsonOutcome(outcome, nodeRes) {
|
|
|
419
427
|
headers[key.toLowerCase()] = value;
|
|
420
428
|
}
|
|
421
429
|
// A `null` body is a 204/no-content render - `new Response(null)` carries no Content-Type, so we add
|
|
422
|
-
// none either; a non-null body is JSON, matching `Response.json`'s Content-Type.
|
|
423
|
-
|
|
430
|
+
// none either; a non-null body is JSON, matching `Response.json`'s Content-Type. The length is known,
|
|
431
|
+
// so declare it - without it Node falls back to chunked framing, which costs extra wire bytes and
|
|
432
|
+
// client parsing on every response (and no other runtime chunks a buffered JSON body).
|
|
433
|
+
if (outcome.body !== null) {
|
|
424
434
|
headers["content-type"] = JSON_CONTENT_TYPE;
|
|
435
|
+
headers["content-length"] = String(Buffer.byteLength(outcome.body));
|
|
436
|
+
}
|
|
425
437
|
if (outcome.cookies !== undefined && outcome.cookies.length > 0) {
|
|
426
438
|
headers["set-cookie"] = [...outcome.cookies];
|
|
427
439
|
}
|
|
@@ -441,9 +453,24 @@ function writeBodyOutcome(outcome, nodeRes) {
|
|
|
441
453
|
// mutable runtime shapes (`string` / `string[]`); avoid cloning this record and every Set-Cookie
|
|
442
454
|
// array on the hot SSR path. The readonly type is an ownership guarantee from the producer, not a
|
|
443
455
|
// runtime value Node mutates.
|
|
444
|
-
|
|
456
|
+
const headers = outcome.headers;
|
|
457
|
+
// The body is buffered, so its length is known - declare it unless the producer already did.
|
|
458
|
+
// Without a length Node falls back to chunked framing (extra wire bytes on every SSR response).
|
|
459
|
+
if (headers === undefined) {
|
|
460
|
+
nodeRes.setHeader("content-length", byteLengthOf(outcome.body));
|
|
461
|
+
nodeRes.writeHead(outcome.status);
|
|
462
|
+
}
|
|
463
|
+
else {
|
|
464
|
+
if (headers["content-length"] === undefined) {
|
|
465
|
+
headers["content-length"] = String(byteLengthOf(outcome.body));
|
|
466
|
+
}
|
|
467
|
+
nodeRes.writeHead(outcome.status, headers);
|
|
468
|
+
}
|
|
445
469
|
nodeRes.end(outcome.body);
|
|
446
470
|
}
|
|
471
|
+
const byteLengthOf = (body) => typeof body === "string" ? Buffer.byteLength(body) : body.byteLength;
|
|
472
|
+
/** Per-connection cache slot for the socket-peer platform object (see `handle`). */
|
|
473
|
+
const PLATFORM = Symbol("nifra.node.platform");
|
|
447
474
|
function protocolResolver(option) {
|
|
448
475
|
if (option === undefined)
|
|
449
476
|
return () => "http";
|
|
@@ -465,11 +492,36 @@ function toWebRequest(req, protocol) {
|
|
|
465
492
|
}
|
|
466
493
|
function toNodeRequestSource(req, protocol) {
|
|
467
494
|
const method = req.method ?? "GET";
|
|
468
|
-
const host = req.headers.host ?? "localhost";
|
|
469
|
-
const url = `${protocol}://${host}${req.url ?? "/"}`;
|
|
470
495
|
return method === "GET" || method === "HEAD"
|
|
471
|
-
? new LeanNodeGetSource(req, method,
|
|
472
|
-
: new LazyNodeRequestSource(req, method,
|
|
496
|
+
? new LeanNodeGetSource(req, method, protocol)
|
|
497
|
+
: new LazyNodeRequestSource(req, method, protocol);
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Split an origin-form request target ("/path?q#frag") into pathname + search without synthesizing
|
|
501
|
+
* an absolute URL first. Mirrors `@nifrajs/core`'s `urlPartsOf` for the origin-form case (kept in
|
|
502
|
+
* lockstep by the serve integration test).
|
|
503
|
+
*/
|
|
504
|
+
function originUrlParts(target) {
|
|
505
|
+
let pathEnd = target.length;
|
|
506
|
+
let searchStart = -1;
|
|
507
|
+
let searchEnd = target.length;
|
|
508
|
+
for (let i = 0; i < target.length; i++) {
|
|
509
|
+
const c = target.charCodeAt(i);
|
|
510
|
+
if (c === 63 /* ? */ && searchStart === -1) {
|
|
511
|
+
pathEnd = i;
|
|
512
|
+
searchStart = i;
|
|
513
|
+
}
|
|
514
|
+
else if (c === 35 /* # */) {
|
|
515
|
+
if (searchStart === -1)
|
|
516
|
+
pathEnd = i;
|
|
517
|
+
searchEnd = i;
|
|
518
|
+
break;
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
return {
|
|
522
|
+
pathname: pathEnd === 0 ? "/" : target.slice(0, pathEnd),
|
|
523
|
+
search: searchStart === -1 ? "" : target.slice(searchStart, searchEnd),
|
|
524
|
+
};
|
|
473
525
|
}
|
|
474
526
|
/**
|
|
475
527
|
* Lazy view over a Node `IncomingMessage`. Methods live on the prototype (not re-allocated per
|
|
@@ -479,17 +531,26 @@ function toNodeRequestSource(req, protocol) {
|
|
|
479
531
|
*/
|
|
480
532
|
class LazyNodeRequestSource {
|
|
481
533
|
method;
|
|
482
|
-
url;
|
|
483
534
|
headersValue;
|
|
484
535
|
bodyValue;
|
|
485
536
|
requestValue;
|
|
486
537
|
consumedBody;
|
|
487
538
|
readBodyPromise;
|
|
539
|
+
urlValue;
|
|
488
540
|
nodeReq;
|
|
489
|
-
|
|
541
|
+
protocol;
|
|
542
|
+
constructor(nodeReq, method, protocol) {
|
|
490
543
|
this.nodeReq = nodeReq;
|
|
491
544
|
this.method = method;
|
|
492
|
-
this.
|
|
545
|
+
this.protocol = protocol;
|
|
546
|
+
}
|
|
547
|
+
/** The absolute URL, built only when something reads it - routing uses `urlParts` instead. */
|
|
548
|
+
get url() {
|
|
549
|
+
this.urlValue ??= `${this.protocol}://${this.nodeReq.headers.host ?? "localhost"}${this.nodeReq.url ?? "/"}`;
|
|
550
|
+
return this.urlValue;
|
|
551
|
+
}
|
|
552
|
+
get urlParts() {
|
|
553
|
+
return originUrlParts(this.nodeReq.url ?? "/");
|
|
493
554
|
}
|
|
494
555
|
get headers() {
|
|
495
556
|
this.headersValue ??= headersFromNode(this.nodeReq.headers);
|
|
@@ -593,14 +654,23 @@ class LazyNodeRequestSource {
|
|
|
593
654
|
*/
|
|
594
655
|
class LeanNodeGetSource {
|
|
595
656
|
method;
|
|
596
|
-
url;
|
|
597
657
|
headersValue;
|
|
598
658
|
requestValue;
|
|
659
|
+
urlValue;
|
|
599
660
|
nodeReq;
|
|
600
|
-
|
|
661
|
+
protocol;
|
|
662
|
+
constructor(nodeReq, method, protocol) {
|
|
601
663
|
this.nodeReq = nodeReq;
|
|
602
664
|
this.method = method;
|
|
603
|
-
this.
|
|
665
|
+
this.protocol = protocol;
|
|
666
|
+
}
|
|
667
|
+
/** The absolute URL, built only when something reads it - routing uses `urlParts` instead. */
|
|
668
|
+
get url() {
|
|
669
|
+
this.urlValue ??= `${this.protocol}://${this.nodeReq.headers.host ?? "localhost"}${this.nodeReq.url ?? "/"}`;
|
|
670
|
+
return this.urlValue;
|
|
671
|
+
}
|
|
672
|
+
get urlParts() {
|
|
673
|
+
return originUrlParts(this.nodeReq.url ?? "/");
|
|
604
674
|
}
|
|
605
675
|
get headers() {
|
|
606
676
|
this.headersValue ??= headersFromNode(this.nodeReq.headers);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -132,6 +132,8 @@ type NodeServeOutcome =
|
|
|
132
132
|
interface NodeRequestSource {
|
|
133
133
|
readonly method: string
|
|
134
134
|
readonly url: string
|
|
135
|
+
/** Pre-split origin-form target - core routes from this without building the absolute URL. */
|
|
136
|
+
readonly urlParts: { readonly pathname: string; readonly search: string }
|
|
135
137
|
readonly headers: Headers
|
|
136
138
|
header(name: string): string | null
|
|
137
139
|
readonly body: ReadableStream<Uint8Array> | null
|
|
@@ -578,10 +580,17 @@ function handle(
|
|
|
578
580
|
|
|
579
581
|
// The TCP socket peer (the one address a client can't forge) → `c.clientIp`, unless the app's
|
|
580
582
|
// `clientIp` trust declaration derives it from the forwarding chain instead. `undefined` for an
|
|
581
|
-
// already-closed socket.
|
|
582
|
-
|
|
583
|
-
const
|
|
584
|
-
|
|
583
|
+
// already-closed socket. The peer is constant for a socket's lifetime, so the platform object is
|
|
584
|
+
// built once per CONNECTION and reused across every keep-alive request on it.
|
|
585
|
+
const socket = nodeReq.socket as (typeof nodeReq.socket & { [PLATFORM]?: NodePlatform }) | null
|
|
586
|
+
let platform = socket?.[PLATFORM]
|
|
587
|
+
if (platform === undefined) {
|
|
588
|
+
const peerAddress = socket?.remoteAddress
|
|
589
|
+
if (peerAddress !== undefined && socket !== null) {
|
|
590
|
+
platform = { clientIp: peerAddress }
|
|
591
|
+
socket[PLATFORM] = platform
|
|
592
|
+
}
|
|
593
|
+
}
|
|
585
594
|
|
|
586
595
|
// Static files first (GET/HEAD). The match is synchronous, so a non-asset request never leaves the
|
|
587
596
|
// app's sync fast path below; only a prefix hit reads from disk (and async-writes the file).
|
|
@@ -690,8 +699,13 @@ function writeJsonOutcome(
|
|
|
690
699
|
for (const [key, value] of Object.entries(outcome.headers)) headers[key.toLowerCase()] = value
|
|
691
700
|
}
|
|
692
701
|
// A `null` body is a 204/no-content render - `new Response(null)` carries no Content-Type, so we add
|
|
693
|
-
// none either; a non-null body is JSON, matching `Response.json`'s Content-Type.
|
|
694
|
-
|
|
702
|
+
// none either; a non-null body is JSON, matching `Response.json`'s Content-Type. The length is known,
|
|
703
|
+
// so declare it - without it Node falls back to chunked framing, which costs extra wire bytes and
|
|
704
|
+
// client parsing on every response (and no other runtime chunks a buffered JSON body).
|
|
705
|
+
if (outcome.body !== null) {
|
|
706
|
+
headers["content-type"] = JSON_CONTENT_TYPE
|
|
707
|
+
headers["content-length"] = String(Buffer.byteLength(outcome.body))
|
|
708
|
+
}
|
|
695
709
|
if (outcome.cookies !== undefined && outcome.cookies.length > 0) {
|
|
696
710
|
headers["set-cookie"] = [...outcome.cookies]
|
|
697
711
|
}
|
|
@@ -713,13 +727,27 @@ function writeBodyOutcome(
|
|
|
713
727
|
// mutable runtime shapes (`string` / `string[]`); avoid cloning this record and every Set-Cookie
|
|
714
728
|
// array on the hot SSR path. The readonly type is an ownership guarantee from the producer, not a
|
|
715
729
|
// runtime value Node mutates.
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
)
|
|
730
|
+
const headers = outcome.headers as Record<string, string | string[]> | undefined
|
|
731
|
+
// The body is buffered, so its length is known - declare it unless the producer already did.
|
|
732
|
+
// Without a length Node falls back to chunked framing (extra wire bytes on every SSR response).
|
|
733
|
+
if (headers === undefined) {
|
|
734
|
+
nodeRes.setHeader("content-length", byteLengthOf(outcome.body))
|
|
735
|
+
nodeRes.writeHead(outcome.status)
|
|
736
|
+
} else {
|
|
737
|
+
if (headers["content-length"] === undefined) {
|
|
738
|
+
headers["content-length"] = String(byteLengthOf(outcome.body))
|
|
739
|
+
}
|
|
740
|
+
nodeRes.writeHead(outcome.status, headers)
|
|
741
|
+
}
|
|
720
742
|
nodeRes.end(outcome.body)
|
|
721
743
|
}
|
|
722
744
|
|
|
745
|
+
const byteLengthOf = (body: string | Uint8Array): number =>
|
|
746
|
+
typeof body === "string" ? Buffer.byteLength(body) : body.byteLength
|
|
747
|
+
|
|
748
|
+
/** Per-connection cache slot for the socket-peer platform object (see `handle`). */
|
|
749
|
+
const PLATFORM = Symbol("nifra.node.platform")
|
|
750
|
+
|
|
723
751
|
function protocolResolver(option: RequestProtocolOption | undefined): RequestProtocolResolver {
|
|
724
752
|
if (option === undefined) return () => "http"
|
|
725
753
|
if (typeof option === "function") return (req) => normalizeProtocol(option(req))
|
|
@@ -743,11 +771,35 @@ function toWebRequest(req: IncomingMessage, protocol: RequestProtocol): Request
|
|
|
743
771
|
|
|
744
772
|
function toNodeRequestSource(req: IncomingMessage, protocol: RequestProtocol): NodeRequestSource {
|
|
745
773
|
const method = req.method ?? "GET"
|
|
746
|
-
const host = req.headers.host ?? "localhost"
|
|
747
|
-
const url = `${protocol}://${host}${req.url ?? "/"}`
|
|
748
774
|
return method === "GET" || method === "HEAD"
|
|
749
|
-
? new LeanNodeGetSource(req, method,
|
|
750
|
-
: new LazyNodeRequestSource(req, method,
|
|
775
|
+
? new LeanNodeGetSource(req, method, protocol)
|
|
776
|
+
: new LazyNodeRequestSource(req, method, protocol)
|
|
777
|
+
}
|
|
778
|
+
|
|
779
|
+
/**
|
|
780
|
+
* Split an origin-form request target ("/path?q#frag") into pathname + search without synthesizing
|
|
781
|
+
* an absolute URL first. Mirrors `@nifrajs/core`'s `urlPartsOf` for the origin-form case (kept in
|
|
782
|
+
* lockstep by the serve integration test).
|
|
783
|
+
*/
|
|
784
|
+
function originUrlParts(target: string): { pathname: string; search: string } {
|
|
785
|
+
let pathEnd = target.length
|
|
786
|
+
let searchStart = -1
|
|
787
|
+
let searchEnd = target.length
|
|
788
|
+
for (let i = 0; i < target.length; i++) {
|
|
789
|
+
const c = target.charCodeAt(i)
|
|
790
|
+
if (c === 63 /* ? */ && searchStart === -1) {
|
|
791
|
+
pathEnd = i
|
|
792
|
+
searchStart = i
|
|
793
|
+
} else if (c === 35 /* # */) {
|
|
794
|
+
if (searchStart === -1) pathEnd = i
|
|
795
|
+
searchEnd = i
|
|
796
|
+
break
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
return {
|
|
800
|
+
pathname: pathEnd === 0 ? "/" : target.slice(0, pathEnd),
|
|
801
|
+
search: searchStart === -1 ? "" : target.slice(searchStart, searchEnd),
|
|
802
|
+
}
|
|
751
803
|
}
|
|
752
804
|
|
|
753
805
|
/**
|
|
@@ -758,19 +810,30 @@ function toNodeRequestSource(req: IncomingMessage, protocol: RequestProtocol): N
|
|
|
758
810
|
*/
|
|
759
811
|
class LazyNodeRequestSource implements NodeRequestSource {
|
|
760
812
|
readonly method: string
|
|
761
|
-
readonly url: string
|
|
762
813
|
|
|
763
814
|
private headersValue: Headers | undefined
|
|
764
815
|
private bodyValue: ReadableStream<Uint8Array> | null | undefined
|
|
765
816
|
private requestValue: Request | undefined
|
|
766
817
|
private consumedBody: Buffer | undefined
|
|
767
818
|
private readBodyPromise: Promise<Buffer> | undefined
|
|
819
|
+
private urlValue: string | undefined
|
|
768
820
|
private readonly nodeReq: IncomingMessage
|
|
821
|
+
private readonly protocol: RequestProtocol
|
|
769
822
|
|
|
770
|
-
constructor(nodeReq: IncomingMessage, method: string,
|
|
823
|
+
constructor(nodeReq: IncomingMessage, method: string, protocol: RequestProtocol) {
|
|
771
824
|
this.nodeReq = nodeReq
|
|
772
825
|
this.method = method
|
|
773
|
-
this.
|
|
826
|
+
this.protocol = protocol
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
/** The absolute URL, built only when something reads it - routing uses `urlParts` instead. */
|
|
830
|
+
get url(): string {
|
|
831
|
+
this.urlValue ??= `${this.protocol}://${this.nodeReq.headers.host ?? "localhost"}${this.nodeReq.url ?? "/"}`
|
|
832
|
+
return this.urlValue
|
|
833
|
+
}
|
|
834
|
+
|
|
835
|
+
get urlParts(): { pathname: string; search: string } {
|
|
836
|
+
return originUrlParts(this.nodeReq.url ?? "/")
|
|
774
837
|
}
|
|
775
838
|
|
|
776
839
|
get headers(): Headers {
|
|
@@ -885,16 +948,27 @@ class LazyNodeRequestSource implements NodeRequestSource {
|
|
|
885
948
|
*/
|
|
886
949
|
class LeanNodeGetSource implements NodeRequestSource {
|
|
887
950
|
readonly method: string
|
|
888
|
-
readonly url: string
|
|
889
951
|
|
|
890
952
|
private headersValue: Headers | undefined
|
|
891
953
|
private requestValue: Request | undefined
|
|
954
|
+
private urlValue: string | undefined
|
|
892
955
|
private readonly nodeReq: IncomingMessage
|
|
956
|
+
private readonly protocol: RequestProtocol
|
|
893
957
|
|
|
894
|
-
constructor(nodeReq: IncomingMessage, method: string,
|
|
958
|
+
constructor(nodeReq: IncomingMessage, method: string, protocol: RequestProtocol) {
|
|
895
959
|
this.nodeReq = nodeReq
|
|
896
960
|
this.method = method
|
|
897
|
-
this.
|
|
961
|
+
this.protocol = protocol
|
|
962
|
+
}
|
|
963
|
+
|
|
964
|
+
/** The absolute URL, built only when something reads it - routing uses `urlParts` instead. */
|
|
965
|
+
get url(): string {
|
|
966
|
+
this.urlValue ??= `${this.protocol}://${this.nodeReq.headers.host ?? "localhost"}${this.nodeReq.url ?? "/"}`
|
|
967
|
+
return this.urlValue
|
|
968
|
+
}
|
|
969
|
+
|
|
970
|
+
get urlParts(): { pathname: string; search: string } {
|
|
971
|
+
return originUrlParts(this.nodeReq.url ?? "/")
|
|
898
972
|
}
|
|
899
973
|
|
|
900
974
|
get headers(): Headers {
|