valia
Version:
A runtime data validator in TypeScript with advanced type inference, built-in validation functions, and seamless integration for server and client environments.
13 lines (9 loc) • 535 B
text/typescript
import type { SetableCriteria, MountedCriteria, GuardedCriteria, Format } from "./formats";
import { Schema } from "./schema";
export type SchemaInfer<T> = T extends Schema<infer U> ? GuardedCriteria<MountedCriteria<U>> : never;
export type SchemaInstance<T extends SetableCriteria = SetableCriteria> = InstanceType<typeof Schema<T>>;
export type SchemaParameters<T extends SetableCriteria = SetableCriteria> = ConstructorParameters<typeof Schema<T>>;
export interface SchemaPlugin {
formats: Format[];
[key: PropertyKey]: any;
}