scripts/node_modules/ajv/dist/compile/validate/subschema.d.ts

48 lines
1.7 KiB
TypeScript

import type { AnySchema } from "../../types";
import type { SchemaObjCxt } from "..";
import { Code, Name } from "../codegen";
import { Type } from "../util";
import type { JSONType } from "../rules";
export interface SubschemaContext {
schema: AnySchema;
schemaPath: Code;
errSchemaPath: string;
topSchemaRef?: Code;
errorPath?: Code;
dataLevel?: number;
dataTypes?: JSONType[];
data?: Name;
parentData?: Name;
parentDataProperty?: Code | number;
dataNames?: Name[];
dataPathArr?: (Code | number)[];
propertyName?: Name;
jtdDiscriminator?: string;
jtdMetadata?: boolean;
compositeRule?: true;
createErrors?: boolean;
allErrors?: boolean;
}
export declare type SubschemaArgs = Partial<{
keyword: string;
schemaProp: string | number;
schema: AnySchema;
schemaPath: Code;
errSchemaPath: string;
topSchemaRef: Code;
data: Name | Code;
dataProp: Code | string | number;
dataTypes: JSONType[];
definedProperties: Set<string>;
propertyName: Name;
dataPropType: Type;
jtdDiscriminator: string;
jtdMetadata: boolean;
compositeRule: true;
createErrors: boolean;
allErrors: boolean;
}>;
export declare function getSubschema(it: SchemaObjCxt, { keyword, schemaProp, schema, schemaPath, errSchemaPath, topSchemaRef }: SubschemaArgs): SubschemaContext;
export declare function extendSubschemaData(subschema: SubschemaContext, it: SchemaObjCxt, { dataProp, dataPropType: dpType, data, dataTypes, propertyName }: SubschemaArgs): void;
export declare function extendSubschemaMode(subschema: SubschemaContext, { jtdDiscriminator, jtdMetadata, compositeRule, createErrors, allErrors }: SubschemaArgs): void;