UNPKG

antler

Version:
60 lines 2.19 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Rule = void 0; const chalk_1 = __importDefault(require("chalk")); const antler_error_1 = require("./antler-error"); const antler_warning_1 = require("./antler-warning"); const constants_1 = require("./constants"); class Rule { constructor(config) { if (typeof config === 'string') { this.setLevel(config); } else if (config && typeof config === 'object' && !Array.isArray(config)) { this.setLevel(config.level); this.setOptions(config.options); } else { this.error('Invalid config - must be a string or object'); } } report(error) { const message = error instanceof Error && error.message ? error.message : error; if (this.level === 'error') { throw new antler_error_1.AntlerError(`${this.getName()}: ${message}`); } else if (this.level === 'warning') { throw new antler_warning_1.AntlerWarning(`${this.getName()}: ${message}`); } } error(error) { const message = error instanceof Error && error.message ? error.message : error; throw new Error(chalk_1.default.red(`${this.getName()}: ${message}`)); } setLevel(level) { if (typeof level === 'string') { if (constants_1.LEVELS.indexOf(level) < 0) { this.error(`Error level must be one of ${constants_1.LEVELS.join(', ')}`); } else { this.level = level; } } else { this.error(`Error level must be one of ${constants_1.LEVELS.join(', ')}`); } } setOptions(options) { if (options && typeof options === 'object' && !Array.isArray(options)) { this.options = options; } else if (typeof options !== 'undefined') { this.error('Invalid options - must be an object'); } } } exports.Rule = Rule; //# sourceMappingURL=rule.js.map