UNPKG

tslint-folders

Version:

Custom TSLint rules for checking imports between packages and their folders, and generating relevant diagrams.

66 lines (65 loc) 3.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ConfigFactory = void 0; var DisabledTestRuleConfig_1 = require("../model/DisabledTestRuleConfig"); var TestBreakpointRuleConfig_1 = require("../model/TestBreakpointRuleConfig"); var RuleId_1 = require("../RuleId"); var ConfigFactory; (function (ConfigFactory) { function createForBetweenPackages(options) { var config = create(options, RuleId_1.RuleId.TsfFoldersImportsBetweenPackages); // TODO xxx validate a bit (at least importPath should be set, allowedToImport should refer to recognised importPath) return config; } ConfigFactory.createForBetweenPackages = createForBetweenPackages; function createForFilenames(options) { var config = createFromArguments(options, RuleId_1.RuleId.TsfFoldersFileNames); config.casings = config["file-name-casing"]; validate(config, "casings", RuleId_1.RuleId.TsfFoldersFileNames); validate(config, "ignorePaths", RuleId_1.RuleId.TsfFoldersFileNames); return config; } ConfigFactory.createForFilenames = createForFilenames; function createForDisabledTestRule(options) { // older config had just 'true': if (options.ruleArguments.length === 0) { return (0, DisabledTestRuleConfig_1.getDefaultDisabledTestRuleConfig)(); } var config = createFromArguments(options, RuleId_1.RuleId.TsfFoldersDisabledTest); validate(config, "ban", RuleId_1.RuleId.TsfFoldersDisabledTest); validate(config, "includePaths", RuleId_1.RuleId.TsfFoldersDisabledTest); return config; } ConfigFactory.createForDisabledTestRule = createForDisabledTestRule; function createForTestBreakpointRule(options) { // older config had just 'true': if (options.ruleArguments.length === 0) { return (0, TestBreakpointRuleConfig_1.getDefaultBreakpointRuleConfig)(); } var config = createFromArguments(options, RuleId_1.RuleId.TsfFoldersTestWithBreakpoint); validate(config, "debugTokens", RuleId_1.RuleId.TsfFoldersTestWithBreakpoint); validate(config, "includePaths", RuleId_1.RuleId.TsfFoldersTestWithBreakpoint); return config; } ConfigFactory.createForTestBreakpointRule = createForTestBreakpointRule; function validate(config, prop, ruleId) { if (config[prop] === undefined) { throw new Error("invalid config for rule ".concat(ruleId, " - ").concat(prop, " is missing")); } } function create(options, ruleId) { if (options.length !== 1) { throw new Error("tslint rule is misconfigured (".concat(ruleId, ") - options length is ").concat(options.length)); } var config = options[0].config; return config; } 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 = {}));