UNPKG

astro

Version:

Astro is a modern site builder with web best practices, performance, and DX front-of-mind.

30 lines (29 loc) • 1.24 kB
import * as z from "zod/v4"; export const SessionDriverConfigSchema = z.object({ config: z.record(z.string(), z.any()).optional(), entrypoint: z.union([z.string(), z.instanceof(URL)]) }); const SessionObjectSchema = z.object({ driver: z.union([z.string().superRefine(() => { console.warn(`Using deprecated \`session.driver\` string signature. Learn how to migrate: https://docs.astro.build/en/guides/upgrade-to/v6/#deprecated-session-driver-string-signature`); }), SessionDriverConfigSchema]).optional(), options: z.record(z.string(), z.any()).optional(), cookie: z.union([z.object({ name: z.string().optional(), domain: z.string().optional(), path: z.string().optional(), maxAge: z.number().optional(), sameSite: z.union([z.enum([ "strict", "lax", "none" ]), z.boolean()]).optional(), secure: z.boolean().optional() }), z.string().transform((name) => ({ name }))]).optional(), ttl: z.number().optional() }); // `session: false` opts out of session support entirely so the session // runtime and any adapter-provided driver can be tree-shaken from the // SSR bundle. // See packages/astro/src/core/session/provider-disabled.ts. export const SessionSchema = z.union([z.literal(false), SessionObjectSchema]);