UNPKG

nitropage

Version:

A free and open source, extensible visual page builder based on SolidStart.

31 lines (27 loc) 822 B
import { json, RouterResponseInit } from "@solidjs/router"; import { getRequestEvent } from "solid-js/web"; export const error = <const T extends { message: string; status?: number }>( error: T, init: RouterResponseInit = { revalidate: "$$$nope" }, ) => { const status = error.status ?? 500; // TODO: Remove once statusText has been added here: // https://github.com/solidjs/solid-start/blob/f4052b2532b54ba09b74f566f6502e0ae522a255/packages/start/src/runtime/server-handler.ts#L230 const event = getRequestEvent(); if (event) { event.response.statusText = error.message; } return json( { error: { status, ...error, } as T["status"] extends number ? T : T & { status: 500 }, }, { ...init, status, statusText: error.message, }, ); };