veffect
Version:
powerful TypeScript validation library built on the robust foundation of Effect combining exceptional type safety, high performance, and developer experience. Taking inspiration from Effect's functional principles, VEffect delivers a balanced approach tha
21 lines (20 loc) • 1.08 kB
TypeScript
import { Schema, RefinableSchema, TransformableSchema, DefaultableSchema, NullableSchema } from '../types';
/**
* Record schema interface
*/
export interface RecordSchema<K extends string | number | symbol, V> extends Schema<Record<K, V>>, RefinableSchema<Record<K, V>, RecordSchema<K, V>>, TransformableSchema<Record<K, V>, RecordSchema<K, V>>, DefaultableSchema<Record<K, V>, RecordSchema<K, V>>, NullableSchema<Record<K, V>, RecordSchema<K, V>> {
readonly _tag: 'RecordSchema';
readonly keySchema: Schema<K>;
readonly valueSchema: Schema<V>;
readonly minSize: (min: number, message?: string) => RecordSchema<K, V>;
readonly maxSize: (max: number, message?: string) => RecordSchema<K, V>;
readonly exactSize: (size: number, message?: string) => RecordSchema<K, V>;
}
/**
* Create a record schema
*/
export declare function record<K extends string, V>(keySchema: Schema<K>, valueSchema: Schema<V>): RecordSchema<K, V>;
/**
* Create a record schema with string keys
*/
export declare function map<V>(valueSchema: Schema<V>): RecordSchema<string, V>;