eslint-plugin-ember
Version:
Eslint plugin for Ember.js apps
37 lines (30 loc) • 944 B
JavaScript
;
const types = require('../utils/types');
const MESSAGE = 'Do not use this.attrs';
//------------------------------------------------------------------------------
// General rule - Don't use this.attrs
//------------------------------------------------------------------------------
module.exports = {
meta: {
docs: {
description: 'Disallow usage of this.attrs in components',
category: 'Possible Errors',
recommended: true,
url:
'https://github.com/ember-cli/eslint-plugin-ember/tree/master/docs/rules/no-attrs-in-components.md',
},
fixable: null,
},
create(context) {
function isThisAttrsExpression(node) {
return types.isThisExpression(node.object) && node.property.name === 'attrs';
}
return {
MemberExpression(node) {
if (isThisAttrsExpression(node)) {
context.report(node.property, MESSAGE);
}
},
};
},
};