Function: safeJsonParse()
safeJsonParse<
T>(json:string,validator: (data:unknown) =>data is T):SafeJsonResult<T>
Defined in: shared/utils/jsonSafety.ts:218
Parses a JSON string and validates the resulting value with a type guard.
Type Parametersβ
Tβ
T extends JsonValue
Validated shape returned on success.
Parametersβ
jsonβ
string
Raw JSON string to parse.
validatorβ
(data: unknown) => data is T
Custom type guard ensuring the parsed value satisfies T.
Returnsβ
Structured result containing either the parsed value or a message.
Remarksβ
Any failureβsyntactic or semanticβbecomes a structured error message inside the returned SafeJsonResult object, so callers never need try/catch for parsing.
Exampleβ
import { logger } from "@app/services/logger";
const result = safeJsonParse(jsonString, (data): data is User => {
return (
typeof data === "object" &&
data !== null &&
typeof (data as User).id === "string" &&
typeof (data as User).name === "string"
);
});
if (result.success && result.data) {
logger.info("Parsed user", { name: result.data.name });
} else {
logger.error("Failed to parse user", result.error);
}