diff options
Diffstat (limited to 'node_modules/onetime/index.js')
-rw-r--r-- | node_modules/onetime/index.js | 44 |
1 files changed, 0 insertions, 44 deletions
diff --git a/node_modules/onetime/index.js b/node_modules/onetime/index.js deleted file mode 100644 index 99c5fc1..0000000 --- a/node_modules/onetime/index.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; -const mimicFn = require('mimic-fn'); - -const calledFunctions = new WeakMap(); - -const onetime = (function_, options = {}) => { - if (typeof function_ !== 'function') { - throw new TypeError('Expected a function'); - } - - let returnValue; - let callCount = 0; - const functionName = function_.displayName || function_.name || '<anonymous>'; - - const onetime = function (...arguments_) { - calledFunctions.set(onetime, ++callCount); - - if (callCount === 1) { - returnValue = function_.apply(this, arguments_); - function_ = null; - } else if (options.throw === true) { - throw new Error(`Function \`${functionName}\` can only be called once`); - } - - return returnValue; - }; - - mimicFn(onetime, function_); - calledFunctions.set(onetime, callCount); - - return onetime; -}; - -module.exports = onetime; -// TODO: Remove this for the next major release -module.exports.default = onetime; - -module.exports.callCount = function_ => { - if (!calledFunctions.has(function_)) { - throw new Error(`The given function \`${function_.name}\` is not wrapped by the \`onetime\` package`); - } - - return calledFunctions.get(function_); -}; |