diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-10-14 18:40:54 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-10-14 18:40:54 +0200 |
commit | 9df98e65f842cf3acae09cbdd969966f42d64469 (patch) | |
tree | f071d3e09a342c208fb8e1cd3f5241d64fbfbaf3 /node_modules/tslint/lib/ruleLoader.js | |
parent | 008926b18470e7f394cd640302957b29728a9803 (diff) |
update dependencies
Diffstat (limited to 'node_modules/tslint/lib/ruleLoader.js')
-rw-r--r-- | node_modules/tslint/lib/ruleLoader.js | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/node_modules/tslint/lib/ruleLoader.js b/node_modules/tslint/lib/ruleLoader.js index acc7a3881..152f7b641 100644 --- a/node_modules/tslint/lib/ruleLoader.js +++ b/node_modules/tslint/lib/ruleLoader.js @@ -91,15 +91,29 @@ function transformName(name) { * @param ruleName - A name of a rule in filename format. ex) "someLintRule" */ function loadRule(directory, ruleName) { - var fullPath = path.join(directory, ruleName); - if (fs.existsSync(fullPath + ".js")) { - var ruleModule = require(fullPath); + var ruleFullPath = getRuleFullPath(directory, ruleName); + if (ruleFullPath !== undefined) { + var ruleModule = require(ruleFullPath); if (ruleModule !== undefined) { return ruleModule.Rule; } } return "not-found"; } +/** + * Returns the full path to a rule file. Path to rules are resolved using nodes path resolution. + * This allows developers to write custom rules in TypeScript, which then can be loaded by TS-Node. + * @param directory - An absolute path to a directory of rules + * @param ruleName - A name of a rule in filename format. ex) "someLintRule" + */ +function getRuleFullPath(directory, ruleName) { + try { + return require.resolve(path.join(directory, ruleName)); + } + catch (e) { + return undefined; + } +} function loadCachedRule(directory, ruleName, isCustomPath) { // use cached value if available var fullPath = path.join(directory, ruleName); |