eslint-plugin-lodash
Version:
Lodash specific linting rules for ESLint
47 lines (37 loc) • 1.65 kB
JavaScript
/**
* @fileoverview Rule to disallow using _.prototype.commit.
*/
;
/**
* @fileoverview Rule to disallow using _.prototype.commit.
*/
//------------------------------------------------------------------------------
// Rule Definition
//------------------------------------------------------------------------------
module.exports = {
create: function create(context) {
var _require = require('../util/lodashUtil');
var isLodashChainStart = _require.isLodashChainStart;
var isCallToMethod = _require.isCallToMethod;
var getLodashImportVisitors = _require.getLodashImportVisitors;
var _require2 = require('../util/astUtil');
var isMethodCall = _require2.isMethodCall;
var _require$getSettings = require('../util/settingsUtil').getSettings(context);
var pragma = _require$getSettings.pragma;
var version = _require$getSettings.version;
var _require3 = require('../util/ruleUtil');
var combineVisitorObjects = _require3.combineVisitorObjects;
return combineVisitorObjects({
CallExpression: function CallExpression(node) {
if (isLodashChainStart(node, pragma, context)) {
do {
node = node.parent.parent;
} while (isMethodCall(node) && !isCallToMethod(node, version, 'commit'));
if (isCallToMethod(node, version, 'commit')) {
context.report(node, 'Do not end chain with commit.');
}
}
}
}, getLodashImportVisitors(context));
}
};