/** * When */ const _branch = (x) => { const result = (x && x.isPublic) ? dissoc('private', x) : x; console.log(result); return assoc('result', 'done', result); } const handlePublic = when( propEq('isPublic', true), dissoc('private') ); const assignDone = assoc('result', 'done'); const branch = compose( assignDone, handlePublic ); /**Unless */ const _isDefaultArray = (x) => { const result = !isArray(x) ? [] : x; return result.map(wrap => ({wrap})) } const isDefaultArray = compose( map(objOf('wrap')), unless( isArray, constant([]) ) ) log( isDefaultArray([10,11,12,13]) )