@atlasrender/render-plugin
Version:
Atlas Render Farm Manager plugin system.
85 lines (84 loc) • 2.78 kB
TypeScript
import ValidationError from "./ValidationError";
import ValidatorOptionsExtended from "../interfaces/ValidatorOptionsExtended";
import WebJsonable from "../interfaces/WebJsonable";
import { ValidatorOptions } from "../interfaces";
/**
* Validator - class for declaring plugin setting validation error token.
* @class
* @author Danil Andreev
*/
export default class Validator implements ValidatorOptions, WebJsonable {
/**
* Codes - available error codes for validation.
*/
static readonly Codes: {
INVALID_PAYLOAD: number;
INVALID_TYPE: number;
INVALID_NUMBER: number;
INVALID_INTEGER: number;
INVALID_BOOLEAN: number;
INVALID_OBJECT: number;
INVALID_KEY: number;
INVALID_STRING: number;
INVALID_ARRAY: number;
OUT_OF_BOUNDS: number;
HIGHER_THAN_MAX: number;
TOO_BIG_VALUE: number;
LOWER_THAN_MIN: number;
LOWER_THAN_ZERO: number;
TOO_SMALL_VALUE: number;
MIN_HIGHER_THAN_MAX: number;
};
/**
* key - validated object key.
*/
readonly key: string;
/**
* expected - expected value of validated object.
*/
readonly expected: string;
readonly message?: string;
readonly status?: number;
readonly got?: any;
protected nested: ValidationError[];
/**
* Creates an instance of Validator.
* @constructor
* @param key - The key of an element in setting.
* @param expected - Expected value of an element.
* @param options - Options for more detailed setup.
* @author Danil Andreev
*/
constructor(key: string, expected: string, options?: ValidatorOptionsExtended);
/**
* compareCode - returns true if expected code is subset of current
* @param expected - Code for checking.
* @param current - Code from validation.
* @example
* Validator.compareCode(420, 421) === true
* Validator.compareCode(400, 421) === true
* Validator.compareCode(422, 421) === false
* Validator.compareCode(431, 421) === false
*/
static compareCode(expected: number, current: number): boolean;
/**
* createValidator - creates Validator instance from input structure.
* @method
* @param input - Any input data. Will be checked and validated.
* @throws TypeError
* @author Danil Andreev
*/
static createValidator(input: any): Validator;
/**
* getNested - returns an array of nested errors.
* @method
* @author Danil Andreev
*/
getNested(): readonly ValidationError[];
/**
* addNested - adds nested validation error to object.
* @param error - Error object.
*/
addNested(error: ValidationError): Validator;
getJSON(): object;
}