eslint-plugin-no-copy-paste-default-export
Version:
no more copy-pasted classes with wrong display name
20 lines (16 loc) • 506 B
JavaScript
import path from 'path';
const classNameMatch = /export[\s]+default[\s]+class[\s]+([\S]+)/i;
module.exports = function(context) {
return {
'ExportDefaultDeclaration': node => {
const filename = path.parse(context.getFilename()).name;
const match = classNameMatch.exec(context.getSource(node));
if (match && match[1] !== filename) {
context.report(node, `(class name) ${match[1]} !== ${filename} (file name)`);
}
}
};
};
module.exports.meta = {
config: 2
};