diff --git a/index.js b/index.js index 67697d71..63b8a3e7 100644 --- a/index.js +++ b/index.js @@ -2,6 +2,7 @@ var path = require('path'); var eslint = require('eslint'); var globby = require('globby'); +var dirGlob = require('dir-glob'); var optionsManager = require('./options-manager'); exports.lintText = function (str, opts) { @@ -20,25 +21,27 @@ exports.lintFiles = function (patterns, opts) { patterns = '**/*.{js,jsx}'; } - return globby(patterns, {ignore: opts.ignores}).then(function (paths) { - // when users are silly and don't specify an extension in the glob pattern - paths = paths.filter(function (x) { - var ext = path.extname(x); - return ext === '.js' || ext === '.jsx'; - }); + return dirGlob(opts.ignores).then(function (ignores) { + return globby(patterns, {ignore: ignores}).then(function (paths) { + // when users are silly and don't specify an extension in the glob pattern + paths = paths.filter(function (x) { + var ext = path.extname(x); + return ext === '.js' || ext === '.jsx'; + }); - if (!(opts.overrides && opts.overrides.length)) { - return runEslint(paths, opts); - } + if (!(opts.overrides && opts.overrides.length)) { + return runEslint(paths, opts); + } - var overrides = opts.overrides; - delete opts.overrides; + var overrides = opts.overrides; + delete opts.overrides; - var grouped = optionsManager.groupConfigs(paths, opts, overrides); + var grouped = optionsManager.groupConfigs(paths, opts, overrides); - return mergeReports(grouped.map(function (data) { - return runEslint(data.paths, data.opts); - })); + return mergeReports(grouped.map(function (data) { + return runEslint(data.paths, data.opts); + })); + }); }); }; diff --git a/package.json b/package.json index a1c41d4a..3ede4eb8 100644 --- a/package.json +++ b/package.json @@ -63,6 +63,7 @@ "babel-eslint": "^4.1.1", "debug": "^2.2.0", "deep-assign": "^1.0.0", + "dir-glob": "^1.0.1", "eslint": "^1.10.3", "eslint-config-xo": "^0.9.0", "eslint-plugin-babel": "^3.0.0",