main repo

This commit is contained in:
Basilosaurusrex
2025-11-24 18:09:40 +01:00
parent b636ee5e70
commit f027651f9b
34146 changed files with 4436636 additions and 0 deletions

View File

@@ -0,0 +1,57 @@
import { isResSent } from "../../shared/lib/utils";
import { generateETag } from "../lib/etag";
import fresh from "next/dist/compiled/fresh";
import { setRevalidateHeaders } from "./revalidate-headers";
import { RSC_CONTENT_TYPE_HEADER } from "../../client/components/app-router-headers";
export { setRevalidateHeaders };
export function sendEtagResponse(req, res, etag) {
if (etag) {
/**
* The server generating a 304 response MUST generate any of the
* following header fields that would have been sent in a 200 (OK)
* response to the same request: Cache-Control, Content-Location, Date,
* ETag, Expires, and Vary. https://tools.ietf.org/html/rfc7232#section-4.1
*/ res.setHeader("ETag", etag);
}
if (fresh(req.headers, {
etag
})) {
res.statusCode = 304;
res.end();
return true;
}
return false;
}
export async function sendRenderResult({ req, res, result, type, generateEtags, poweredByHeader, options }) {
if (isResSent(res)) {
return;
}
if (poweredByHeader && type === "html") {
res.setHeader("X-Powered-By", "Next.js");
}
if (options != null) {
setRevalidateHeaders(res, options);
}
const payload = result.isDynamic ? null : await result.toUnchunkedString();
if (payload !== null) {
const etag = generateEtags ? generateETag(payload) : undefined;
if (sendEtagResponse(req, res, etag)) {
return;
}
}
if (!res.getHeader("Content-Type")) {
res.setHeader("Content-Type", result.contentType ? result.contentType : type === "rsc" ? RSC_CONTENT_TYPE_HEADER : type === "json" ? "application/json" : "text/html; charset=utf-8");
}
if (payload) {
res.setHeader("Content-Length", Buffer.byteLength(payload));
}
if (req.method === "HEAD") {
res.end(null);
} else if (payload !== null) {
res.end(payload);
} else {
await result.pipe(res);
}
}
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../src/server/send-payload/index.ts"],"names":["isResSent","generateETag","fresh","setRevalidateHeaders","RSC_CONTENT_TYPE_HEADER","sendEtagResponse","req","res","etag","setHeader","headers","statusCode","end","sendRenderResult","result","type","generateEtags","poweredByHeader","options","payload","isDynamic","toUnchunkedString","undefined","getHeader","contentType","Buffer","byteLength","method","pipe"],"mappings":"AAEA,SAASA,SAAS,QAAQ,yBAAwB;AAClD,SAASC,YAAY,QAAQ,cAAa;AAC1C,OAAOC,WAAW,2BAA0B;AAE5C,SAASC,oBAAoB,QAAQ,uBAAsB;AAC3D,SAASC,uBAAuB,QAAQ,6CAA4C;AAOpF,SAASD,oBAAoB,GAAE;AAE/B,OAAO,SAASE,iBACdC,GAAoB,EACpBC,GAAmB,EACnBC,IAAwB;IAExB,IAAIA,MAAM;QACR;;;;;KAKC,GACDD,IAAIE,SAAS,CAAC,QAAQD;IACxB;IAEA,IAAIN,MAAMI,IAAII,OAAO,EAAE;QAAEF;IAAK,IAAI;QAChCD,IAAII,UAAU,GAAG;QACjBJ,IAAIK,GAAG;QACP,OAAO;IACT;IAEA,OAAO;AACT;AAEA,OAAO,eAAeC,iBAAiB,EACrCP,GAAG,EACHC,GAAG,EACHO,MAAM,EACNC,IAAI,EACJC,aAAa,EACbC,eAAe,EACfC,OAAO,EASR;IACC,IAAIlB,UAAUO,MAAM;QAClB;IACF;IAEA,IAAIU,mBAAmBF,SAAS,QAAQ;QACtCR,IAAIE,SAAS,CAAC,gBAAgB;IAChC;IAEA,IAAIS,WAAW,MAAM;QACnBf,qBAAqBI,KAAKW;IAC5B;IAEA,MAAMC,UAAUL,OAAOM,SAAS,GAAG,OAAO,MAAMN,OAAOO,iBAAiB;IAExE,IAAIF,YAAY,MAAM;QACpB,MAAMX,OAAOQ,gBAAgBf,aAAakB,WAAWG;QACrD,IAAIjB,iBAAiBC,KAAKC,KAAKC,OAAO;YACpC;QACF;IACF;IAEA,IAAI,CAACD,IAAIgB,SAAS,CAAC,iBAAiB;QAClChB,IAAIE,SAAS,CACX,gBACAK,OAAOU,WAAW,GACdV,OAAOU,WAAW,GAClBT,SAAS,QACTX,0BACAW,SAAS,SACT,qBACA;IAER;IAEA,IAAII,SAAS;QACXZ,IAAIE,SAAS,CAAC,kBAAkBgB,OAAOC,UAAU,CAACP;IACpD;IAEA,IAAIb,IAAIqB,MAAM,KAAK,QAAQ;QACzBpB,IAAIK,GAAG,CAAC;IACV,OAAO,IAAIO,YAAY,MAAM;QAC3BZ,IAAIK,GAAG,CAACO;IACV,OAAO;QACL,MAAML,OAAOc,IAAI,CAACrB;IACpB;AACF"}

View File

@@ -0,0 +1,16 @@
export function setRevalidateHeaders(res, options) {
if (options.private || options.stateful) {
if (options.private || !res.getHeader("Cache-Control")) {
res.setHeader("Cache-Control", `private, no-cache, no-store, max-age=0, must-revalidate`);
}
} else if (typeof options.revalidate === "number") {
if (options.revalidate < 1) {
throw new Error(`invariant: invalid Cache-Control duration provided: ${options.revalidate} < 1`);
}
res.setHeader("Cache-Control", `s-maxage=${options.revalidate}, stale-while-revalidate`);
} else if (options.revalidate === false) {
res.setHeader("Cache-Control", `s-maxage=31536000, stale-while-revalidate`);
}
}
//# sourceMappingURL=revalidate-headers.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../src/server/send-payload/revalidate-headers.ts"],"names":["setRevalidateHeaders","res","options","private","stateful","getHeader","setHeader","revalidate","Error"],"mappings":"AAIA,OAAO,SAASA,qBACdC,GAAsC,EACtCC,OAAuB;IAEvB,IAAIA,QAAQC,OAAO,IAAID,QAAQE,QAAQ,EAAE;QACvC,IAAIF,QAAQC,OAAO,IAAI,CAACF,IAAII,SAAS,CAAC,kBAAkB;YACtDJ,IAAIK,SAAS,CACX,iBACA,CAAC,uDAAuD,CAAC;QAE7D;IACF,OAAO,IAAI,OAAOJ,QAAQK,UAAU,KAAK,UAAU;QACjD,IAAIL,QAAQK,UAAU,GAAG,GAAG;YAC1B,MAAM,IAAIC,MACR,CAAC,oDAAoD,EAAEN,QAAQK,UAAU,CAAC,IAAI,CAAC;QAEnF;QAEAN,IAAIK,SAAS,CACX,iBACA,CAAC,SAAS,EAAEJ,QAAQK,UAAU,CAAC,wBAAwB,CAAC;IAE5D,OAAO,IAAIL,QAAQK,UAAU,KAAK,OAAO;QACvCN,IAAIK,SAAS,CAAC,iBAAiB,CAAC,yCAAyC,CAAC;IAC5E;AACF"}