swc/crates/swc_bundler/tests/.cache/deno/30c84d7c3fe94bbcb5fab74ab49f850c573889bd.ts
2021-11-09 20:42:49 +09:00

27 lines
648 B
TypeScript

// Loaded from https://deno.land/x/once/index.js
/// <reference types="./index.d.ts" />
/**
* Create a function that calls and cache a function once
* @template Return
* @param {() => Return} fn Function to be invoked once
* @returns {() => Return} Function that returns result of first-time execution of `fn`
*
* @example
* import once from 'https://ksxgithub.github.io/deno-once/index.js'
* const ran = once(Math.random)
* console.log(ran() === ran()) // => true
*/
export function once (fn) {
let main = () => {
const value = fn()
main = () => value
return value
}
return () => main()
}
export default once