UNPKG

fortify-schema

Version:

TypeScript interface-like schema validation system that's easier to use than Zod

51 lines (41 loc) 1.07 kB
import { MultiConditionalBuilder } from "./MultiConditionalBuilder"; /** * Builder for multi-field "then" part */ export class MultiConditionalThen { constructor( private builder: MultiConditionalBuilder, private conditions: Record<string, any> ) {} then(schema: any): MultiConditionalElse { return new MultiConditionalElse(schema, null); } } /** * Builder for multi-field "else" part */ export class MultiConditionalElse { constructor( private thenSchema: any, private elseSchema: any ) {} else(schema: any): any { return { __multiConditional: true, then: this.thenSchema, else: schema }; } } /** * Custom validator builder */ export class CustomValidator { constructor(private validator: (data: any) => { valid: true } | { error: string }) {} build(): any { return { __customValidator: true, validator: this.validator }; } }