UNPKG

@flagpolejs/json-validator

Version:

Simple JSON validator that is similar to JSON Schema format, but with some simplified format that is more readable

40 lines (39 loc) 1.53 kB
export declare type Schema_Type = "undefined" | "boolean" | "object" | "array" | "string" | "number" | "integer" | "null"; export declare type Schema = { type: Schema_Type | Schema_Type[]; properties?: { [key: string]: Schema; }; items?: Schema; enum?: any[]; pattern?: RegExp | string; }; export declare class ValidationError { keyword?: string; instancePath: string; schemaPath?: string; params?: any; propertyName?: string; message?: string; schema?: any; parentSchema?: object; data?: any; } export default class JsonValidator { static validate(schema: Schema | string, document: any): JsonValidator; protected _errors: ValidationError[]; protected _schema: Schema; get isValid(): boolean; get errors(): ValidationError[]; constructor(schema: Schema | string); compile(schema: Schema | string): (root: any) => JsonValidator; validate(root: any): JsonValidator; protected _logError(error: ValidationError): void; protected _matchesType(schema: any, document: any, path: string): boolean; protected _matchesEnum(schema: any, document: any, path: string): boolean; protected _matchesPattern(schema: any, document: any, path: string): boolean; protected _matchesItems(schema: any, document: any, path: string): boolean; private compareTypes; protected _matchesProperties(schema: any, document: any, path: string): boolean; protected _isValid(schema: any, document: any, path: string): boolean; }