parseProblemDetails
import { parseProblemDetails } from "jsr:@ende/http/unstable-problem-details";function · experimental
function parseProblemDetails<T extends ProblemDetailsExtensions = Record<string, never>>(input: unknown): ProblemDetails<T>Parses a plain JSON value into a ProblemDetails.
Returns the standard members plus any extension members as a flat object.
Standard members with invalid types are silently dropped per RFC 9457 §3.1.
Does not throw on missing fields — the RFC makes all members optional.
Extension member types provided via T are asserted at the type level only;
values are not validated at runtime.
input: unknownA JSON value to parse as problem details.
Returns
The parsed problem details.
Example: Parse from a plain object
import { parseProblemDetails } from "@ende/http/unstable-problem-details";
import { assertEquals } from "@ende/assert";
const problem = parseProblemDetails({
type: "about:blank",
status: 400,
title: "Bad Request",
balance: 30,
});
assertEquals(problem.status, 400);
assertEquals(problem.title, "Bad Request");