## Demo: cookies ### Cookies.svelte ```svelte ``` ### CookieDemo.svelte ```svelte ``` ### routes.ts ```ts import { Mochi, error, getRequestContext } from 'mochi-framework'; import type { MochiRouteValue } from 'mochi-framework'; export const routes: Record = { '/demos/cookies': Mochi.page('./src/demos/cookies/Cookies.svelte'), '/api/cookie': Mochi.api(async ({ method, request }) => { if (method !== 'POST') { error(405, 'Method Not Allowed'); } const { username, theme } = (await request.json()) as { username: string; theme: string; }; const { cookies } = getRequestContext(); cookies.set('mochi_username', username, { path: '/', maxAge: 604800 }); cookies.set('mochi_theme', theme, { path: '/', maxAge: 604800 }); return Response.json({ ok: true }); }), }; ``` ### index.ts ```ts import { Mochi, logger } from 'mochi-framework'; await Mochi.serve({ port: 3333, development: process.env.MODE === 'development', routes: { '/': Mochi.page('./src/Home.svelte'), }, }); logger.info('Server running at http://localhost:3333'); ```