UNPKG

@atlasrender/render-plugin

Version:

Atlas Render Farm Manager plugin system.

86 lines 4.46 kB
"use strict"; /* * Copyright (c) 2020. This code created and belongs to Pathfinder render manager project. * Owner and project architect: Danil Andreev | danssg08@gmail.com | https://github.com/DanilAndreev * File creator: Danil Andreev * Project: atlas-render-plugin * File last modified: 11/12/20, 5:23 PM * All rights reserved. */ Object.defineProperty(exports, "__esModule", { value: true }); const PluginSetting_1 = require("./PluginSetting"); const ValidationError_1 = require("../errors/ValidationError"); const _ = require("lodash"); const errors_1 = require("../errors"); /** * StringField - class, designed to create string plugin setting. * @class * @author Danil Andreev */ class StringField extends PluginSetting_1.default { /** * Creates an instance of StringField. * @param setting - Object with payload to construct entity. * @throws ValidationError * @author Danil Andreev */ constructor(setting) { super("string", setting); if (setting.min != null && typeof setting.min !== "number") this.validation.reject("min", "integer", { got: typeof setting.min }); if (setting.max != null && typeof setting.max !== "number") this.validation.reject("max", "integer", { got: typeof setting.max }); else if (setting.min != null && !this.validation.errorOn("min") && setting.min > setting.max) this.validation.reject("max", "integer", { message: "Max value can not be lower than min.", status: errors_1.Validator.Codes.LOWER_THAN_MIN }); if (setting.max != null && !this.validation.errorOn("max")) { if (!_.isInteger(setting.max)) this.validation.reject("max", "integer", { message: "Max value can not be float.", status: errors_1.Validator.Codes.INVALID_INTEGER }); if (setting.max < 0) this.validation.reject("max", "integer", { got: typeof setting.min, message: "Max length can not be less than zero", status: errors_1.Validator.Codes.LOWER_THAN_ZERO }); } if (setting.min != null && !this.validation.errorOn("min")) { if (!_.isInteger(setting.min)) this.validation.reject("min", "integer", { message: "Min value can not be float.", status: errors_1.Validator.Codes.INVALID_INTEGER }); if (setting.min < 0) this.validation.reject("min", "integer", { got: typeof setting.min, message: "Min length can not be less than zero", status: errors_1.Validator.Codes.LOWER_THAN_ZERO }); } if (setting.default != null && typeof setting.default !== "string") this.validation.reject("default", "string", { got: typeof setting.default }); else if (setting.max != null && setting.min != null && setting.default != null && !(this.validation.errorOn("min") && this.validation.errorOn("max"))) { if (setting.default.length < setting.min) this.validation.reject("default", "string", { message: "Default value can not be lower than min.", status: errors_1.Validator.Codes.LOWER_THAN_MIN }); if (setting.default.length > setting.max) this.validation.reject("default", "string", { message: "Default value can not be higher than max.", status: errors_1.Validator.Codes.HIGHER_THAN_MAX }); } this.min = setting.min; this.max = setting.max; this.default = setting.default; } validatePayload(payload) { if (this.nullable && !payload) return null; const interpreted = "" + payload; const error = new ValidationError_1.default("Incorrect payload.", undefined, { id: this.id }); if (this.min != null && interpreted.length < this.min) error.reject("min", "string", { got: interpreted, message: "Out of bounds." }); if (this.max != null && interpreted.length > this.max) error.reject("max", "string", { got: interpreted, message: "Out of bounds." }); if (error.hasErrors()) throw error; return interpreted; } getJSON() { return Object.assign(Object.assign({}, super.getJSON()), { min: this.min, max: this.max, default: this.default }); } } exports.default = StringField; //# sourceMappingURL=StringField.js.map