Sha256: 7c7792b40e4fa9e46df13033b3e209a4c4bb2246d9178198a1091df028e54d7b
Contents?: true
Size: 531 Bytes
Versions: 62
Compression:
Stored size: 531 Bytes
Contents
'use strict'; module.exports = function (fn, errMsg) { if (typeof fn !== 'function') { throw new TypeError('Expected a function.'); } var ret; var called = false; var fnName = fn.name || (/function ([^\(]+)/.exec(fn.toString()) || [])[1]; return function () { if (called) { if (errMsg === true) { fnName = fnName ? fnName + '()' : 'Function'; throw new Error(fnName + ' can only be called once.'); } return ret; } called = true; ret = fn.apply(this, arguments); fn = null; return ret; }; };
Version data entries
62 entries across 62 versions & 1 rubygems