rollup-plugin-eslint
Version:
Verify entry point and all imported files with ESLint
56 lines (42 loc) • 4.65 kB
JavaScript
;
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var path = _interopDefault(require('path'));
var rollupPluginutils = require('rollup-pluginutils');
var eslint = require('eslint');
function normalizePath(id) {
return path.relative(process.cwd(), id).split(path.sep).join('/');
}
function eslint$1(options) {
if ( options === void 0 ) options = {};
var cli = new eslint.CLIEngine(options);
var formatter = options.formatter;
if (typeof formatter !== 'function') {
formatter = cli.getFormatter(formatter || 'stylish');
}
var filter = rollupPluginutils.createFilter(
options.include,
options.exclude || 'node_modules/**'
);
return {
name: 'eslint',
transform: function transform(code, id) {
var file = normalizePath(id);
if (cli.isPathIgnored(file) || !filter(id)) {
return null;
}
var report = cli.executeOnText(code, file);
if (!report.errorCount && !report.warningCount) {
return null;
}
var result = formatter(report.results);
if (result) {
console.log(result);
}
if (options.throwError) {
throw Error('Warnings or errors were found');
}
}
};
}
module.exports = eslint$1;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcclxuaW1wb3J0IHsgY3JlYXRlRmlsdGVyIH0gZnJvbSAncm9sbHVwLXBsdWdpbnV0aWxzJztcclxuaW1wb3J0IHsgQ0xJRW5naW5lIH0gZnJvbSAnZXNsaW50JztcclxuXHJcbmZ1bmN0aW9uIG5vcm1hbGl6ZVBhdGgoaWQpIHtcclxuXHRyZXR1cm4gcGF0aC5yZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBpZCkuc3BsaXQocGF0aC5zZXApLmpvaW4oJy8nKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZXNsaW50KG9wdGlvbnMgPSB7fSkge1xyXG5cdGNvbnN0IGNsaSA9IG5ldyBDTElFbmdpbmUob3B0aW9ucyk7XHJcblx0bGV0IGZvcm1hdHRlciA9IG9wdGlvbnMuZm9ybWF0dGVyO1xyXG5cclxuXHRpZiAodHlwZW9mIGZvcm1hdHRlciAhPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0Zm9ybWF0dGVyID0gY2xpLmdldEZvcm1hdHRlcihmb3JtYXR0ZXIgfHwgJ3N0eWxpc2gnKTtcclxuXHR9XHJcblxyXG5cdGNvbnN0IGZpbHRlciA9IGNyZWF0ZUZpbHRlcihcclxuXHRcdG9wdGlvbnMuaW5jbHVkZSxcclxuXHRcdG9wdGlvbnMuZXhjbHVkZSB8fCAnbm9kZV9tb2R1bGVzLyoqJ1xyXG5cdCk7XHJcblxyXG5cdHJldHVybiB7XHJcblx0XHRuYW1lOiAnZXNsaW50JyxcclxuXHJcblx0XHR0cmFuc2Zvcm0oY29kZSwgaWQpIHtcclxuXHRcdFx0Y29uc3QgZmlsZSA9IG5vcm1hbGl6ZVBhdGgoaWQpO1xyXG5cdFx0XHRpZiAoY2xpLmlzUGF0aElnbm9yZWQoZmlsZSkgfHwgIWZpbHRlcihpZCkpIHtcclxuXHRcdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc3QgcmVwb3J0ID0gY2xpLmV4ZWN1dGVPblRleHQoY29kZSwgZmlsZSk7XHJcblx0XHRcdGlmICghcmVwb3J0LmVycm9yQ291bnQgJiYgIXJlcG9ydC53YXJuaW5nQ291bnQpIHtcclxuXHRcdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gZm9ybWF0dGVyKHJlcG9ydC5yZXN1bHRzKTtcclxuXHRcdFx0aWYgKHJlc3VsdCkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChvcHRpb25zLnRocm93RXJyb3IpIHtcclxuXHRcdFx0XHR0aHJvdyBFcnJvcignV2FybmluZ3Mgb3IgZXJyb3JzIHdlcmUgZm91bmQnKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH07XHJcbn1cclxuIl0sIm5hbWVzIjpbImVzbGludCIsImNvbnN0IiwiQ0xJRW5naW5lIiwibGV0IiwiY3JlYXRlRmlsdGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUlBLFNBQVMsYUFBYSxDQUFDLEVBQUUsRUFBRTtDQUMxQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0NBQ2xFOztBQUVELEFBQWUsU0FBU0EsUUFBTSxDQUFDLE9BQVksRUFBRTtrQ0FBUCxHQUFHLEVBQUU7O0NBQzFDQyxJQUFNLEdBQUcsR0FBRyxJQUFJQyxnQkFBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0NBQ25DQyxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDOztDQUVsQyxJQUFJLE9BQU8sU0FBUyxLQUFLLFVBQVUsRUFBRTtFQUNwQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLENBQUM7RUFDckQ7O0NBRURGLElBQU0sTUFBTSxHQUFHRyw4QkFBWTtFQUMxQixPQUFPLENBQUMsT0FBTztFQUNmLE9BQU8sQ0FBQyxPQUFPLElBQUksaUJBQWlCO0VBQ3BDLENBQUM7O0NBRUYsT0FBTztFQUNOLElBQUksRUFBRSxRQUFROztFQUVkLFNBQVMsb0JBQUEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFO0dBQ25CSCxJQUFNLElBQUksR0FBRyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7R0FDL0IsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFO0lBQzNDLE9BQU8sSUFBSSxDQUFDO0lBQ1o7O0dBRURBLElBQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0dBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRTtJQUMvQyxPQUFPLElBQUksQ0FBQztJQUNaOztHQUVEQSxJQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0dBQ3pDLElBQUksTUFBTSxFQUFFO0lBQ1gsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQjs7R0FFRCxJQUFJLE9BQU8sQ0FBQyxVQUFVLEVBQUU7SUFDdkIsTUFBTSxLQUFLLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUM3QztHQUNEO0VBQ0QsQ0FBQztDQUNGOzsifQ==