12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- var onetime$1 = {exports: {}};
- var mimicFn$2 = {exports: {}};
- const mimicFn$1 = (to, from) => {
- for (const prop of Reflect.ownKeys(from)) {
- Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop));
- }
- return to;
- };
- mimicFn$2.exports = mimicFn$1;
- // TODO: Remove this for the next major release
- mimicFn$2.exports.default = mimicFn$1;
- const mimicFn = mimicFn$2.exports;
- 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;
- };
- onetime$1.exports = onetime;
- // TODO: Remove this for the next major release
- onetime$1.exports.default = onetime;
- onetime$1.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_);
- };
- export { onetime$1 as o };
|