@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
TypeScript
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;
}