@sigiljs/sigil
Version:
TypeScript-first Node.js HTTP framework offering schema-driven routing, modifier-based middleware, plugin extensibility, and flexible response templating
32 lines (31 loc) • 867 B
JavaScript
import { jsonStringify as r } from "../../utils/safe-json.mjs";
import t from "../../responses/sigil-response.mjs";
const i = (e) => {
if (e instanceof Error)
return {
content: r(
{
error: e.name ?? "Unknown error",
content: e.message ?? "Unknown error occurred"
},
{ throw: !0 }
),
code: e.code ?? 500,
headers: { "content-type": "application/json", ...e.headers.link }
};
let n = e instanceof t ? e.headers.link : {};
return (!Buffer.isBuffer(e) && Object.keys(n).length === 0 || !("content-type" in n)) && (n = { ...n, "content-type": "application/json" }), {
content: Buffer.isBuffer(e) ? e : r(
{
error: null,
content: e.content ?? e
},
{ throw: !0 }
),
headers: n,
code: e?.code ?? 200
};
};
export {
i as defaultTemplate
};