Spaces:
Running
Running
declare var ajv: { | |
(options?: ajv.Options): ajv.Ajv; | |
new(options?: ajv.Options): ajv.Ajv; | |
ValidationError: typeof AjvErrors.ValidationError; | |
MissingRefError: typeof AjvErrors.MissingRefError; | |
$dataMetaSchema: object; | |
} | |
declare namespace AjvErrors { | |
class ValidationError extends Error { | |
constructor(errors: Array<ajv.ErrorObject>); | |
message: string; | |
errors: Array<ajv.ErrorObject>; | |
ajv: true; | |
validation: true; | |
} | |
class MissingRefError extends Error { | |
constructor(baseId: string, ref: string, message?: string); | |
static message: (baseId: string, ref: string) => string; | |
message: string; | |
missingRef: string; | |
missingSchema: string; | |
} | |
} | |
declare namespace ajv { | |
type ValidationError = AjvErrors.ValidationError; | |
type MissingRefError = AjvErrors.MissingRefError; | |
interface Ajv { | |
/** | |
* Validate data using schema | |
* Schema will be compiled and cached (using serialized JSON as key, [fast-json-stable-stringify](https://github.com/epoberezkin/fast-json-stable-stringify) is used to serialize by default). | |
* @param {string|object|Boolean} schemaKeyRef key, ref or schema object | |
* @param {Any} data to be validated | |
* @return {Boolean} validation result. Errors from the last validation will be available in `ajv.errors` (and also in compiled schema: `schema.errors`). | |
*/ | |
validate(schemaKeyRef: object | string | boolean, data: any): boolean | PromiseLike<any>; | |
/** | |
* Create validating function for passed schema. | |
* @param {object|Boolean} schema schema object | |
* @return {Function} validating function | |
*/ | |
compile(schema: object | boolean): ValidateFunction; | |
/** | |
* Creates validating function for passed schema with asynchronous loading of missing schemas. | |
* `loadSchema` option should be a function that accepts schema uri and node-style callback. | |
* @this Ajv | |
* @param {object|Boolean} schema schema object | |
* @param {Boolean} meta optional true to compile meta-schema; this parameter can be skipped | |
* @param {Function} callback optional node-style callback, it is always called with 2 parameters: error (or null) and validating function. | |
* @return {PromiseLike<ValidateFunction>} validating function | |
*/ | |
compileAsync(schema: object | boolean, meta?: Boolean, callback?: (err: Error, validate: ValidateFunction) => any): PromiseLike<ValidateFunction>; | |
/** | |
* Adds schema to the instance. | |
* @param {object|Array} schema schema or array of schemas. If array is passed, `key` and other parameters will be ignored. | |
* @param {string} key Optional schema key. Can be passed to `validate` method instead of schema object or id/ref. One schema per instance can have empty `id` and `key`. | |
* @return {Ajv} this for method chaining | |
*/ | |
addSchema(schema: Array<object> | object, key?: string): Ajv; | |
/** | |
* Add schema that will be used to validate other schemas | |
* options in META_IGNORE_OPTIONS are alway set to false | |
* @param {object} schema schema object | |
* @param {string} key optional schema key | |
* @return {Ajv} this for method chaining | |
*/ | |
addMetaSchema(schema: object, key?: string): Ajv; | |
/** | |
* Validate schema | |
* @param {object|Boolean} schema schema to validate | |
* @return {Boolean} true if schema is valid | |
*/ | |
validateSchema(schema: object | boolean): boolean; | |
/** | |
* Get compiled schema from the instance by `key` or `ref`. | |
* @param {string} keyRef `key` that was passed to `addSchema` or full schema reference (`schema.id` or resolved id). | |
* @return {Function} schema validating function (with property `schema`). Returns undefined if keyRef can't be resolved to an existing schema. | |
*/ | |
getSchema(keyRef: string): ValidateFunction | undefined; | |
/** | |
* Remove cached schema(s). | |
* If no parameter is passed all schemas but meta-schemas are removed. | |
* If RegExp is passed all schemas with key/id matching pattern but meta-schemas are removed. | |
* Even if schema is referenced by other schemas it still can be removed as other schemas have local references. | |
* @param {string|object|RegExp|Boolean} schemaKeyRef key, ref, pattern to match key/ref or schema object | |
* @return {Ajv} this for method chaining | |
*/ | |
removeSchema(schemaKeyRef?: object | string | RegExp | boolean): Ajv; | |
/** | |
* Add custom format | |
* @param {string} name format name | |
* @param {string|RegExp|Function} format string is converted to RegExp; function should return boolean (true when valid) | |
* @return {Ajv} this for method chaining | |
*/ | |
addFormat(name: string, format: FormatValidator | FormatDefinition): Ajv; | |
/** | |
* Define custom keyword | |
* @this Ajv | |
* @param {string} keyword custom keyword, should be a valid identifier, should be different from all standard, custom and macro keywords. | |
* @param {object} definition keyword definition object with properties `type` (type(s) which the keyword applies to), `validate` or `compile`. | |
* @return {Ajv} this for method chaining | |
*/ | |
addKeyword(keyword: string, definition: KeywordDefinition): Ajv; | |
/** | |
* Get keyword definition | |
* @this Ajv | |
* @param {string} keyword pre-defined or custom keyword. | |
* @return {object|Boolean} custom keyword definition, `true` if it is a predefined keyword, `false` otherwise. | |
*/ | |
getKeyword(keyword: string): object | boolean; | |
/** | |
* Remove keyword | |
* @this Ajv | |
* @param {string} keyword pre-defined or custom keyword. | |
* @return {Ajv} this for method chaining | |
*/ | |
removeKeyword(keyword: string): Ajv; | |
/** | |
* Validate keyword | |
* @this Ajv | |
* @param {object} definition keyword definition object | |
* @param {boolean} throwError true to throw exception if definition is invalid | |
* @return {boolean} validation result | |
*/ | |
validateKeyword(definition: KeywordDefinition, throwError: boolean): boolean; | |
/** | |
* Convert array of error message objects to string | |
* @param {Array<object>} errors optional array of validation errors, if not passed errors from the instance are used. | |
* @param {object} options optional options with properties `separator` and `dataVar`. | |
* @return {string} human readable string with all errors descriptions | |
*/ | |
errorsText(errors?: Array<ErrorObject> | null, options?: ErrorsTextOptions): string; | |
errors?: Array<ErrorObject> | null; | |
_opts: Options; | |
} | |
interface CustomLogger { | |
log(...args: any[]): any; | |
warn(...args: any[]): any; | |
error(...args: any[]): any; | |
} | |
interface ValidateFunction { | |
( | |
data: any, | |
dataPath?: string, | |
parentData?: object | Array<any>, | |
parentDataProperty?: string | number, | |
rootData?: object | Array<any> | |
): boolean | PromiseLike<any>; | |
schema?: object | boolean; | |
errors?: null | Array<ErrorObject>; | |
refs?: object; | |
refVal?: Array<any>; | |
root?: ValidateFunction | object; | |
$async?: true; | |
source?: object; | |
} | |
interface Options { | |
$data?: boolean; | |
allErrors?: boolean; | |
verbose?: boolean; | |
jsonPointers?: boolean; | |
uniqueItems?: boolean; | |
unicode?: boolean; | |
format?: false | string; | |
formats?: object; | |
keywords?: object; | |
unknownFormats?: true | string[] | 'ignore'; | |
schemas?: Array<object> | object; | |
schemaId?: '$id' | 'id' | 'auto'; | |
missingRefs?: true | 'ignore' | 'fail'; | |
extendRefs?: true | 'ignore' | 'fail'; | |
loadSchema?: (uri: string, cb?: (err: Error, schema: object) => void) => PromiseLike<object | boolean>; | |
removeAdditional?: boolean | 'all' | 'failing'; | |
useDefaults?: boolean | 'empty' | 'shared'; | |
coerceTypes?: boolean | 'array'; | |
strictDefaults?: boolean | 'log'; | |
strictKeywords?: boolean | 'log'; | |
strictNumbers?: boolean; | |
async?: boolean | string; | |
transpile?: string | ((code: string) => string); | |
meta?: boolean | object; | |
validateSchema?: boolean | 'log'; | |
addUsedSchema?: boolean; | |
inlineRefs?: boolean | number; | |
passContext?: boolean; | |
loopRequired?: number; | |
ownProperties?: boolean; | |
multipleOfPrecision?: boolean | number; | |
errorDataPath?: string, | |
messages?: boolean; | |
sourceCode?: boolean; | |
processCode?: (code: string, schema: object) => string; | |
cache?: object; | |
logger?: CustomLogger | false; | |
nullable?: boolean; | |
serialize?: ((schema: object | boolean) => any) | false; | |
} | |
type FormatValidator = string | RegExp | ((data: string) => boolean | PromiseLike<any>); | |
type NumberFormatValidator = ((data: number) => boolean | PromiseLike<any>); | |
interface NumberFormatDefinition { | |
type: "number", | |
validate: NumberFormatValidator; | |
compare?: (data1: number, data2: number) => number; | |
async?: boolean; | |
} | |
interface StringFormatDefinition { | |
type?: "string", | |
validate: FormatValidator; | |
compare?: (data1: string, data2: string) => number; | |
async?: boolean; | |
} | |
type FormatDefinition = NumberFormatDefinition | StringFormatDefinition; | |
interface KeywordDefinition { | |
type?: string | Array<string>; | |
async?: boolean; | |
$data?: boolean; | |
errors?: boolean | string; | |
metaSchema?: object; | |
// schema: false makes validate not to expect schema (ValidateFunction) | |
schema?: boolean; | |
statements?: boolean; | |
dependencies?: Array<string>; | |
modifying?: boolean; | |
valid?: boolean; | |
// one and only one of the following properties should be present | |
validate?: SchemaValidateFunction | ValidateFunction; | |
compile?: (schema: any, parentSchema: object, it: CompilationContext) => ValidateFunction; | |
macro?: (schema: any, parentSchema: object, it: CompilationContext) => object | boolean; | |
inline?: (it: CompilationContext, keyword: string, schema: any, parentSchema: object) => string; | |
} | |
interface CompilationContext { | |
level: number; | |
dataLevel: number; | |
dataPathArr: string[]; | |
schema: any; | |
schemaPath: string; | |
baseId: string; | |
async: boolean; | |
opts: Options; | |
formats: { | |
[index: string]: FormatDefinition | undefined; | |
}; | |
keywords: { | |
[index: string]: KeywordDefinition | undefined; | |
}; | |
compositeRule: boolean; | |
validate: (schema: object) => boolean; | |
util: { | |
copy(obj: any, target?: any): any; | |
toHash(source: string[]): { [index: string]: true | undefined }; | |
equal(obj: any, target: any): boolean; | |
getProperty(str: string): string; | |
schemaHasRules(schema: object, rules: any): string; | |
escapeQuotes(str: string): string; | |
toQuotedString(str: string): string; | |
getData(jsonPointer: string, dataLevel: number, paths: string[]): string; | |
escapeJsonPointer(str: string): string; | |
unescapeJsonPointer(str: string): string; | |
escapeFragment(str: string): string; | |
unescapeFragment(str: string): string; | |
}; | |
self: Ajv; | |
} | |
interface SchemaValidateFunction { | |
( | |
schema: any, | |
data: any, | |
parentSchema?: object, | |
dataPath?: string, | |
parentData?: object | Array<any>, | |
parentDataProperty?: string | number, | |
rootData?: object | Array<any> | |
): boolean | PromiseLike<any>; | |
errors?: Array<ErrorObject>; | |
} | |
interface ErrorsTextOptions { | |
separator?: string; | |
dataVar?: string; | |
} | |
interface ErrorObject { | |
keyword: string; | |
dataPath: string; | |
schemaPath: string; | |
params: ErrorParameters; | |
// Added to validation errors of propertyNames keyword schema | |
propertyName?: string; | |
// Excluded if messages set to false. | |
message?: string; | |
// These are added with the `verbose` option. | |
schema?: any; | |
parentSchema?: object; | |
data?: any; | |
} | |
type ErrorParameters = RefParams | LimitParams | AdditionalPropertiesParams | | |
DependenciesParams | FormatParams | ComparisonParams | | |
MultipleOfParams | PatternParams | RequiredParams | | |
TypeParams | UniqueItemsParams | CustomParams | | |
PatternRequiredParams | PropertyNamesParams | | |
IfParams | SwitchParams | NoParams | EnumParams; | |
interface RefParams { | |
ref: string; | |
} | |
interface LimitParams { | |
limit: number; | |
} | |
interface AdditionalPropertiesParams { | |
additionalProperty: string; | |
} | |
interface DependenciesParams { | |
property: string; | |
missingProperty: string; | |
depsCount: number; | |
deps: string; | |
} | |
interface FormatParams { | |
format: string | |
} | |
interface ComparisonParams { | |
comparison: string; | |
limit: number | string; | |
exclusive: boolean; | |
} | |
interface MultipleOfParams { | |
multipleOf: number; | |
} | |
interface PatternParams { | |
pattern: string; | |
} | |
interface RequiredParams { | |
missingProperty: string; | |
} | |
interface TypeParams { | |
type: string; | |
} | |
interface UniqueItemsParams { | |
i: number; | |
j: number; | |
} | |
interface CustomParams { | |
keyword: string; | |
} | |
interface PatternRequiredParams { | |
missingPattern: string; | |
} | |
interface PropertyNamesParams { | |
propertyName: string; | |
} | |
interface IfParams { | |
failingKeyword: string; | |
} | |
interface SwitchParams { | |
caseIndex: number; | |
} | |
interface NoParams { } | |
interface EnumParams { | |
allowedValues: Array<any>; | |
} | |
} | |
export = ajv; | |