create project

This commit is contained in:
ismailsosic
2022-12-27 12:05:56 +01:00
parent 2a33a2d3de
commit cd2143287c
16035 changed files with 2489703 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";
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");
}
const payload = result.isDynamic() ? null : await result.toUnchunkedString();
if (payload) {
const etag = generateEtags ? generateETag(payload) : undefined;
if (sendEtagResponse(req, res, etag)) {
return;
}
}
const resultContentType = result.contentType();
if (!res.getHeader("Content-Type")) {
res.setHeader("Content-Type", resultContentType ? resultContentType : type === "rsc" ? "application/octet-stream" : type === "json" ? "application/json" : "text/html; charset=utf-8");
}
if (payload) {
res.setHeader("Content-Length", Buffer.byteLength(payload));
}
if (options != null) {
setRevalidateHeaders(res, options);
}
if (req.method === "HEAD") {
res.end(null);
} else if (payload) {
res.end(payload);
} else {
await result.pipe(res);
}
}
//# sourceMappingURL=index.js.map

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../../../server/send-payload/index.ts"],"names":["isResSent","generateETag","fresh","setRevalidateHeaders","sendEtagResponse","req","res","etag","setHeader","headers","statusCode","end","sendRenderResult","result","type","generateEtags","poweredByHeader","options","payload","isDynamic","toUnchunkedString","undefined","resultContentType","contentType","getHeader","Buffer","byteLength","method","pipe"],"mappings":"AAEA,SAASA,SAAS,QAAQ,wBAAwB,CAAA;AAClD,SAASC,YAAY,QAAQ,aAAa,CAAA;AAC1C,OAAOC,KAAK,MAAM,0BAA0B,CAAA;AAE5C,SAASC,oBAAoB,QAAQ,sBAAsB,CAAA;AAO3D,SAASA,oBAAoB,GAAE;AAE/B,OAAO,SAASC,gBAAgB,CAC9BC,GAAoB,EACpBC,GAAmB,EACnBC,IAAwB,EACf;IACT,IAAIA,IAAI,EAAE;QACR;;;;;OAKG,CACHD,GAAG,CAACE,SAAS,CAAC,MAAM,EAAED,IAAI,CAAC;KAC5B;IAED,IAAIL,KAAK,CAACG,GAAG,CAACI,OAAO,EAAE;QAAEF,IAAI;KAAE,CAAC,EAAE;QAChCD,GAAG,CAACI,UAAU,GAAG,GAAG;QACpBJ,GAAG,CAACK,GAAG,EAAE;QACT,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,KAAK,CAAA;CACb;AAED,OAAO,eAAeC,gBAAgB,CAAC,EACrCP,GAAG,CAAA,EACHC,GAAG,CAAA,EACHO,MAAM,CAAA,EACNC,IAAI,CAAA,EACJC,aAAa,CAAA,EACbC,eAAe,CAAA,EACfC,OAAO,CAAA,EASR,EAAiB;IAChB,IAAIjB,SAAS,CAACM,GAAG,CAAC,EAAE;QAClB,OAAM;KACP;IAED,IAAIU,eAAe,IAAIF,IAAI,KAAK,MAAM,EAAE;QACtCR,GAAG,CAACE,SAAS,CAAC,cAAc,EAAE,SAAS,CAAC;KACzC;IAED,MAAMU,OAAO,GAAGL,MAAM,CAACM,SAAS,EAAE,GAAG,IAAI,GAAG,MAAMN,MAAM,CAACO,iBAAiB,EAAE;IAE5E,IAAIF,OAAO,EAAE;QACX,MAAMX,IAAI,GAAGQ,aAAa,GAAGd,YAAY,CAACiB,OAAO,CAAC,GAAGG,SAAS;QAC9D,IAAIjB,gBAAgB,CAACC,GAAG,EAAEC,GAAG,EAAEC,IAAI,CAAC,EAAE;YACpC,OAAM;SACP;KACF;IAED,MAAMe,iBAAiB,GAAGT,MAAM,CAACU,WAAW,EAAE;IAE9C,IAAI,CAACjB,GAAG,CAACkB,SAAS,CAAC,cAAc,CAAC,EAAE;QAClClB,GAAG,CAACE,SAAS,CACX,cAAc,EACdc,iBAAiB,GACbA,iBAAiB,GACjBR,IAAI,KAAK,KAAK,GACd,0BAA0B,GAC1BA,IAAI,KAAK,MAAM,GACf,kBAAkB,GAClB,0BAA0B,CAC/B;KACF;IAED,IAAII,OAAO,EAAE;QACXZ,GAAG,CAACE,SAAS,CAAC,gBAAgB,EAAEiB,MAAM,CAACC,UAAU,CAACR,OAAO,CAAC,CAAC;KAC5D;IAED,IAAID,OAAO,IAAI,IAAI,EAAE;QACnBd,oBAAoB,CAACG,GAAG,EAAEW,OAAO,CAAC;KACnC;IAED,IAAIZ,GAAG,CAACsB,MAAM,KAAK,MAAM,EAAE;QACzBrB,GAAG,CAACK,GAAG,CAAC,IAAI,CAAC;KACd,MAAM,IAAIO,OAAO,EAAE;QAClBZ,GAAG,CAACK,GAAG,CAACO,OAAO,CAAC;KACjB,MAAM;QACL,MAAML,MAAM,CAACe,IAAI,CAACtB,GAAG,CAAC;KACvB;CACF"}

View File

@@ -0,0 +1,16 @@
export function setRevalidateHeaders(res, options) {
if (options.private || options.stateful) {
if (options.private || !res.hasHeader("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":["../../../server/send-payload/revalidate-headers.ts"],"names":["setRevalidateHeaders","res","options","private","stateful","hasHeader","setHeader","revalidate","Error"],"mappings":"AAIA,OAAO,SAASA,oBAAoB,CAClCC,GAAsC,EACtCC,OAAuB,EACvB;IACA,IAAIA,OAAO,CAACC,OAAO,IAAID,OAAO,CAACE,QAAQ,EAAE;QACvC,IAAIF,OAAO,CAACC,OAAO,IAAI,CAACF,GAAG,CAACI,SAAS,CAAC,eAAe,CAAC,EAAE;YACtDJ,GAAG,CAACK,SAAS,CACX,eAAe,EACf,CAAC,uDAAuD,CAAC,CAC1D;SACF;KACF,MAAM,IAAI,OAAOJ,OAAO,CAACK,UAAU,KAAK,QAAQ,EAAE;QACjD,IAAIL,OAAO,CAACK,UAAU,GAAG,CAAC,EAAE;YAC1B,MAAM,IAAIC,KAAK,CACb,CAAC,oDAAoD,EAAEN,OAAO,CAACK,UAAU,CAAC,IAAI,CAAC,CAChF,CAAA;SACF;QAEDN,GAAG,CAACK,SAAS,CACX,eAAe,EACf,CAAC,SAAS,EAAEJ,OAAO,CAACK,UAAU,CAAC,wBAAwB,CAAC,CACzD;KACF,MAAM,IAAIL,OAAO,CAACK,UAAU,KAAK,KAAK,EAAE;QACvCN,GAAG,CAACK,SAAS,CAAC,eAAe,EAAE,CAAC,yCAAyC,CAAC,CAAC;KAC5E;CACF"}