UNPKG

eslint-plugin-lodash

Version:

Lodash specific linting rules for ESLint

53 lines (38 loc) 1.58 kB
/** * @fileoverview Rule to enforce a consistent composition method */ 'use strict'; //------------------------------------------------------------------------------ // Rule Definition //------------------------------------------------------------------------------ var possibleDirections = ['pipe', 'compose', 'flow', 'flowRight']; module.exports = { meta: { schema: [{ enum: possibleDirections }] }, create: function create(context) { var includes = require('lodash/includes'); var _require = require('../util/lodashUtil'); var getLodashMethodVisitors = _require.getLodashMethodVisitors; var _require$getSettings = require('../util/settingsUtil').getSettings(context); var version = _require$getSettings.version; var _require2 = require('../util/methodDataUtil'); var getMainAlias = _require2.getMainAlias; var direction = context.options[0] || 'flow'; var mainDirectionMethod = getMainAlias(version, direction); function isOtherDirection(method) { if (includes(possibleDirections, method)) { var methodDirection = getMainAlias(version, method); return methodDirection !== mainDirectionMethod; } } return getLodashMethodVisitors(context, function (node, iteratee, _ref) { var method = _ref.method; if (isOtherDirection(method)) { context.report(node, 'Use _.' + direction + ' for composition'); } }); } };