securityos/node_modules/next/dist/esm/client/components/headers.js

46 lines
2.1 KiB
JavaScript

import { RequestCookiesAdapter } from "../../server/web/spec-extension/adapters/request-cookies";
import { HeadersAdapter } from "../../server/web/spec-extension/adapters/headers";
import { RequestCookies } from "../../server/web/spec-extension/cookies";
import { requestAsyncStorage } from "./request-async-storage.external";
import { actionAsyncStorage } from "./action-async-storage.external";
import { staticGenerationBailout } from "./static-generation-bailout";
import { DraftMode } from "./draft-mode";
export function headers() {
if (staticGenerationBailout("headers", {
link: "https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering"
})) {
return HeadersAdapter.seal(new Headers({}));
}
const requestStore = requestAsyncStorage.getStore();
if (!requestStore) {
throw new Error("Invariant: headers() expects to have requestAsyncStorage, none available.");
}
return requestStore.headers;
}
export function cookies() {
if (staticGenerationBailout("cookies", {
link: "https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering"
})) {
return RequestCookiesAdapter.seal(new RequestCookies(new Headers({})));
}
const requestStore = requestAsyncStorage.getStore();
if (!requestStore) {
throw new Error("Invariant: cookies() expects to have requestAsyncStorage, none available.");
}
const asyncActionStore = actionAsyncStorage.getStore();
if (asyncActionStore && (asyncActionStore.isAction || asyncActionStore.isAppRoute)) {
// We can't conditionally return different types here based on the context.
// To avoid confusion, we always return the readonly type here.
return requestStore.mutableCookies;
}
return requestStore.cookies;
}
export function draftMode() {
const requestStore = requestAsyncStorage.getStore();
if (!requestStore) {
throw new Error("Invariant: draftMode() expects to have requestAsyncStorage, none available.");
}
return new DraftMode(requestStore.draftMode);
}
//# sourceMappingURL=headers.js.map