파일 위치
사용가능한 hook
handle, handleFetch, handleError
client와 server error hook이 다른 부분이 있음.
server
export const handle1: Handle = async ({ event, resolve }) => {
const { url, locals, cookies, isDataRequest } = event;
// if (url.pathname === '/products') {
// return new Response('custom response');
// }
if (!isDataRequest && url.pathname.startsWith('/api')) {
const token = cookies.get('token');
locals.user = token ? { name: 'John', id: 1 } : undefined;
} else if (url.pathname.startsWith('/hook')) {
return new Response('custom response');
}
const response = await resolve(event);
// response.headers.set('x-custom-header', 'value');
return response;
};
export const handle = sequence(handle1);
export const handleFetch: HandleFetch = async ({ request, fetch, event }) => {
if (request.url.startsWith('http://dummyjson.com')) {
const cookie = event.request.headers.get('cookie');
if (cookie) {
request.headers.set('cookie', cookie);
}
}
return fetch(request);
};
export const handleError: HandleServerError = async ({ error, event }) => {
console.log('this is not responding');
console.log(error, event);
return {
message: error.message,
code: 'error code 훅'
};
};
server
import type { HandleClientError } from '@sveltejs/kit';
export const handleError: HandleClientError = async ({ error, event }) => {
console.log('this is not responding 클라이언트');
console.log(error, event);
return {
message: error.message,
code: 'error code 훅'
};
};
hook 여러개 사용시 sequence 사용
export const handle = sequence(handle1);
이용가능한 parameter 값
{event, resolve, fetch, request, error}
const { url, locals, cookies, isDataRequest } = event;