UNPKG

ray-gulp-eslint

Version:

use eslint with gulp

64 lines (62 loc) 2.67 kB
"use strict"; function gulpEslint(t) { t = util.migrateOptions(t) || {}; var r = new CLIEngine(t); return util.transform(function(n, e, l) { var i = path.relative(process.cwd(), n.path); if (n.isNull()) return void l(null, n); if (n.isStream()) return void l(new PluginError("gulp-eslint", "gulp-eslint doesn't support vinyl files with Stream contents.")); if (r.isPathIgnored(i)) return r.options.ignore && t.warnFileIgnored && (n.eslint = util.createIgnoreResult(n)), void l(null, n); var u; try { u = r.executeOnText(n.contents.toString(), i).results[0] } catch (t) { return void l(new PluginError("gulp-eslint", t)) } t.quiet ? n.eslint = util.filterResult(u, t.quiet) : n.eslint = u, n.eslint.hasOwnProperty("output") && (n.contents = Buffer.from(n.eslint.output), n.eslint.fixed = !0), l(null, n) }) } var PluginError = require("gulp-util").PluginError, CLIEngine = require("eslint").CLIEngine, util = require("./util"), path = require("path"); gulpEslint.result = function(t) { if ("function" != typeof t) throw new Error("Expected callable argument"); return util.transform(function(r, n, e) { r.eslint ? util.tryResultAction(t, r.eslint, util.handleCallback(e, r)) : e(null, r) }) }, gulpEslint.results = function(t) { if ("function" != typeof t) throw new Error("Expected callable argument"); var r = []; return r.errorCount = 0, r.warningCount = 0, util.transform(function(t, n, e) { t.eslint && (r.push(t.eslint), r.errorCount += t.eslint.errorCount, r.warningCount += t.eslint.warningCount), e(null, t) }, function(n) { util.tryResultAction(t, r, util.handleCallback(n)) }) }, gulpEslint.failOnError = function() { return gulpEslint.result(function(t) { var r = util.firstResultMessage(t, util.isErrorMessage); if (r) throw new PluginError("gulp-eslint", { name: "ESLintError", fileName: t.filePath, message: r.message, lineNumber: r.line }) }) }, gulpEslint.failAfterError = function() { return gulpEslint.results(function(t) { var r = t.errorCount; if (r) throw new PluginError("gulp-eslint", { name: "ESLintError", message: "Failed with " + r + (1 === r ? " error" : " errors") }) }) }, gulpEslint.formatEach = function(t, r) { return t = util.resolveFormatter(t), r = util.resolveWritable(r), gulpEslint.result(function(n) { return util.writeResults([n], t, r) }) }, gulpEslint.format = function(t, r) { return t = util.resolveFormatter(t), r = util.resolveWritable(r), gulpEslint.results(function(n) { n.length && util.writeResults(n, t, r) }) }, module.exports = gulpEslint;