UNPKG

@atlasrender/render-plugin

Version:

Atlas Render Farm Manager plugin system.

60 lines 2.63 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 ValidationError_1 = require("../errors/ValidationError"); const FloatField_1 = require("./FloatField"); const _ = require("lodash"); const errors_1 = require("../errors"); /** * IntegerField - class, designed to create integer plugin setting. * @class * @author Danil Andreev */ class IntegerField extends FloatField_1.default { /** * Creates an instance of IntegerField. * @param setting - Object with payload to construct entity. * @throws ValidationError * @author Danil Andreev */ constructor(setting) { super(setting); this.setType("integer"); if (this.min != null && !this.validation.errorOn("min") && !_.isInteger(setting.min)) this.validation.reject("min", "integer", { message: "Min value must be integer type.", status: errors_1.Validator.Codes.INVALID_INTEGER }); if (this.max != null && !this.validation.errorOn("max") && !_.isInteger(setting.max)) this.validation.reject("max", "integer", { message: "Max value must be integer type.", status: errors_1.Validator.Codes.INVALID_INTEGER }); if (this.default != null && !this.validation.errorOn("default") && !_.isInteger(setting.default)) this.validation.reject("default", "integer", { message: "Default value must be integer type.", status: errors_1.Validator.Codes.INVALID_INTEGER }); } validatePayload(payload) { let validationError = null; let interpreted = null; try { interpreted = super.validatePayload(payload); } catch (error) { if (!(error instanceof ValidationError_1.default)) throw error; validationError = error; } finally { if (!validationError) validationError = new ValidationError_1.default("Incorrect payload.", undefined, { id: this.id }); } if (!_.isInteger(interpreted)) validationError.reject("type", "integer", { got: interpreted, message: "Value is not integer" }); if (validationError.hasErrors()) throw validationError; return payload; } } exports.default = IntegerField; //# sourceMappingURL=IntegerField.js.map