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
JavaScript
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 = {}));
;