rsnext/packages/next/client/components/request-async-storage.ts
2022-09-25 11:45:00 +02:00

15 lines
457 B
TypeScript

import type { AsyncLocalStorage } from 'async_hooks'
import { Cookies } from '../../server/web/spec-extension/cookies'
export interface RequestStore {
headers: Headers
cookies: Cookies
previewData: any
}
export let requestAsyncStorage: AsyncLocalStorage<RequestStore> | RequestStore =
{} as any
if (process.env.NEXT_RUNTIME !== 'edge' && typeof window === 'undefined') {
requestAsyncStorage = new (require('async_hooks').AsyncLocalStorage)()
}