UNPKG

eslint-plugin-lodash

Version:

Lodash specific linting rules for ESLint

47 lines (36 loc) 1.64 kB
/** * @fileoverview Rule to make sure lodash method calls don't use superfluous arguments */ 'use strict'; /** * @fileoverview Rule to make sure lodash method calls don't use superfluous arguments */ //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ module.exports = { create: function create(context) { var _require$getSettings = require('../util/settingsUtil').getSettings(context); var version = _require$getSettings.version; var _require = require('../util/lodashUtil'); var getLodashMethodVisitors = _require.getLodashMethodVisitors; var _require2 = require('../util/methodDataUtil'); var getFunctionMaxArity = _require2.getFunctionMaxArity; function getExpectedArity(callType, method) { var maxArity = getFunctionMaxArity(version, method); return Math.max(callType === 'chained' ? maxArity - 1 : maxArity, 0); } return getLodashMethodVisitors(context, function (node, iteratee, _ref) { var callType = _ref.callType; var method = _ref.method; var expectedArity = getExpectedArity(callType, method); if (node.arguments.length > expectedArity) { context.report({ node: node, message: 'Too many arguments passed to `{{method}}` (expected {{expectedArity}}).', data: { method: method, expectedArity: expectedArity } }); } }); } };