You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					81 lines
				
				2.9 KiB
			
		
		
			
		
	
	
					81 lines
				
				2.9 KiB
			| 
											3 years ago
										 | import type { AnySchema, AnySchemaObject, AnyValidateFunction, EvaluatedProperties, EvaluatedItems } from "../types"; | ||
|  | import type Ajv from "../core"; | ||
|  | import type { InstanceOptions } from "../core"; | ||
|  | import { CodeGen, Name, Code, ValueScopeName } from "./codegen"; | ||
|  | import { LocalRefs } from "./resolve"; | ||
|  | import { JSONType } from "./rules"; | ||
|  | export declare type SchemaRefs = { | ||
|  |     [Ref in string]?: SchemaEnv | AnySchema; | ||
|  | }; | ||
|  | export interface SchemaCxt { | ||
|  |     readonly gen: CodeGen; | ||
|  |     readonly allErrors?: boolean; | ||
|  |     readonly data: Name; | ||
|  |     readonly parentData: Name; | ||
|  |     readonly parentDataProperty: Code | number; | ||
|  |     readonly dataNames: Name[]; | ||
|  |     readonly dataPathArr: (Code | number)[]; | ||
|  |     readonly dataLevel: number; | ||
|  |     dataTypes: JSONType[]; | ||
|  |     definedProperties: Set<string>; | ||
|  |     readonly topSchemaRef: Code; | ||
|  |     readonly validateName: Name; | ||
|  |     evaluated?: Name; | ||
|  |     readonly ValidationError?: Name; | ||
|  |     readonly schema: AnySchema; | ||
|  |     readonly schemaEnv: SchemaEnv; | ||
|  |     readonly rootId: string; | ||
|  |     baseId: string; | ||
|  |     readonly schemaPath: Code; | ||
|  |     readonly errSchemaPath: string; | ||
|  |     readonly errorPath: Code; | ||
|  |     readonly propertyName?: Name; | ||
|  |     readonly compositeRule?: boolean; | ||
|  |     props?: EvaluatedProperties | Name; | ||
|  |     items?: EvaluatedItems | Name; | ||
|  |     jtdDiscriminator?: string; | ||
|  |     jtdMetadata?: boolean; | ||
|  |     readonly createErrors?: boolean; | ||
|  |     readonly opts: InstanceOptions; | ||
|  |     readonly self: Ajv; | ||
|  | } | ||
|  | export interface SchemaObjCxt extends SchemaCxt { | ||
|  |     readonly schema: AnySchemaObject; | ||
|  | } | ||
|  | interface SchemaEnvArgs { | ||
|  |     readonly schema: AnySchema; | ||
|  |     readonly schemaId?: "$id" | "id"; | ||
|  |     readonly root?: SchemaEnv; | ||
|  |     readonly baseId?: string; | ||
|  |     readonly schemaPath?: string; | ||
|  |     readonly localRefs?: LocalRefs; | ||
|  |     readonly meta?: boolean; | ||
|  | } | ||
|  | export declare class SchemaEnv implements SchemaEnvArgs { | ||
|  |     readonly schema: AnySchema; | ||
|  |     readonly schemaId?: "$id" | "id"; | ||
|  |     readonly root: SchemaEnv; | ||
|  |     baseId: string; | ||
|  |     schemaPath?: string; | ||
|  |     localRefs?: LocalRefs; | ||
|  |     readonly meta?: boolean; | ||
|  |     readonly $async?: boolean; | ||
|  |     readonly refs: SchemaRefs; | ||
|  |     readonly dynamicAnchors: { | ||
|  |         [Ref in string]?: true; | ||
|  |     }; | ||
|  |     validate?: AnyValidateFunction; | ||
|  |     validateName?: ValueScopeName; | ||
|  |     serialize?: (data: unknown) => string; | ||
|  |     serializeName?: ValueScopeName; | ||
|  |     parse?: (data: string) => unknown; | ||
|  |     parseName?: ValueScopeName; | ||
|  |     constructor(env: SchemaEnvArgs); | ||
|  | } | ||
|  | export declare function compileSchema(this: Ajv, sch: SchemaEnv): SchemaEnv; | ||
|  | export declare function resolveRef(this: Ajv, root: SchemaEnv, baseId: string, ref: string): AnySchema | SchemaEnv | undefined; | ||
|  | export declare function getCompilingSchema(this: Ajv, schEnv: SchemaEnv): SchemaEnv | void; | ||
|  | export declare function resolveSchema(this: Ajv, root: SchemaEnv, // root object with properties schema, refs TODO below SchemaEnv is assigned to it
 | ||
|  | ref: string): SchemaEnv | undefined; | ||
|  | export {}; |