1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/rocketchat_ynh.git synced 2024-09-03 20:16:25 +02:00
rocketchat_ynh/sources/programs/server/packages/konecty_delayed-task.js
2016-04-29 16:32:48 +02:00

90 lines
6.2 KiB
JavaScript

(function () {
/* Imports */
var Meteor = Package.meteor.Meteor;
/* Package-scope variables */
var __coffeescriptShare, DelayedTask;
(function(){
/////////////////////////////////////////////////////////////////////////////////////
// //
// packages/konecty_delayed-task/packages/konecty_delayed-task.js //
// //
/////////////////////////////////////////////////////////////////////////////////////
//
(function () { // 1
// 2
//////////////////////////////////////////////////////////////////////////////////
// //
// packages/konecty:delayed-task/konecty:delayed-task.coffee.js //
// //
//////////////////////////////////////////////////////////////////////////////////
//
__coffeescriptShare = typeof __coffeescriptShare === 'object' ? __coffeescriptShare : {}; var share = __coffeescriptShare;
var // 10
__slice = [].slice; // 11
// 12
new (DelayedTask = (function() { // 13
var count, timer; // 14
// 15
timer = null; // 16
// 17
count = 0; // 18
// 19
function DelayedTask() { // 20
var args, flushCount, fn, time; // 21
fn = arguments[0], time = arguments[1], flushCount = arguments[2], args = 4 <= arguments.length ? __slice.call(arguments, 3) : [];
this.fn = fn; // 23
this.time = time != null ? time : 500; // 24
this.flushCount = flushCount != null ? flushCount : 0; // 25
this.args = args; // 26
return this; // 27
} // 28
// 29
DelayedTask.prototype.run = function() { // 30
var args, self; // 31
args = 1 <= arguments.length ? __slice.call(arguments, 0) : []; // 32
self = this; // 33
return Tracker.nonreactive(function() { // 34
var call; // 35
if (args.length > 0) { // 36
throw new Error('[DelayedTask] Tasks can\'t be called with arguments'); // 37
} // 38
if (timer != null) { // 39
Meteor.clearTimeout(timer); // 40
} // 41
count++; // 42
call = function() { // 43
count = 0; // 44
return self.fn.apply(self, self.args); // 45
}; // 46
if (self.flushCount > 0 && count >= self.flushCount) { // 47
return call(); // 48
} // 49
return timer = Meteor.setTimeout(call, self.time); // 50
}); // 51
}; // 52
// 53
return DelayedTask; // 54
// 55
})()); // 56
//////////////////////////////////////////////////////////////////////////////////
// 58
}).call(this); // 59
// 60
/////////////////////////////////////////////////////////////////////////////////////
}).call(this);
/* Exports */
if (typeof Package === 'undefined') Package = {};
Package['konecty:delayed-task'] = {
DelayedTask: DelayedTask
};
})();
//# sourceMappingURL=konecty_delayed-task.js.map