rambdax
Version:
Extended version of Rambda - a lightweight, faster alternative to Ramda
25 lines (18 loc) • 375 B
JavaScript
import { curry } from './curry'
function onceFn(fn, context){
let result
return function (){
if (fn){
result = fn.apply(context || this, arguments)
fn = null
}
return result
}
}
export function once(fn, context){
if (arguments.length === 1){
const wrap = onceFn(fn, context)
return curry(wrap)
}
return onceFn(fn, context)
}