유용한 ramda 확장 함수들
August 14, 2020 - [ramda, js, function-programming]
ramda 를 응용한 몇가지 유용한 확장함수들
go
export const go = (value, ...fns) => {
return R.pipe(...fns)(value)
}
noop
export const noop = () => {}
except
export const except = R.pipe(R.complement, R.filter)
propNotEq
export const propNotEq = R.complement(R.propEq)
OR
export const OR = (pred1, pred2) => {
return value => R.or(pred1(value), pred2(value))
}
AND
export const AND = (pred1, pred2) => {
return value => R.and(pred1(value), pred2(value))
}
isNotNil
export const isNotNil = R.complement(R.isNil)
peek
R.pipe
사용시 중간에 전달되는 값을 로그로 찍어서 확인할 때 필요한 함수
export const peek = (...args) => {
return value => {
if (!args.length) {
console.log('peek', value)
} else {
console.log(...args, value)
}
return value
}
}
hasProps
export const hasProps = R.curry((arr, obj) => R.all(R.has(R.__, obj), arr))