File: /var/www/linde-ai/html/node_modules/imagemin-mozjpeg/node_modules/onetime/index.js
import mimicFunction from '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;
	};
	mimicFunction(onetime, function_);
	calledFunctions.set(onetime, callCount);
	return onetime;
};
onetime.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 default onetime;