Server IP : 150.95.80.236 / Your IP : 3.129.70.238 Web Server : Apache System : Linux host-150-95-80-236 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64 User : social-telecare ( 10000) PHP Version : 7.4.33 Disable Function : opcache_get_status MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/vhosts/pcu.in.th/api-uat.pcu.in.th/node_modules/ajv/lib/compile/ |
Upload File : |
import type {AddedKeywordDefinition} from "../types" const _jsonTypes = ["string", "number", "integer", "boolean", "null", "object", "array"] as const export type JSONType = typeof _jsonTypes[number] const jsonTypes: Set<string> = new Set(_jsonTypes) export function isJSONType(x: unknown): x is JSONType { return typeof x == "string" && jsonTypes.has(x) } type ValidationTypes = { [K in JSONType]: boolean | RuleGroup | undefined } export interface ValidationRules { rules: RuleGroup[] post: RuleGroup all: {[Key in string]?: boolean | Rule} // rules that have to be validated keywords: {[Key in string]?: boolean} // all known keywords (superset of "all") types: ValidationTypes } export interface RuleGroup { type?: JSONType rules: Rule[] } // This interface wraps KeywordDefinition because definition can have multiple keywords export interface Rule { keyword: string definition: AddedKeywordDefinition } export function getRules(): ValidationRules { const groups: Record<"number" | "string" | "array" | "object", RuleGroup> = { number: {type: "number", rules: []}, string: {type: "string", rules: []}, array: {type: "array", rules: []}, object: {type: "object", rules: []}, } return { types: {...groups, integer: true, boolean: true, null: true}, rules: [{rules: []}, groups.number, groups.string, groups.array, groups.object], post: {rules: []}, all: {}, keywords: {}, } }