docs/src/lib/api-error.ts
Rama master · réplica de lectura del repositorio original.
export interface ApiErrorBody {
code: string;
details?: unknown;
error: string;
message: string;
resolution: string;
}
interface ApiErrorInput {
code: string;
details?: unknown;
message: string;
resolution: string;
}
export function createApiError(input: ApiErrorInput): ApiErrorBody {
return {
error: input.message,
code: input.code,
message: input.message,
resolution: input.resolution,
...(input.details === undefined ? {} : { details: input.details }),
};
}
export function jsonError(status: number, body: ApiErrorBody, headers?: HeadersInit): Response {
const responseHeaders = new Headers(headers);
responseHeaders.set("Content-Type", "application/json; charset=utf-8");
responseHeaders.set("Cache-Control", "no-store");
responseHeaders.set("X-Content-Type-Options", "nosniff");
return new Response(`${JSON.stringify(body)}\n`, {
status,
headers: responseHeaders,
});
}