UNPKG

2.81 kBTypeScriptView Raw
1import type { IssueData, ZodErrorMap, ZodIssue } from "../ZodError";
2import type { ZodParsedType } from "./util";
3export declare const makeIssue: (params: {
4 data: any;
5 path: (string | number)[];
6 errorMaps: ZodErrorMap[];
7 issueData: IssueData;
8}) => ZodIssue;
9export declare type ParseParams = {
10 path: (string | number)[];
11 errorMap: ZodErrorMap;
12 async: boolean;
13};
14export declare type ParsePathComponent = string | number;
15export declare type ParsePath = ParsePathComponent[];
16export declare const EMPTY_PATH: ParsePath;
17export interface ParseContext {
18 readonly common: {
19 readonly issues: ZodIssue[];
20 readonly contextualErrorMap?: ZodErrorMap;
21 readonly async: boolean;
22 };
23 readonly path: ParsePath;
24 readonly schemaErrorMap?: ZodErrorMap;
25 readonly parent: ParseContext | null;
26 readonly data: any;
27 readonly parsedType: ZodParsedType;
28}
29export declare type ParseInput = {
30 data: any;
31 path: (string | number)[];
32 parent: ParseContext;
33};
34export declare function addIssueToContext(ctx: ParseContext, issueData: IssueData): void;
35export declare type ObjectPair = {
36 key: SyncParseReturnType<any>;
37 value: SyncParseReturnType<any>;
38};
39export declare class ParseStatus {
40 value: "aborted" | "dirty" | "valid";
41 dirty(): void;
42 abort(): void;
43 static mergeArray(status: ParseStatus, results: SyncParseReturnType<any>[]): SyncParseReturnType;
44 static mergeObjectAsync(status: ParseStatus, pairs: {
45 key: ParseReturnType<any>;
46 value: ParseReturnType<any>;
47 }[]): Promise<SyncParseReturnType<any>>;
48 static mergeObjectSync(status: ParseStatus, pairs: {
49 key: SyncParseReturnType<any>;
50 value: SyncParseReturnType<any>;
51 alwaysSet?: boolean;
52 }[]): SyncParseReturnType;
53}
54export interface ParseResult {
55 status: "aborted" | "dirty" | "valid";
56 data: any;
57}
58export declare type INVALID = {
59 status: "aborted";
60};
61export declare const INVALID: INVALID;
62export declare type DIRTY<T> = {
63 status: "dirty";
64 value: T;
65};
66export declare const DIRTY: <T>(value: T) => DIRTY<T>;
67export declare type OK<T> = {
68 status: "valid";
69 value: T;
70};
71export declare const OK: <T>(value: T) => OK<T>;
72export declare type SyncParseReturnType<T = any> = OK<T> | DIRTY<T> | INVALID;
73export declare type AsyncParseReturnType<T> = Promise<SyncParseReturnType<T>>;
74export declare type ParseReturnType<T> = SyncParseReturnType<T> | AsyncParseReturnType<T>;
75export declare const isAborted: (x: ParseReturnType<any>) => x is INVALID;
76export declare const isDirty: <T>(x: ParseReturnType<T>) => x is OK<T> | DIRTY<T>;
77export declare const isValid: <T>(x: ParseReturnType<T>) => x is OK<T>;
78export declare const isAsync: <T>(x: ParseReturnType<T>) => x is AsyncParseReturnType<T>;