UNPKG

normul

Version:

Normul is a tiny TypeScript/JavaScript library for data normalization and transformation

32 lines (31 loc) 1.34 kB
import type { Issue, ParseContext, ParseResult } from '../types.js'; export declare abstract class Schema<T = unknown> { protected modifiers: ((input: unknown, ctx: ParseContext, next: (input: unknown, ctx: ParseContext) => unknown) => unknown)[]; normalize(input: unknown): ParseResult<T>; protected abstract _normalize(input: unknown, ctx: ParseContext): T; protected invokeNormalize<U>(schema: Schema<U>, input: unknown, ctx: ParseContext): U; protected makeIssue(options: { ctx: ParseContext; } & Omit<Issue, 'path'>): void; get optional(): Schema<T | undefined>; get nullable(): Schema<T | null>; default(value: T): this; preprocess(fn: (input: unknown) => unknown): this; transform<U>(fn: (value: T) => U): Schema<U>; type<T>(): TypeSchema<T>; get any(): AnySchema; get unknown(): UnknownSchema; fallback(value: T): this; protected clone(): this; protected cloneArgs(): unknown[]; protected cloneProps(target: this): void; } export declare class TypeSchema<T> extends Schema<T> { protected inner?: Schema | undefined; constructor(inner?: Schema | undefined); protected _normalize(input: unknown, ctx: ParseContext): T; } export declare class AnySchema extends TypeSchema<any> { } export declare class UnknownSchema extends TypeSchema<unknown> { }