- Notifications
You must be signed in to change notification settings - Fork0
mudssrali/cond-construct
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Inspired byElixir'scond
this is a simpler alternative tolodash's_.cond
Install with npm or yarn via
yarn add cond-construct
or
npm i cond-construct
typeCond=(pairs:Array<[boolean,unknown|(()=>unknown)]>,options?:{strict:boolean})=>unknown
importcondfrom'cond-construct'constvalue=cond([[false,'false'],[true,'true'],[true,'true but too late']])// value === 'true'
You can disable strict checking by passing options as the second argument:
importcondfrom'cond-construct'constvalue=cond([[false,'false'],[1,'truthy'],[true,'true but also too late']],{strict:false})// value === 'truthy'
Also works nicely with React components as you can have the values lazily evaluated by wrapping it in a function:
importcondfrom'cond-construct'constComponent=({ hasErrors, isNew, isLoading})=>(<>{cond([[isLoading,()=><Loading/>],[isNew,()=><Create/>],[hasErrors,()=><ShowErrors/>]])}</>)
- [] Handle multiple method executions
- [] Add more option for falsy value
As all predicates have to be evaluated before the right branch can be chosen, it can have a negative performance impact if you rely on heavy computations here. It's best have simple booleans and resort to_.cond
for complex use cases.
About
Elixir's cond construct implementation for Javascript and Typescript
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
No releases published
Packages0
No packages published
Uh oh!
There was an error while loading.Please reload this page.