setCookie
uses tcmts.server.requestNow, which uses tcmts.server.callNow, which uses #tcm/host (call)
Send a cookie with the answer: HttpOnly and SameSite=Lax unless opts says, for the app's base path.
import { requestNow } from "#codebase/tcmts/server"; import type { CookieOptions } from "#codebase/tcmts/server"; export function setCookie(name: string, value: string, opts: CookieOptions = {}): void { const c = requestNow("setCookie()"); if (!/^[\w!#$%&'*+.^`|~-]+$/.test(name)) throw new Error(`invalid cookie name '${name}'`); const parts = [ `${name}=${encodeURIComponent(value)}`, `Path=${opts.path ?? c.cookiePath ?? "/"}`, `SameSite=${opts.sameSite ?? "Lax"}`, ]; if (opts.maxAge !== undefined) parts.push(`Max-Age=${Math.floor(opts.maxAge)}`); if (opts.httpOnly ?? true) parts.push("HttpOnly"); if (opts.secure ?? c.secure) parts.push("Secure"); c.setCookies.push(parts.join("; ")); }