mirror of
				https://github.com/actions/setup-node.git
				synced 2025-11-03 20:40:28 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			37 lines
		
	
	
		
			685 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			685 B
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# wrappy
 | 
						|
 | 
						|
Callback wrapping utility
 | 
						|
 | 
						|
## USAGE
 | 
						|
 | 
						|
```javascript
 | 
						|
var wrappy = require("wrappy")
 | 
						|
 | 
						|
// var wrapper = wrappy(wrapperFunction)
 | 
						|
 | 
						|
// make sure a cb is called only once
 | 
						|
// See also: http://npm.im/once for this specific use case
 | 
						|
var once = wrappy(function (cb) {
 | 
						|
  var called = false
 | 
						|
  return function () {
 | 
						|
    if (called) return
 | 
						|
    called = true
 | 
						|
    return cb.apply(this, arguments)
 | 
						|
  }
 | 
						|
})
 | 
						|
 | 
						|
function printBoo () {
 | 
						|
  console.log('boo')
 | 
						|
}
 | 
						|
// has some rando property
 | 
						|
printBoo.iAmBooPrinter = true
 | 
						|
 | 
						|
var onlyPrintOnce = once(printBoo)
 | 
						|
 | 
						|
onlyPrintOnce() // prints 'boo'
 | 
						|
onlyPrintOnce() // does nothing
 | 
						|
 | 
						|
// random property is retained!
 | 
						|
assert.equal(onlyPrintOnce.iAmBooPrinter, true)
 | 
						|
```
 |