import { Schema, type ValidationResult, type Validator, type ValidatorContext, } from "../validation.ts"; export class NullableSchema extends Schema { declare readonly ["_lex"]: { output: T | null }; constructor(readonly schema: Validator) { super(); } validateInContext( input: unknown, ctx: ValidatorContext, ): ValidationResult { if (input === null) { return ctx.success(null); } return ctx.validate(input, this.schema); } }