diff options
Diffstat (limited to 'tools/eslint/lib/rules/no-path-concat.js')
-rw-r--r-- | tools/eslint/lib/rules/no-path-concat.js | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/tools/eslint/lib/rules/no-path-concat.js b/tools/eslint/lib/rules/no-path-concat.js new file mode 100644 index 0000000000..b555589157 --- /dev/null +++ b/tools/eslint/lib/rules/no-path-concat.js @@ -0,0 +1,37 @@ +/** + * @fileoverview Disallow string concatenation when using __dirname and __filename + * @author Nicholas C. Zakas + */ +"use strict"; + +//------------------------------------------------------------------------------ +// Rule Definition +//------------------------------------------------------------------------------ + +module.exports = function(context) { + + var MATCHER = /^__(?:dir|file)name$/; + + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + return { + + "BinaryExpression": function(node) { + + var left = node.left, + right = node.right; + + if (node.operator === "+" && + ((left.type === "Identifier" && MATCHER.test(left.name)) || + (right.type === "Identifier" && MATCHER.test(right.name))) + ) { + + context.report(node, "Use path.join() or path.resolve() instead of + to create paths."); + } + } + + }; + +}; |