Skip to content

Latest commit

 

History

History
49 lines (38 loc) · 1.37 KB

consistent-compose.md

File metadata and controls

49 lines (38 loc) · 1.37 KB

Consistent Composition Method

Lodash has two ways to compose functions: left to right (_.flow) or right to left (_.flowRight). Composing functions right to left has syntax that is in the same order as chaining, e.g.

var composed = _.flow(_.compact, _.last);
var x = composed(a);
// is similar to
var x = _(a).compact().last();

While Composing function left to right is similar to actual function application, e.g.

var composed = _.flowRight(_.last, _.compact);
var x = composed(a);
// is similar to
var x = _.last(_.compact(a));

This rule enforces a consistent style.

Rule Details

This rule takes a single argument - the method used to compose functions: flow, pipe, flowRight or compose (default is flow). The rule will not warn on using a different function in the same direction (e.g. pipe if the flow option is selected).

The following patterns are considered warnings:

/*eslint lodash/consistent-compose: [2, "flow"] */
var x = _.flowRight(y, z);
var f = _.compose(g, h);

/*eslint lodash/consistent-compose: [2, "flowRight"] */
var x = _.flow(z, y);
var f = _.pipe(h, g);

The following patterns are not considered warnings:

/*eslint lodash/consistent-compose: [2, "flow"] */
var x = _.flow(z, y);
var f = _.pipe(h, g);

/*eslint lodash/consistent-compose: [2, "flowRight"] */
var x = _.flowRight(y, z);
var f = _.compose(g, h);