rollup-plugin-eslint
Version:
Verify entry point and all imported files with ESLint
52 lines (40 loc) • 4.42 kB
JavaScript
import path from 'path';
import { createFilter } from 'rollup-pluginutils';
import { CLIEngine } from '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 CLIEngine(options);
var formatter = options.formatter;
if (typeof formatter !== 'function') {
formatter = cli.getFormatter(formatter || 'stylish');
}
var filter = 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');
}
}
};
}
export default eslint$1;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcclxuaW1wb3J0IHsgY3JlYXRlRmlsdGVyIH0gZnJvbSAncm9sbHVwLXBsdWdpbnV0aWxzJztcclxuaW1wb3J0IHsgQ0xJRW5naW5lIH0gZnJvbSAnZXNsaW50JztcclxuXHJcbmZ1bmN0aW9uIG5vcm1hbGl6ZVBhdGgoaWQpIHtcclxuXHRyZXR1cm4gcGF0aC5yZWxhdGl2ZShwcm9jZXNzLmN3ZCgpLCBpZCkuc3BsaXQocGF0aC5zZXApLmpvaW4oJy8nKTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZXNsaW50KG9wdGlvbnMgPSB7fSkge1xyXG5cdGNvbnN0IGNsaSA9IG5ldyBDTElFbmdpbmUob3B0aW9ucyk7XHJcblx0bGV0IGZvcm1hdHRlciA9IG9wdGlvbnMuZm9ybWF0dGVyO1xyXG5cclxuXHRpZiAodHlwZW9mIGZvcm1hdHRlciAhPT0gJ2Z1bmN0aW9uJykge1xyXG5cdFx0Zm9ybWF0dGVyID0gY2xpLmdldEZvcm1hdHRlcihmb3JtYXR0ZXIgfHwgJ3N0eWxpc2gnKTtcclxuXHR9XHJcblxyXG5cdGNvbnN0IGZpbHRlciA9IGNyZWF0ZUZpbHRlcihcclxuXHRcdG9wdGlvbnMuaW5jbHVkZSxcclxuXHRcdG9wdGlvbnMuZXhjbHVkZSB8fCAnbm9kZV9tb2R1bGVzLyoqJ1xyXG5cdCk7XHJcblxyXG5cdHJldHVybiB7XHJcblx0XHRuYW1lOiAnZXNsaW50JyxcclxuXHJcblx0XHR0cmFuc2Zvcm0oY29kZSwgaWQpIHtcclxuXHRcdFx0Y29uc3QgZmlsZSA9IG5vcm1hbGl6ZVBhdGgoaWQpO1xyXG5cdFx0XHRpZiAoY2xpLmlzUGF0aElnbm9yZWQoZmlsZSkgfHwgIWZpbHRlcihpZCkpIHtcclxuXHRcdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc3QgcmVwb3J0ID0gY2xpLmV4ZWN1dGVPblRleHQoY29kZSwgZmlsZSk7XHJcblx0XHRcdGlmICghcmVwb3J0LmVycm9yQ291bnQgJiYgIXJlcG9ydC53YXJuaW5nQ291bnQpIHtcclxuXHRcdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Y29uc3QgcmVzdWx0ID0gZm9ybWF0dGVyKHJlcG9ydC5yZXN1bHRzKTtcclxuXHRcdFx0aWYgKHJlc3VsdCkge1xyXG5cdFx0XHRcdGNvbnNvbGUubG9nKHJlc3VsdCk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmIChvcHRpb25zLnRocm93RXJyb3IpIHtcclxuXHRcdFx0XHR0aHJvdyBFcnJvcignV2FybmluZ3Mgb3IgZXJyb3JzIHdlcmUgZm91bmQnKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH07XHJcbn1cclxuIl0sIm5hbWVzIjpbImVzbGludCIsImNvbnN0IiwibGV0Il0sIm1hcHBpbmdzIjoiOzs7O0FBSUEsU0FBUyxhQUFhLENBQUMsRUFBRSxFQUFFO0NBQzFCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Q0FDbEU7O0FBRUQsQUFBZSxTQUFTQSxRQUFNLENBQUMsT0FBWSxFQUFFO2tDQUFQLEdBQUcsRUFBRTs7Q0FDMUNDLElBQU0sR0FBRyxHQUFHLElBQUksU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0NBQ25DQyxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDOztDQUVsQyxJQUFJLE9BQU8sU0FBUyxLQUFLLFVBQVUsRUFBRTtFQUNwQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLENBQUM7RUFDckQ7O0NBRURELElBQU0sTUFBTSxHQUFHLFlBQVk7RUFDMUIsT0FBTyxDQUFDLE9BQU87RUFDZixPQUFPLENBQUMsT0FBTyxJQUFJLGlCQUFpQjtFQUNwQyxDQUFDOztDQUVGLE9BQU87RUFDTixJQUFJLEVBQUUsUUFBUTs7RUFFZCxTQUFTLG9CQUFBLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRTtHQUNuQkEsSUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0dBQy9CLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRTtJQUMzQyxPQUFPLElBQUksQ0FBQztJQUNaOztHQUVEQSxJQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztHQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUU7SUFDL0MsT0FBTyxJQUFJLENBQUM7SUFDWjs7R0FFREEsSUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztHQUN6QyxJQUFJLE1BQU0sRUFBRTtJQUNYLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEI7O0dBRUQsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFO0lBQ3ZCLE1BQU0sS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFDN0M7R0FDRDtFQUNELENBQUM7Q0FDRjs7In0=