safeCompose
Create robust function compositions worrilessly
Why safeCompose
To cover all possible paths and shapes data can take in a composition can be very energy and time consuming. With safeCompose
we only have to think about our happy path.
Installation
npm install safe-compose
Import
Import the function thusly:
How safeCompose works
I think the best way to explain how safeCompose
works is by going through a few examples.
In the example below we run our composition with undefined
. The first function to receive our data is head
, which expects an array. Calling head
with undefined
will lead to an exception, but do not fret – safeCompose
uses try...catch
for all functions in the composition. safeCompose
has an output
variable that will be assigned either the output value of the current function or undefined
in case the function fails. In this case all our functions will fail, so the output value of the composition will be undefined
.
const head = xs0const toUpper = xconst trim = x undefined // => undefined
To provide a fallback you can use a function that returns the fallback value if a condition isn't met.
undefined // => 'FALLBACK'
You can also use a non-function value as a fallback. Note that only the first argument can be a non-function value.
undefined // => 'FALLBACK'
To recover from a failure mid-composition you can do something like this:
undefined // => 'FALLBACK'
Performance
safeCompose
is very fast since we don't need to check input values in the composition. If you'd like to see some numbers you can check out the Stackblitz page. To see the results you have to open your browsers console.