Composing multiple functions into one is a functional programming common practice;
composition makes a pipeline through which our data will transit and get modified simply working on the function-composition (just like snapping pieces of a track together)...
you start out with some single responsibility functions:
const capitalize = x => x.replace(/^\w/, m => m.toUpperCase());
const sign = x => x + ',\nmade with love';
and easily create a transformation track:
const formatText = compose(capitalize, sign);
formatText('this is an example')
//This is an example,
//made with love
N.B. Composition is achieved through a utility function usually called compose
as in our example.
Implementation of compose
are present in many JavaScript utility libraries (lodash, rambda, etc.) but you can also start out with a simple implementation such as:
const compose = (...funs) =>
x =>
funs.reduce((ac, f) => f(ac), x);