29 lines
823 B
TypeScript
29 lines
823 B
TypeScript
|
import type { AddedKeywordDefinition } from "../types";
|
||
|
declare const _jsonTypes: readonly ["string", "number", "integer", "boolean", "null", "object", "array"];
|
||
|
export declare type JSONType = typeof _jsonTypes[number];
|
||
|
export declare function isJSONType(x: unknown): x is JSONType;
|
||
|
declare type ValidationTypes = {
|
||
|
[K in JSONType]: boolean | RuleGroup | undefined;
|
||
|
};
|
||
|
export interface ValidationRules {
|
||
|
rules: RuleGroup[];
|
||
|
post: RuleGroup;
|
||
|
all: {
|
||
|
[Key in string]?: boolean | Rule;
|
||
|
};
|
||
|
keywords: {
|
||
|
[Key in string]?: boolean;
|
||
|
};
|
||
|
types: ValidationTypes;
|
||
|
}
|
||
|
export interface RuleGroup {
|
||
|
type?: JSONType;
|
||
|
rules: Rule[];
|
||
|
}
|
||
|
export interface Rule {
|
||
|
keyword: string;
|
||
|
definition: AddedKeywordDefinition;
|
||
|
}
|
||
|
export declare function getRules(): ValidationRules;
|
||
|
export {};
|