normul
Version:
Normul is a tiny TypeScript/JavaScript library for data normalization and transformation
20 lines (19 loc) • 1.58 kB
TypeScript
import { AnySchema, ArraySchema, BooleanSchema, DiscriminatedUnionSchema, LiteralSchema, NullSchema, NumberSchema, ObjectSchema, RecordSchema, Schema, StringSchema, TupleSchema, TypeSchema, UndefinedSchema, UnionSchema, UnknownSchema, type ExtractShape, type Shape } from './schemas/index.js';
export declare const any: AnySchema;
export declare function array<T extends [Schema, ...Schema[]]>(...schemas: T): ArraySchema<T>;
export declare const boolean: BooleanSchema;
export declare function discriminatedUnion<T extends [ObjectSchema<Shape>, ...ObjectSchema<Shape>[]], D extends Extract<keyof ExtractShape<T[number]>, string>>(discriminator: D, ...schemas: T): DiscriminatedUnionSchema<T, D>;
export declare function literal<T extends string | number | boolean>(value: T): LiteralSchema<T>;
export declare const nullValue: NullSchema;
export declare const number: NumberSchema;
export declare function object<T extends Shape>(shape: T): ObjectSchema<T>;
export declare function record<V>(valueSchema: Schema<V>): RecordSchema<string, V>;
export declare function record<K extends string | number, V>(keySchema: Schema<K>, valueSchema: Schema<V>): RecordSchema<K, V>;
export declare const string: StringSchema;
export declare function tuple<T extends unknown[]>(...schemas: {
[K in keyof T]: Schema<T[K]>;
}): TupleSchema<T>;
export declare function type<T>(): TypeSchema<T>;
export declare const undefinedValue: UndefinedSchema;
export declare function union<T extends [Schema, ...Schema[]]>(...schemas: T): UnionSchema<T>;
export declare const unknown: UnknownSchema;