UNPKG

@atlasrender/render-plugin

Version:

Atlas Render Farm Manager plugin system.

47 lines 1.72 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/16/20, 2:57 PM * All rights reserved. */ Object.defineProperty(exports, "__esModule", { value: true }); const ValidationError_1 = require("../errors/ValidationError"); /** * SettingsPayload - class for validating and constructing plugin setting payload from input data. * @class * @author Danil Andreev */ class SettingsPayload { /** * Creates an instance of SettingsPayload. * @param spec - Plugin settings payload spec. Need to validate input data and convert is to correct payload. * @param payload - Any payload to validate and convert. * @throws ValidationError * @author Danil Andreev */ constructor(spec, payload) { this.spec = spec; const validationError = new ValidationError_1.default("Invalid payload."); const interpreted = spec.reduce((result, token) => { try { result[token.name] = token.validatePayload(payload[token.name]); } catch (error) { if (!(error instanceof ValidationError_1.default)) throw error; validationError.addNested(error); } finally { return result; } }, {}); if (validationError.hasErrors()) throw validationError; this.payload = interpreted; } } exports.default = SettingsPayload; //# sourceMappingURL=SettingsPayload.js.map