operationOnUnitString

node v8.17.0
version: 2.0.0
endpointsharetweet
const { curry, pipe, juxt, replace, join } = require('ramda'); // main function const operationOnUnitString = curry((f, unitString) => pipe( juxt([ pipe( parseFloat, f ), replace(/\d/g, ''), ]), join(''), )(unitString)); // demo const double = (x) => x * 2; const add1 = (x) => x + 1; console.log('without currying'); console.log("double 1px:", operationOnUnitString(double, "1px")); console.log("add 1 to 2px:", operationOnUnitString(add1, "2px")); console.log("double 2em:", operationOnUnitString(double, "2em")); console.log("add 1 to 3em:", operationOnUnitString(add1, "3em")); console.log("add 1 then double 2em", operationOnUnitString( pipe( add1, double, ), "2em" )); console.log("double then add 1 to 2em", operationOnUnitString( pipe( double, add1, ), "2em" )) console.log('with currying'); const doubleUnitString = operationOnUnitString(double); const add1ToUnitString = operationOnUnitString(add1); console.log("double 6 em:", doubleUnitString("6em")); console.log("add 1 to 5em:", add1ToUnitString("5em"));
Loading…

no comments

    sign in to comment