UNPKG

tslint-ban-snippets

Version:

A custom tslint rule to ban configurable lists of code snippets.

43 lines 1.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConfigFactory = void 0; var ruleIds_1 = require("../ruleIds"); var SNIPPETS_PROP = "snippets"; var REGEX_SNIPPETS_PROP = "regexSnippets"; var ConfigFactory; (function (ConfigFactory) { function createForBanSnippetsRule(options) { var config = createFromArguments(options, ruleIds_1.BAN_SNIPPETS_RULE_ID); validate(config, "banned", ruleIds_1.BAN_SNIPPETS_RULE_ID); config.banned.forEach(function (b) { return validateSnippetsList(b, ruleIds_1.BAN_SNIPPETS_RULE_ID); }); return config; } ConfigFactory.createForBanSnippetsRule = createForBanSnippetsRule; function validate(config, prop, ruleId) { if (!hasProp(config, prop)) { throw new Error("invalid config for rule ".concat(ruleId, " - ").concat(prop, " is missing")); } } function hasProp(config, prop) { return config[prop] !== undefined; } function validateSnippetsList(config, ruleId) { // either snippets OR regexSnippets is required var hasSnippets = hasProp(config, SNIPPETS_PROP); var hasRegexSnippets = hasProp(config, REGEX_SNIPPETS_PROP); var isValid = hasSnippets || hasRegexSnippets; var hasBoth = hasSnippets && hasRegexSnippets; if (!isValid || hasBoth) { throw new Error("invalid config for rule ".concat(ruleId, " - either ").concat(SNIPPETS_PROP, " or ").concat(REGEX_SNIPPETS_PROP, " must be set")); } } function createFromArguments(options, ruleId) { var args = options.ruleArguments; if (args.length !== 1) { throw new Error("tslint rule is misconfigured (".concat(ruleId, ") - options.ruleArguments length is ").concat(args.length)); } var config = args[0]; return config; } })(ConfigFactory = exports.ConfigFactory || (exports.ConfigFactory = {})); //# sourceMappingURL=ConfigFactory.js.map