Skip to content

x-to-zod / AbstractParser

Abstract Class: AbstractParser<S, TypeKind> ​

Defined in: src/Parser/AbstractParser.ts:30

Abstract base class implementing the template method for schema parsing.

Generic and not specific to any schema format — the concrete schema type is parameterised via S. JSON Schema parsers use S = SchemaNode, but any other object-based schema format can extend this class directly.

The generic parameter order mirrors ZodBuilder<Z, T = Z['def']['type']>: the primary schema type comes first and the TypeKind discriminator is inferred from it when S has a string type property.

Type Parameters ​

S ​

S extends object = object

TypeKind ​

TypeKind extends string = InferTypeKind<S>

Implements ​

Constructors ​

Constructor ​

ts
new AbstractParser<S, TypeKind>(schema, refs): AbstractParser<S, TypeKind>;

Defined in: src/Parser/AbstractParser.ts:39

Parameters ​

schema ​

S

refs ​

Context

Returns ​

AbstractParser<S, TypeKind>

Properties ​

postProcessors ​

ts
protected postProcessors: PostProcessor[];

Defined in: src/Parser/AbstractParser.ts:37


refs ​

ts
protected readonly refs: Context;

Defined in: src/Parser/AbstractParser.ts:41


schema ​

ts
protected readonly schema: S;

Defined in: src/Parser/AbstractParser.ts:40


transformers ​

ts
protected transformers: SchemaTransformer[];

Defined in: src/Parser/AbstractParser.ts:36


typeKind ​

ts
abstract readonly typeKind: TypeKind;

Defined in: src/Parser/AbstractParser.ts:34

Type discriminator string. Used by the registry to identify which parser handles a given schema node, and surfaced in error messages.

Examples: 'string', 'object', 'anyOf', 'custom-datetime'

Implementation of ​

Parser.typeKind

Methods ​

applyMetadata() ​

ts
protected applyMetadata(builder, _schema): Builder;

Defined in: src/Parser/AbstractParser.ts:126

Parameters ​

builder ​

Builder

_schema ​

unknown

Returns ​

Builder


applyPostProcessors() ​

ts
protected applyPostProcessors(builder, schema): Builder;

Defined in: src/Parser/AbstractParser.ts:104

Parameters ​

builder ​

Builder

schema ​

unknown

Returns ​

Builder


applyTransformers() ​

ts
protected applyTransformers(schema): unknown;

Defined in: src/Parser/AbstractParser.ts:93

Parameters ​

schema ​

unknown

Returns ​

unknown


createChildContext() ​

ts
protected createChildContext(...pathSegments): Context;

Defined in: src/Parser/AbstractParser.ts:242

Parameters ​

pathSegments ​

...(string | number)[]

Returns ​

Context


filterPostProcessors() ​

ts
protected filterPostProcessors(configs?, path?): PostProcessor[];

Defined in: src/Parser/AbstractParser.ts:181

Parameters ​

configs? ​

( | PostProcessorConfig | PostProcessor)[] = []

path? ​

(string | number)[] = ...

Returns ​

PostProcessor[]


filterTransformers() ​

ts
protected filterTransformers(transformers?, path?): SchemaTransformer[];

Defined in: src/Parser/AbstractParser.ts:172

Parameters ​

transformers? ​

SchemaTransformer & Partial<ProcessorConfig>[] = []

path? ​

(string | number)[] = ...

Returns ​

SchemaTransformer[]


isProcessorApplicable() ​

ts
protected isProcessorApplicable(processor, path?): boolean;

Defined in: src/Parser/AbstractParser.ts:201

Parameters ​

processor ​

ProcessorConfig

path? ​

(string | number)[] = ...

Returns ​

boolean


matchesPath() ​

ts
protected matchesPath(pattern, path?): boolean;

Defined in: src/Parser/AbstractParser.ts:232

Parameters ​

pattern ​

string

path? ​

(string | number)[] = ...

Returns ​

boolean


parse() ​

ts
parse(): Builder;

Defined in: src/Parser/AbstractParser.ts:76

Parse the schema node this parser was constructed with and return a Builder that emits valid Zod code when .text() is called.

Returns ​

Builder

Implementation of ​

Parser.parse


parseChild() ​

ts
protected parseChild(schema, ...pathSegments): Builder;

Defined in: src/Parser/AbstractParser.ts:262

Parameters ​

schema ​

unknown

pathSegments ​

...(string | number)[]

Returns ​

Builder


parseImpl() ​

ts
abstract protected parseImpl(schema): Builder;

Defined in: src/Parser/AbstractParser.ts:91

Parameters ​

schema ​

S

Returns ​

Builder


parseSchema() ​

ts
static parseSchema(
   schema, 
   refs, 
   blockMeta?
): Builder;

Defined in: src/Parser/AbstractParser.ts:63

Parse a child schema. This delegates to the registered parseSchema function. Used by parser classes to recursively parse nested schemas.

Parameters ​

schema ​

unknown

refs ​

Context

blockMeta? ​

boolean

Returns ​

Builder


setParseSchema() ​

ts
static setParseSchema(fn): void;

Defined in: src/Parser/AbstractParser.ts:53

Set the parseSchema function reference to avoid circular imports. This should be called once during module initialization.

Parameters ​

fn ​

(schema, refs, blockMeta?) => Builder

Returns ​

void

Released under the ISC License.