UNPKG

kist

Version:

Lightweight Package Pipeline Processor with Plugin Architecture

56 lines 1.93 kB
import { AbstractProcess } from "../abstract/AbstractProcess.js"; export class AbstractValidator extends AbstractProcess { constructor() { super(); } validate(target) { if (!target || typeof target !== "object") { throw new Error("Target must be a valid object."); } for (const key in target) { if (Object.prototype.hasOwnProperty.call(target, key)) { this.validateProperty(key, target[key]); } } this.logInfo("Validation completed successfully."); } validateNumber(key, value) { if (typeof value !== "number" || value < 0) { this.throwValidationError(key, value, "Must be a non-negative number."); } } validateBoolean(key, value) { if (typeof value !== "boolean") { this.throwValidationError(key, value, "Must be a boolean."); } } validateString(key, value) { if (typeof value !== "string" || value.trim() === "") { this.throwValidationError(key, value, "Must be a non-empty string."); } } validateObject(key, value) { if (typeof value !== "object" || value === null || Array.isArray(value)) { this.throwValidationError(key, value, "Must be a valid object."); } } logValidationSuccess(key, value) { const message = ` Validation successful for property "${String(key)}" with value: ${JSON.stringify(value)} `; this.logSuccess(message); } throwValidationError(key, value, message) { const errorMessage = ` Validation failed for "${String(key)}" with value "${JSON.stringify(value)}". ${message} `; this.logError(errorMessage); throw new Error(errorMessage); } } //# sourceMappingURL=AbstractValidator.js.map