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
new AbstractParser<S, TypeKind>(schema, refs): AbstractParser<S, TypeKind>;Defined in: src/Parser/AbstractParser.ts:39
Parameters
schema
S
refs
Returns
AbstractParser<S, TypeKind>
Properties
postProcessors
protected postProcessors: PostProcessor[];Defined in: src/Parser/AbstractParser.ts:37
refs
protected readonly refs: Context;Defined in: src/Parser/AbstractParser.ts:41
schema
protected readonly schema: S;Defined in: src/Parser/AbstractParser.ts:40
transformers
protected transformers: SchemaTransformer[];Defined in: src/Parser/AbstractParser.ts:36
typeKind
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
Methods
applyMetadata()
protected applyMetadata(builder, _schema): Builder;Defined in: src/Parser/AbstractParser.ts:126
Parameters
builder
_schema
unknown
Returns
applyPostProcessors()
protected applyPostProcessors(builder, schema): Builder;Defined in: src/Parser/AbstractParser.ts:104
Parameters
builder
schema
unknown
Returns
applyTransformers()
protected applyTransformers(schema): unknown;Defined in: src/Parser/AbstractParser.ts:93
Parameters
schema
unknown
Returns
unknown
createChildContext()
protected createChildContext(...pathSegments): Context;Defined in: src/Parser/AbstractParser.ts:242
Parameters
pathSegments
...(string | number)[]
Returns
filterPostProcessors()
protected filterPostProcessors(configs?, path?): PostProcessor[];Defined in: src/Parser/AbstractParser.ts:181
Parameters
configs?
( | PostProcessorConfig | PostProcessor)[] = []
path?
(string | number)[] = ...
Returns
filterTransformers()
protected filterTransformers(transformers?, path?): SchemaTransformer[];Defined in: src/Parser/AbstractParser.ts:172
Parameters
transformers?
SchemaTransformer & Partial<ProcessorConfig>[] = []
path?
(string | number)[] = ...
Returns
isProcessorApplicable()
protected isProcessorApplicable(processor, path?): boolean;Defined in: src/Parser/AbstractParser.ts:201
Parameters
processor
path?
(string | number)[] = ...
Returns
boolean
matchesPath()
protected matchesPath(pattern, path?): boolean;Defined in: src/Parser/AbstractParser.ts:232
Parameters
pattern
string
path?
(string | number)[] = ...
Returns
boolean
parse()
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
Implementation of
parseChild()
protected parseChild(schema, ...pathSegments): Builder;Defined in: src/Parser/AbstractParser.ts:262
Parameters
schema
unknown
pathSegments
...(string | number)[]
Returns
parseImpl()
abstract protected parseImpl(schema): Builder;Defined in: src/Parser/AbstractParser.ts:91
Parameters
schema
S
Returns
parseSchema()
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
blockMeta?
boolean
Returns
setParseSchema()
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