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.