Spaces:
Configuration error
Configuration error
| var wrappy = require('wrappy') | |
| module.exports = wrappy(once) | |
| module.exports.strict = wrappy(onceStrict) | |
| once.proto = once(function () { | |
| Object.defineProperty(Function.prototype, 'once', { | |
| value: function () { | |
| return once(this) | |
| }, | |
| configurable: true | |
| }) | |
| Object.defineProperty(Function.prototype, 'onceStrict', { | |
| value: function () { | |
| return onceStrict(this) | |
| }, | |
| configurable: true | |
| }) | |
| }) | |
| function once (fn) { | |
| var f = function () { | |
| if (f.called) return f.value | |
| f.called = true | |
| return f.value = fn.apply(this, arguments) | |
| } | |
| f.called = false | |
| return f | |
| } | |
| function onceStrict (fn) { | |
| var f = function () { | |
| if (f.called) | |
| throw new Error(f.onceError) | |
| f.called = true | |
| return f.value = fn.apply(this, arguments) | |
| } | |
| var name = fn.name || 'Function wrapped with `once`' | |
| f.onceError = name + " shouldn't be called more than once" | |
| f.called = false | |
| return f | |
| } | |