parse
Runtime-safe validation helpers returning tagged results. safeJsonParse decodes JSON text to unknown before applying a guard.
import { safeJsonParse, safeParse, safeParseWith, predicateToRefine, and, typedStruct, isString, isNumber } from 'is-kit';const parseResult1 = safeParse(isString, 'ok');if (parseResult1.valid) {parseResult1.value; // string}const isEven = predicateToRefine<number>((num) => num % 2 === 0);const isEvenNumber = and(isNumber, isEven);const parseEven = safeParseWith(isEvenNumber);const parseResult2 = parseEven(4); // { valid: true, value: 4 }type User = { id: string; name: string };const isUser = typedStruct<User>()({ id: isString, name: isString });const userResult = safeJsonParse('{"id":"1","name":"Ada"}', isUser);// JSON is decoded to unknown, then validated without coercion.