Ctrl K
ComunidadGuías…

docs/src/lib/api-error.ts

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
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,
  });
}