HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //home/arjun/projects/good-life-be/node_modules/timers-ext/throttle.js
"use strict";

var callable     = require("es5-ext/object/valid-callable")
  , validTimeout = require("./valid-timeout")
  , apply        = Function.prototype.apply;

module.exports = function (fn, timeout) {
	var isScheduled = false, context, args, run;
	callable(fn);
	timeout = validTimeout(timeout);
	run = function () {
		var currentContext = context, currentArgs = args;
		if (!args) {
			isScheduled = false;
			return;
		}
		context = null;
		args = null;
		setTimeout(run, timeout);
		apply.call(fn, currentContext, currentArgs);
	};
	return function () {
		if (isScheduled) {
			context = this;
			args = arguments;
			return;
		}
		isScheduled = true;
		setTimeout(run, timeout);
		apply.call(fn, this, arguments);
	};
};