SvelteKit Setup

Set up SvelteKit server and client hooks for request-scoped capture and unexpected error reporting.

Use @errova/sdk-sveltekit when you want SvelteKit-aware wrappers for hooks.server and hooks.client. The dedicated entrypoints follow the framework’s environment boundaries and keep initialization explicit.

Bash
npm install @errova/sdk-sveltekit

1. Add Server Capture in hooks.server

TypeScript
import {
init,
withSvelteKitHandle,
withSvelteKitHandleError,
} from "@errova/sdk-sveltekit/server"
let initialized = false
function ensureServerSDKInitialized() {
if (initialized) {
return
}
init({
dsn: process.env.ERROVA_DSN ?? "",
dsnSecret: process.env.ERROVA_DSN_SECRET,
environment: process.env.NODE_ENV,
release: process.env.APP_VERSION,
})
initialized = true
}
export const handle = withSvelteKitHandle(async ({ event, resolve }) => {
ensureServerSDKInitialized()
return resolve(event)
})
export const handleError = withSvelteKitHandleError(({ error }) => {
ensureServerSDKInitialized()
return {
message: error instanceof Error ? error.message : "Server error captured",
}
})

2. Add Browser Capture in hooks.client

TypeScript
import { init, withSvelteKitClientHandleError } from "@errova/sdk-sveltekit/client"
let initialized = false
function ensureClientSDKInitialized() {
if (initialized) {
return
}
const dsn = import.meta.env.PUBLIC_ERROVA_DSN ?? ""
if (!dsn) {
return
}
init({
dsn,
environment: import.meta.env.MODE,
release: import.meta.env.PUBLIC_APP_VERSION,
})
initialized = true
}
export function initClient() {
ensureClientSDKInitialized()
}
export const handleError = withSvelteKitClientHandleError(({ error }) => {
ensureClientSDKInitialized()
return {
message: error instanceof Error ? error.message : "Client error captured",
}
})

Important Notes

  • Use @errova/sdk-sveltekit/server in server hooks and server-only utilities.
  • Use @errova/sdk-sveltekit/client in browser hooks and browser-only utilities.
  • Initialize each runtime once and keep signed secrets out of browser code.
  • This package is beta tier, so test both server and client hook flows before rollout.