• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# wrappy
2
3Callback wrapping utility
4
5## USAGE
6
7```javascript
8var wrappy = require("wrappy")
9
10// var wrapper = wrappy(wrapperFunction)
11
12// make sure a cb is called only once
13// See also: http://npm.im/once for this specific use case
14var once = wrappy(function (cb) {
15  var called = false
16  return function () {
17    if (called) return
18    called = true
19    return cb.apply(this, arguments)
20  }
21})
22
23function printBoo () {
24  console.log('boo')
25}
26// has some rando property
27printBoo.iAmBooPrinter = true
28
29var onlyPrintOnce = once(printBoo)
30
31onlyPrintOnce() // prints 'boo'
32onlyPrintOnce() // does nothing
33
34// random property is retained!
35assert.equal(onlyPrintOnce.iAmBooPrinter, true)
36```
37