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,25 @@
/// <reference types="node" />
import type { IncomingMessage, ServerResponse } from 'http';
import RenderResult from '../render-result';
import { setRevalidateHeaders } from './revalidate-headers';
export declare type PayloadOptions = {
private: true;
} | {
private: boolean;
stateful: true;
} | {
private: boolean;
stateful: false;
revalidate: number | false;
};
export { setRevalidateHeaders };
export declare function sendEtagResponse(req: IncomingMessage, res: ServerResponse, etag: string | undefined): boolean;
export declare function sendRenderResult({ req, res, result, type, generateEtags, poweredByHeader, options, }: {
req: IncomingMessage;
res: ServerResponse;
result: RenderResult;
type: 'html' | 'json' | 'rsc';
generateEtags: boolean;
poweredByHeader: boolean;
options?: PayloadOptions;
}): Promise<void>;

View File

@@ -0,0 +1,73 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "setRevalidateHeaders", {
enumerable: true,
get: function() {
return _revalidateHeaders.setRevalidateHeaders;
}
});
exports.sendEtagResponse = sendEtagResponse;
exports.sendRenderResult = sendRenderResult;
var _utils = require("../../shared/lib/utils");
var _etag = require("../lib/etag");
var _fresh = _interopRequireDefault(require("next/dist/compiled/fresh"));
var _revalidateHeaders = require("./revalidate-headers");
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
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 ((0, _fresh).default(req.headers, {
etag
})) {
res.statusCode = 304;
res.end();
return true;
}
return false;
}
async function sendRenderResult({ req , res , result , type , generateEtags , poweredByHeader , options }) {
if ((0, _utils).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 ? (0, _etag).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) {
(0, _revalidateHeaders).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":["setRevalidateHeaders","sendEtagResponse","sendRenderResult","req","res","etag","setHeader","fresh","headers","statusCode","end","result","type","generateEtags","poweredByHeader","options","isResSent","payload","isDynamic","toUnchunkedString","generateETag","undefined","resultContentType","contentType","getHeader","Buffer","byteLength","method","pipe"],"mappings":"AAAA;;;;+BAaSA,sBAAoB;;;eAApBA,kBAAoB,qBAAA;;;QAEbC,gBAAgB,GAAhBA,gBAAgB;QAwBVC,gBAAgB,GAAhBA,gBAAgB;AArCZ,IAAA,MAAwB,WAAxB,wBAAwB,CAAA;AACrB,IAAA,KAAa,WAAb,aAAa,CAAA;AACxB,IAAA,MAA0B,kCAA1B,0BAA0B,EAAA;AAEP,IAAA,kBAAsB,WAAtB,sBAAsB,CAAA;;;;;;AASpD,SAASD,gBAAgB,CAC9BE,GAAoB,EACpBC,GAAmB,EACnBC,IAAwB,EACf;IACT,IAAIA,IAAI,EAAE;QACR;;;;;OAKG,CACHD,GAAG,CAACE,SAAS,CAAC,MAAM,EAAED,IAAI,CAAC;KAC5B;IAED,IAAIE,CAAAA,GAAAA,MAAK,AAAuB,CAAA,QAAvB,CAACJ,GAAG,CAACK,OAAO,EAAE;QAAEH,IAAI;KAAE,CAAC,EAAE;QAChCD,GAAG,CAACK,UAAU,GAAG,GAAG;QACpBL,GAAG,CAACM,GAAG,EAAE;QACT,OAAO,IAAI,CAAA;KACZ;IAED,OAAO,KAAK,CAAA;CACb;AAEM,eAAeR,gBAAgB,CAAC,EACrCC,GAAG,CAAA,EACHC,GAAG,CAAA,EACHO,MAAM,CAAA,EACNC,IAAI,CAAA,EACJC,aAAa,CAAA,EACbC,eAAe,CAAA,EACfC,OAAO,CAAA,EASR,EAAiB;IAChB,IAAIC,CAAAA,GAAAA,MAAS,AAAK,CAAA,UAAL,CAACZ,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,MAAMW,OAAO,GAAGN,MAAM,CAACO,SAAS,EAAE,GAAG,IAAI,GAAG,MAAMP,MAAM,CAACQ,iBAAiB,EAAE;IAE5E,IAAIF,OAAO,EAAE;QACX,MAAMZ,IAAI,GAAGQ,aAAa,GAAGO,CAAAA,GAAAA,KAAY,AAAS,CAAA,aAAT,CAACH,OAAO,CAAC,GAAGI,SAAS;QAC9D,IAAIpB,gBAAgB,CAACE,GAAG,EAAEC,GAAG,EAAEC,IAAI,CAAC,EAAE;YACpC,OAAM;SACP;KACF;IAED,MAAMiB,iBAAiB,GAAGX,MAAM,CAACY,WAAW,EAAE;IAE9C,IAAI,CAACnB,GAAG,CAACoB,SAAS,CAAC,cAAc,CAAC,EAAE;QAClCpB,GAAG,CAACE,SAAS,CACX,cAAc,EACdgB,iBAAiB,GACbA,iBAAiB,GACjBV,IAAI,KAAK,KAAK,GACd,0BAA0B,GAC1BA,IAAI,KAAK,MAAM,GACf,kBAAkB,GAClB,0BAA0B,CAC/B;KACF;IAED,IAAIK,OAAO,EAAE;QACXb,GAAG,CAACE,SAAS,CAAC,gBAAgB,EAAEmB,MAAM,CAACC,UAAU,CAACT,OAAO,CAAC,CAAC;KAC5D;IAED,IAAIF,OAAO,IAAI,IAAI,EAAE;QACnBf,CAAAA,GAAAA,kBAAoB,AAAc,CAAA,qBAAd,CAACI,GAAG,EAAEW,OAAO,CAAC;KACnC;IAED,IAAIZ,GAAG,CAACwB,MAAM,KAAK,MAAM,EAAE;QACzBvB,GAAG,CAACM,GAAG,CAAC,IAAI,CAAC;KACd,MAAM,IAAIO,OAAO,EAAE;QAClBb,GAAG,CAACM,GAAG,CAACO,OAAO,CAAC;KACjB,MAAM;QACL,MAAMN,MAAM,CAACiB,IAAI,CAACxB,GAAG,CAAC;KACvB;CACF"}

View File

@@ -0,0 +1,5 @@
/// <reference types="node" />
import type { ServerResponse } from 'http';
import type { BaseNextResponse } from '../base-http';
import type { PayloadOptions } from './index';
export declare function setRevalidateHeaders(res: ServerResponse | BaseNextResponse, options: PayloadOptions): void;

View File

@@ -0,0 +1,21 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.setRevalidateHeaders = setRevalidateHeaders;
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":"AAAA;;;;QAIgBA,oBAAoB,GAApBA,oBAAoB;AAA7B,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"}