@toomuchdesign/ajv-type-provider-json-schema-to-ts
Version:
An ajv type provider based on json-schema-to-ts
16 lines (15 loc) • 1.36 kB
TypeScript
import type { FromSchema, FromSchemaDefaultOptions, FromSchemaOptions, JSONSchema } from 'json-schema-to-ts';
import type { ValidateFunction, Schema } from 'ajv';
/**
* We should use `Ajv['compile']` type, here but sometimes TS seems to raise the following error:
* Type instantiation is excessively deep and possibly infinite.ts(2589)
*/
type Compile = <Data = unknown>(schema: Schema, _meta?: boolean) => ValidateFunction<Data>;
export declare const enhanceCompileWithTypeInference: <FromSchemaUserOptions extends FromSchemaOptions = FromSchemaDefaultOptions>(compile: Compile) => <Data = void, Schema extends JSONSchema = {}, InferredData = Data extends void ? FromSchema<Schema, FromSchemaUserOptions> : Data>(schema: Schema) => ValidateFunction<InferredData>;
/**
* We should use `Ajv['validate']` type, here but sometimes TS seems to raise the following error:
* Type instantiation is excessively deep and possibly infinite.ts(2589)
*/
type Validate = (schema: Schema, data: unknown) => boolean;
export declare const enhanceValidateWithTypeInference: <FromSchemaUserOptions extends FromSchemaOptions = FromSchemaDefaultOptions>(validate: Validate) => <Data = void, Schema extends JSONSchema = {}, InferredData = Data extends void ? FromSchema<Schema, FromSchemaUserOptions> : Data>(schema: Schema, data: unknown) => data is InferredData;
export {};