Referensi API
Semua diimpor dari "bosia":
import { cn, sequence, error, redirect, fail } from "bosia";import type { RequestEvent, LoadEvent, Handle, Cookies } from "bosia";Fungsi
Section titled “Fungsi”cn(…inputs)
Section titled “cn(…inputs)”Gabungkan class Tailwind CSS dengan aman. Mengombinasikan clsx dan tailwind-merge.
cn("px-4 py-2", "px-6") // → "py-2 px-6"cn("text-red-500", isActive && "text-blue-500")sequence(…handlers)
Section titled “sequence(…handlers)”Susun beberapa middleware Handle menjadi satu handler tunggal:
export const handle = sequence(auth, logging, rateLimit);Handler dieksekusi dari kiri ke kanan. resolve pada setiap handler memanggil handler berikutnya.
error(status, message)
Section titled “error(status, message)”Lempar error HTTP dari fungsi load(). Merender +error.svelte terdekat.
error(404, "Post not found"); // never returnsredirect(status, location)
Section titled “redirect(status, location)”Redirect dari fungsi load() atau form action.
redirect(303, "/login"); // never returnsfail(status, data)
Section titled “fail(status, data)”Kembalikan kegagalan validasi dari form action. Dikembalikan, bukan dilempar.
return fail(400, { email, errors: { email: "Required" } });RequestEvent
Section titled “RequestEvent”Tersedia di rute API (+server.ts) dan form actions.
type RequestEvent = { request: Request; url: URL; locals: Record<string, any>; params: Record<string, string>; cookies: Cookies;};LoadEvent
Section titled “LoadEvent”Tersedia di fungsi load() dalam +page.server.ts dan +layout.server.ts.
type LoadEvent = { url: URL; params: Record<string, string>; locals: Record<string, any>; cookies: Cookies; fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>; parent: () => Promise<Record<string, any>>; metadata: Record<string, any> | null;};MetadataEvent
Section titled “MetadataEvent”Tersedia di fungsi metadata() dalam +page.server.ts.
type MetadataEvent = { params: Record<string, string>; url: URL; locals: Record<string, any>; cookies: Cookies; fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;};Metadata
Section titled “Metadata”Tipe kembalian untuk fungsi metadata().
type Metadata = { title?: string; description?: string; meta?: Array<{ name?: string; property?: string; content: string }>; data?: Record<string, any>;};Handle
Section titled “Handle”Tipe fungsi middleware untuk hooks.server.ts.
type Handle = (input: { event: RequestEvent; resolve: ResolveFunction;}) => MaybePromise<Response>;Cookies
Section titled “Cookies”Antarmuka baca/tulis cookie yang tersedia di event.cookies.
interface Cookies { get(name: string): string | undefined; getAll(): Record<string, string>; set(name: string, value: string, options?: CookieOptions): void; delete(name: string, options?: Pick<CookieOptions, "path" | "domain">): void;}CookieOptions
Section titled “CookieOptions”interface CookieOptions { path?: string; domain?: string; maxAge?: number; // seconds expires?: Date; httpOnly?: boolean; secure?: boolean; sameSite?: "Strict" | "Lax" | "None";}HttpError
Section titled “HttpError”Kelas error yang dilempar oleh error().
class HttpError extends Error { status: number;}Redirect
Section titled “Redirect”Kelas redirect yang dilempar oleh redirect().
class Redirect { status: number; location: string;}ActionFailure<T>
Section titled “ActionFailure<T>”Dikembalikan oleh fail() dalam form actions.
class ActionFailure<T extends Record<string, any>> { status: number; data: T;}CsrfConfig
Section titled “CsrfConfig”interface CsrfConfig { checkOrigin: boolean; allowedOrigins?: string[];}CorsConfig
Section titled “CorsConfig”interface CorsConfig { allowedOrigins: string[]; allowedMethods?: string[]; allowedHeaders?: string[]; exposedHeaders?: string[]; credentials?: boolean; maxAge?: number;}Pola Import
Section titled “Pola Import”| Import | Sumber |
|---|---|
import { cn, sequence } from "bosia" | Paket framework |
import { cn } from "$lib/utils" | Utilitas proyek |
import { VAR } from "$env" | Variabel lingkungan |
import type { PageData } from "./$types" | Tipe yang digenerate |