functional-match-case
Use lazy, functional programming friendly hash maps instead of switch
statements.
Getting Started
Install
npm install functional-match-case
yarn add functional-match-case
Use it!
import matchCase from 'functional-match-case';
const match = matchCase({
cars: 1,
trucks: 2,
other: getOtherCode,
})(defaultValue);
Example:
Now for some more detailed examples and use cases:
Turn:
switch(someValue) {
case A:
case B:
return resultA;
case C:
return resultB;
case D:
return functionC();
default:
return defaultValue;
}
Into:
import matchCase from 'functional-match-case';
const match = matchCase({
[A]: resultA,
[B]: resultA,
[C]: resultB,
[D]: functionC,
})(defaultValue);
match(someValue);
Reusable cases. For example:
export const someMatchCase = {
[A]: resultA,
[B]: resultB,
};
export const anotherMatchCase = {
[C]: resultC,
[D]: functionD,
}
export const yetAnotherMatchCase = {
...someMatchCase,
...anotherMatchCase,
[F]: resultF,
};
Lazy
You could use a simple hash map instead of a switch
. (Assuming no need for a default
case.)
But, if you added functions like this:
const hash = {
keyA: functionA(),
keyB: 401,
keyC: functionC(),
keyD: 200,
}
Then those functions would be executed and evaluated right away.
With functional-match-case
you just pass a reference and it will be executed when needed.