Structure

The recommended project structure.


📂src
┣ hooks.server.ts
┗ 📂lib
  ┗ 📂kavi
    ┣ client.ts
    ┣ options.ts
    â”— server.ts
┗ 📂routes
  â”— +layout.ts

Copy the following code into your project

options.ts
import { createOptions } from "kavi" export const options = createOptions()
server.ts
import { all } from "kavi/server" import z from "zod" export const router = {} export type Router = typeof router
client.ts
import { createApiClient } from "kavi/client" import { options } from "./options" import type { Router } from "$lib/kavi/server" export const api = createApiClient<Router>(options)
layout.ts
import { initClientEvent } from "kavi/client" // important that this runs first export const load = initClientEvent
hooks.server.ts
import { createHandle } from "kavi/server" import { router } from "$lib/kavi/server" import { options } from "$lib/kavi/options" export const handle = createHandle(router, options)