sveltekit-proxy
v1.0.3
Published
Proxy helper for SvelteKit, use inside the server hooks.
Downloads
15
Maintainers
Readme
SvelteKit Proxy
A lightweight proxy utility for SvelteKit applications.
Since the built-in Vite server proxy only works in development mode,
this package provides a simple way to proxy requests in production using SvelteKit's hooks.server.ts.
How to
Install
npm install sveltekit-proxy # or yarn add sveltekit-proxy # or bun add sveltekit-proxyImport
import { handleProxy } from 'sveltekit-proxy';Use it
// hooks.server.ts const apiPath = '/api' export const handle: Handle = async ({ event, resolve }) => { if (event.url.pathname.startsWith(apiPath)) { return handleProxy({ target: 'https://example.com', rewrite: (path) => path.replace(apiPath, ''), origin: 'https://your-app-domain.com', onRequest: ({ request }) => { // Optionally modify the request before forwarding const headers = new Headers(request.headers); headers.set('x-proxied-by', 'sveltekit-proxy'); return new Request(request, { headers }); }, onResponse: ({ response, duration }) => { // Optionally log response info console.log(`[Proxy] ${response.status} in ${duration.toFixed(2)}ms`); }, onError: ({ error, request }) => { console.error('[Proxy Error]', error, request.url); }, })({ event, resolve }); } return resolve(event); };Options
| Name | Description | Required | Default |
|---|---|---|---|
| target | Target proxy URL | Yes | |
| origin | Set to avoid the abused proxy, only permitted if the origin is valid. Default undefined which will allow from all | No | undefined |
| rewrite | Rewrite the path | No | undefined |
| fetch | Custom fetch function | No | undefined |
| onRequest | Callback to modify the outgoing Request before sending. Must return a Request. | No | undefined |
| onResponse | Callback after receiving the response. Useful for logging or metrics. | No | undefined |
| onError | Callback when fetch fails or throws an error. | No | undefined |
🪶 Notes
- The function returns a valid SvelteKit Handle — you can compose it inside your main handle chain.
- Request objects are immutable; to modify headers or body, return a new Request instance inside onRequest.
🧱 License
MIT © 2025 — Crafted for SvelteKit developers.
