astro
Version:
Astro is a modern site builder with web best practices, performance, and DX front-of-mind.
33 lines (32 loc) • 1.05 kB
JavaScript
import * as z from "zod/v4";
const SessionDriverConfigSchema = z.object({
config: z.record(z.string(), z.any()).optional(),
entrypoint: z.union([z.string(), z.instanceof(URL)])
});
const SessionSchema = 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()
});
export {
SessionDriverConfigSchema,
SessionSchema
};