UNPKG

@zod/core

Version:

TypeScript-first schema declaration and validation library with static type inference

60 lines (59 loc) 2.55 kB
import * as core from "./core.js"; import * as errors from "./errors.js"; import * as util from "./util.js"; export function _parse(schema, value, _ctx) { const ctx = _ctx ? { ..._ctx, async: false } : { async: false }; const result = schema._zod.run({ value, issues: [] }, ctx); if (result instanceof Promise) { throw new core.$ZodAsyncError(); } if (result.issues.length) { const e = new (this?.Error ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))); Error.captureStackTrace(e, _parse); throw e; } return result.value; } export const parse = /* @__PURE__*/ _parse.bind({ Error: errors.$ZodError }); export function _safeParse(schema, value, _ctx) { const ctx = _ctx ? { ..._ctx, async: false } : { async: false }; const result = schema._zod.run({ value, issues: [] }, ctx); if (result instanceof Promise) { throw new core.$ZodAsyncError(); } return (result.issues.length ? { success: false, error: new (this?.Error ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))), } : { success: true, data: result.value }); } export const safeParse = /* @__PURE__*/ _safeParse.bind({ Error: errors.$ZodError }); export async function _parseAsync(schema, value, _ctx) { const ctx = _ctx ? { ..._ctx, async: true } : { async: true }; let result = schema._zod.run({ value, issues: [] }, ctx); if (result instanceof Promise) result = await result; if (result.issues.length) { const e = new (this?.Error ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))); Error.captureStackTrace(e, _parseAsync); throw e; } return result.value; } export const parseAsync = /* @__PURE__*/ _parseAsync.bind({ Error: errors.$ZodError }); export async function _safeParseAsync(schema, value, _ctx) { const ctx = _ctx ? { ..._ctx, async: true } : { async: true }; let result = schema._zod.run({ value, issues: [] }, ctx); if (result instanceof Promise) result = await result; return (result.issues.length ? { success: false, error: new (this?.Error ?? errors.$ZodError)(result.issues.map((iss) => util.finalizeIssue(iss, ctx, core.config()))), } : { success: true, data: result.value }); } export const safeParseAsync = /* @__PURE__*/ _safeParseAsync.bind({ Error: errors.$ZodError, });