UNPKG

lint-filter

Version:
139 lines (106 loc) 4.42 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.setupEslint = exports.getEslintRcFilename = exports.readdir = undefined; var getEslintRcFilename = exports.getEslintRcFilename = function () { var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '.'; var files; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return exports.readdir(path); case 2: files = _context.sent; return _context.abrupt('return', files.reduce(function (last, item) { if (/^\.eslintrc/.test(item)) { return item; } return last; })); case 4: case 'end': return _context.stop(); } } }, _callee, this); })); return function getEslintRcFilename() { return _ref.apply(this, arguments); }; }(); var setupEslint = exports.setupEslint = function () { var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var result, rules, config; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: result = void 0; _context2.prev = 1; _context2.next = 4; return (0, _spawn2.default)('eslint', ['.', '-f', 'checkstyle']); case 4: result = _context2.sent; _context2.next = 10; break; case 7: _context2.prev = 7; _context2.t0 = _context2['catch'](1); result = _context2.t0.stdout; case 10: _context2.t1 = _checkstyle.getRulesFromCheckstyle; _context2.next = 13; return (0, _parser.parseString)(result); case 13: _context2.t2 = _context2.sent; rules = (0, _context2.t1)(_context2.t2); _context2.next = 17; return getEslintRcFilename(); case 17: _context2.t3 = _context2.sent; _context2.t4 = _lodash2.default.reduce(rules, function (last, rule) { return _lodash2.default.assign({}, last, _defineProperty({}, rule, 0)); }, {}); config = { extends: _context2.t3, rules: _context2.t4 }; console.log(JSON.stringify(config, null, 2)); // eslint-disable-line no-console case 21: case 'end': return _context2.stop(); } } }, _callee2, this, [[1, 7]]); })); return function setupEslint() { return _ref2.apply(this, arguments); }; }(); exports.default = setup; var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _bluebird = require('bluebird'); var _bluebird2 = _interopRequireDefault(_bluebird); var _spawn = require('./utils/spawn'); var _spawn2 = _interopRequireDefault(_spawn); var _checkstyle = require('./utils/checkstyle'); var _parser = require('./parser'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new _bluebird2.default(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return _bluebird2.default.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } var readdir = exports.readdir = _bluebird2.default.promisify(_fs2.default.readdir); function setup(options) { switch (options.linter) { case 'eslint': return exports.setupEslint(options); default: throw new Error('Unknown linter'); } }