UNPKG

kist

Version:

Lightweight Package Pipeline Processor with Plugin Architecture

45 lines 1.56 kB
import { AbstractValidator } from "../abstract/AbstractValidator.js"; import { StageValidator } from "./StageValidator.js"; export class ConfigValidator extends AbstractValidator { constructor() { super(); this.stageValidator = new StageValidator(); this.logInfo("ConfigValidator initialized."); } validate(config) { this.logInfo("Validating configuration."); for (const key in config) { if (Object.prototype.hasOwnProperty.call(config, key)) { this.validateProperty(key, config[key]); } } this.logInfo("Configuration validated successfully."); } validateProperty(key, value) { switch (key) { case "extends": break; case "stages": if (Array.isArray(value)) { this.validateStages(value); } else { this.throwValidationError(key, value, "'stages' must be an array."); } break; case "metadata": case "options": case "validateConfig": break; default: this.throwValidationError(key, value, `Unknown or unsupported configuration property: "${String(key)}".`); } this.logValidationSuccess(key, value); } validateStages(stages) { for (const stage of stages) { this.stageValidator.validate(stage); } } } //# sourceMappingURL=ConfigValidator.js.map