bottleneck
Version:
Distributed task scheduler and rate limiter
61 lines (53 loc) • 1.16 kB
JavaScript
"use strict";
// Generated by CoffeeScript 2.2.4
(function () {
var DLList;
DLList = class DLList {
constructor() {
this._first = null;
this._last = null;
this.length = 0;
}
push(value) {
var node;
this.length++;
node = {
value,
next: null
};
if (this._last != null) {
this._last.next = node;
this._last = node;
} else {
this._first = this._last = node;
}
return void 0;
}
shift() {
var ref1, value;
if (this._first == null) {
return void 0;
} else {
this.length--;
}
value = this._first.value;
this._first = (ref1 = this._first.next) != null ? ref1 : this._last = null;
return value;
}
first() {
if (this._first != null) {
return this._first.value;
}
}
getArray() {
var node, ref, results;
node = this._first;
results = [];
while (node != null) {
results.push((ref = node, node = node.next, ref.value));
}
return results;
}
};
module.exports = DLList;
}).call(undefined);