@fajarnugraha37/validator
Version:
A typed façade over [AJV](https://ajv.js.org/) that brings schema builders, caching, and loader pipelines to the `nope` workspace
47 lines (44 loc) • 4.18 kB
TypeScript
import { S as SchemaRegistry, V as Validator, a as ValidatorOptions, b as SchemaCacheOptions, c as SchemaLoader, d as SchemaJsonInput, e as ValidatorBuilder } from './validator-BNjHaHXF.js';
import * as _fajarnugraha37_error from '@fajarnugraha37/error';
import { SchemaBuilder } from './schema-builder.js';
import '@fajarnugraha37/cache';
type SchemaSource<TSchemas extends SchemaRegistry = SchemaRegistry> = SchemaBuilder | TSchemas[keyof TSchemas];
type SchemaSourceMap<TSchemas extends SchemaRegistry = SchemaRegistry> = Partial<Record<keyof TSchemas, SchemaSource<TSchemas>>>;
declare const defaultValidator: Validator<SchemaRegistry>;
declare const defineSchemas: <TSchemas extends SchemaRegistry = SchemaRegistry>(schemas: SchemaSourceMap<TSchemas>) => Partial<Record<keyof TSchemas, SchemaSource<TSchemas>>>;
declare const buildSchemaMap: <TSchemas extends SchemaRegistry = SchemaRegistry>(schemas: SchemaSourceMap<TSchemas>) => Partial<TSchemas>;
declare const validateExpression: (data: unknown) => _fajarnugraha37_error.ValidationResult<any>;
declare const validateExpressionStrict: (data: unknown) => any;
declare const createValidator: (schemaKey: string, schema: any) => {
validate: (data: unknown) => _fajarnugraha37_error.ValidationResult<any>;
validateAsync: (data: unknown) => Promise<_fajarnugraha37_error.ValidationResult<any>>;
validateStrict: (data: unknown) => any;
validateStrictAsync: (data: unknown) => Promise<any>;
validateMany: (items: unknown[]) => _fajarnugraha37_error.ValidationResult<any[]>;
validateManyAsync: (items: unknown[]) => Promise<_fajarnugraha37_error.ValidationResult<any[]>>;
};
interface ValidatorFactoryConfig<TSchemas extends SchemaRegistry = SchemaRegistry> {
options?: ValidatorOptions;
cache?: SchemaCacheOptions<TSchemas>;
loader?: SchemaLoader<TSchemas>;
}
declare const createValidatorFromJSON: <TSchemas extends SchemaRegistry = SchemaRegistry>(schemaJson: SchemaJsonInput<TSchemas>, config?: ValidatorFactoryConfig<TSchemas>) => Validator<TSchemas>;
declare const createValidatorFromBuilders: <TSchemas extends SchemaRegistry = SchemaRegistry>(schemas: SchemaSourceMap<TSchemas>, config?: ValidatorFactoryConfig<TSchemas>) => Validator<TSchemas>;
declare const validatorBuilder: <TSchemas extends SchemaRegistry = SchemaRegistry>() => ValidatorBuilder<TSchemas>;
declare const createTypeValidatorFromJSON: <TSchemas extends SchemaRegistry = SchemaRegistry, K extends keyof TSchemas = keyof TSchemas>(schemaKey: K, schemaJson: SchemaJsonInput<TSchemas>, config?: ValidatorFactoryConfig<TSchemas>) => {
validate: (data: unknown) => _fajarnugraha37_error.ValidationResult<TSchemas[K]>;
validateAsync: (data: unknown) => Promise<_fajarnugraha37_error.ValidationResult<TSchemas[K]>>;
validateStrict: (data: unknown) => TSchemas[K];
validateStrictAsync: (data: unknown) => Promise<TSchemas[K]>;
validateMany: (items: unknown[]) => _fajarnugraha37_error.ValidationResult<TSchemas[K][]>;
validateManyAsync: (items: unknown[]) => Promise<_fajarnugraha37_error.ValidationResult<TSchemas[K][]>>;
};
declare const createTypeValidatorFromBuilders: <TSchemas extends SchemaRegistry = SchemaRegistry, K extends keyof TSchemas = keyof TSchemas>(schemaKey: K, schemas: SchemaSourceMap<TSchemas>, config?: ValidatorFactoryConfig<TSchemas>) => {
validate: (data: unknown) => _fajarnugraha37_error.ValidationResult<TSchemas[K]>;
validateAsync: (data: unknown) => Promise<_fajarnugraha37_error.ValidationResult<TSchemas[K]>>;
validateStrict: (data: unknown) => TSchemas[K];
validateStrictAsync: (data: unknown) => Promise<TSchemas[K]>;
validateMany: (items: unknown[]) => _fajarnugraha37_error.ValidationResult<TSchemas[K][]>;
validateManyAsync: (items: unknown[]) => Promise<_fajarnugraha37_error.ValidationResult<TSchemas[K][]>>;
};
export { type SchemaSource, type SchemaSourceMap, type ValidatorFactoryConfig, buildSchemaMap, createTypeValidatorFromBuilders, createTypeValidatorFromJSON, createValidator, createValidatorFromBuilders, createValidatorFromJSON, defaultValidator, defineSchemas, validateExpression, validateExpressionStrict, validatorBuilder };