Files
discord-decomp/_bundle/LRUCache.js
T
2026-11-01 12:12:55 +02:00

533 lines
14 KiB
JavaScript

// Metro module 1386 (f1387).
import * as _Module1387 from "./Module1387";
import * as _Yallist from "./Yallist";
import { inspect } from "./inspect";
let c1148_2, c1148_3, naiveLength, LRUCache, forEachStep, get2, trim, Entry;
const priv = function priv(a0, a1, a2) {
let r8, r11;
if (c1148_3[a1]) {
r8 = c1148_3[a1];
} else {
r8 = c1148_2(a1);
c1148_3[a1] = r8;
}
if (arguments.length === 2) {
r11 = a0[r8];
} else {
r11 = a2;
a0[r8] = a2;
}
return r11;
};
naiveLength = function naiveLength() {
return 1;
};
LRUCache = function LRUCache(a0) {
if (this instanceof LRUCache) {
const r13 = (typeof a0 === "number" ? {
max: a0
} : a0) || {};
const r18 = priv(this, "max", r13.max);
if ((r18 ? typeof r18 !== "number" : !r18) || r18 <= 0) {
priv(this, "max", Infinity);
}
let r21 = r13.length || naiveLength;
if (typeof r21 !== "function") {
r21 = naiveLength;
}
priv(this, "lengthCalculator", r21);
priv(this, "allowStale", r13.stale || false);
priv(this, "maxAge", r13.maxAge || 0);
priv(this, "dispose", r13.dispose);
this.reset();
return void 0;
}
const r10 = {
__proto__: LRUCache.prototype
};
const r11 = LRUCache.call(r10, a0);
return r11 instanceof Object ? r11 : r10;
};
forEachStep = function forEachStep(a0, a1, a2, a3) {
let r5, value;
L9: {
value = a2.value;
r5 = false;
if (value) {
if (!value.maxAge) {
const r20 = priv(a0, "maxAge");
r5 = false;
if (!r20) {
break L9;
}
}
const r9 = Date.now() - value.now;
r5 = value.maxAge ? r9 > value.maxAge : priv(a0, "maxAge") && r9 > priv(a0, "maxAge");
}
}
let r31 = value;
if (r5) {
if (a2) {
const value2 = a2.value;
if (priv(a0, "dispose")) {
priv(a0, "dispose").call(globalThis, value2.key, value2.value);
}
priv(a0, "length", priv(a0, "length") - value2.length);
priv(a0, "cache").delete(value2.key);
priv(a0, "lruList").removeNode(a2);
}
if (!priv(a0, "allowStale")) {
value = void 0;
}
r31 = value;
}
if (r31) {
a1.call(a3, r31.value, r31.key, a0);
}
};
get2 = function get(a0, a1, a2) {
let r17, r31, value;
const r9 = priv(a0, "cache").get(a1);
let r16 = void 0;
if (r9) {
L10: {
value = r9.value;
r17 = false;
if (value) {
if (!value.maxAge) {
const r20 = priv(a0, "maxAge");
r17 = false;
if (!r20) {
break L10;
}
}
const r11 = Date.now() - value.now;
r17 = value.maxAge ? r11 > value.maxAge : priv(a0, "maxAge") && r11 > priv(a0, "maxAge");
}
}
if (r17) {
if (r9) {
const value2 = r9.value;
if (priv(a0, "dispose")) {
priv(a0, "dispose").call(globalThis, value2.key, value2.value);
}
priv(a0, "length", priv(a0, "length") - value2.length);
priv(a0, "cache").delete(value2.key);
priv(a0, "lruList").removeNode(r9);
}
r31 = priv(a0, "allowStale") ? value : void 0;
} else {
r31 = value;
if (a2) {
priv(a0, "lruList").unshiftNode(r9);
r31 = value;
}
}
r16 = r31 && r31.value;
}
return r16;
};
trim = function trim(a0) {
if (priv(a0, "length") > priv(a0, "max")) {
let tail = priv(a0, "lruList").tail;
if (priv(a0, "length") > priv(a0, "max")) {
while (tail !== null) {
const prev = tail.prev;
const r14 = tail;
if (r14) {
const value = r14.value;
if (priv(a0, "dispose")) {
priv(a0, "dispose").call(globalThis, value.key, value.value);
}
priv(a0, "length", priv(a0, "length") - value.length);
priv(a0, "cache").delete(value.key);
priv(a0, "lruList").removeNode(r14);
}
if (!(priv(a0, "length") > priv(a0, "max"))) {
break;
}
tail = prev;
}
}
}
};
Entry = function Entry(a0, a1, a2, a3, a4) {
let maxAge = a4;
this.key = a0;
this.value = a1;
this.length = a2;
this.now = a3;
if (!a4) {
maxAge = 0;
}
this.maxAge = maxAge;
};
module.exports = LRUCache;
c1148_3 = {};
c1148_2 = typeof globalThis.Symbol === "function" ? function(a0) {
return Symbol.for(a0);
} : function(a0) {
return "_" + a0;
};
Object.defineProperty(LRUCache.prototype, "max", {
set: function set(a0) {
priv(this, "max", (a0 ? typeof a0 !== "number" : !a0) || a0 <= 0 ? Infinity : a0);
trim(this);
},
get: function get() {
return priv(this, "max");
},
enumerable: true
});
Object.defineProperty(LRUCache.prototype, "allowStale", {
set: function set(a0) {
priv(this, "allowStale", !!a0);
},
get: function get() {
return priv(this, "allowStale");
},
enumerable: true
});
Object.defineProperty(LRUCache.prototype, "maxAge", {
set: function set(a0) {
priv(this, "maxAge", (a0 ? typeof a0 !== "number" : !a0) || a0 < 0 ? 0 : a0);
trim(this);
},
get: function get() {
return priv(this, "maxAge");
},
enumerable: true
});
Object.defineProperty(LRUCache.prototype, "lengthCalculator", {
set: function set(a0) {
const r7 = typeof a0 !== "function" ? naiveLength : a0;
if (r7 !== priv(this, "lengthCalculator")) {
priv(this, "lengthCalculator", r7);
priv(this, "length", 0);
priv(this, "lruList").forEach(function(item) {
item.length = priv(this, "lengthCalculator").call(this, item.value, item.key);
priv(this, "length", priv(this, "length") + item.length);
}, this);
}
trim(this);
},
get: function get() {
return priv(this, "lengthCalculator");
},
enumerable: true
});
Object.defineProperty(LRUCache.prototype, "length", {
get: function get() {
return priv(this, "length");
},
enumerable: true
});
Object.defineProperty(LRUCache.prototype, "itemCount", {
get: function get() {
return priv(this, "lruList").length;
},
enumerable: true
});
LRUCache.prototype.rforEach = function(a0, a1) {
const r5 = a1 ? a1 : this;
let tail = priv(this, "lruList").tail;
while (tail !== null) {
const prev = tail.prev;
forEachStep(this, a0, tail, r5);
tail = prev;
}
};
LRUCache.prototype.forEach = function(a0, a1) {
const r5 = a1 ? a1 : this;
let head = priv(this, "lruList").head;
while (head !== null) {
const next = head.next;
forEachStep(this, a0, head, r5);
head = next;
}
};
LRUCache.prototype.keys = function() {
return priv(this, "lruList").toArray().map(function(item) {
return item.key;
}, this);
};
LRUCache.prototype.values = function() {
return priv(this, "lruList").toArray().map(function(item) {
return item.value;
}, this);
};
LRUCache.prototype.reset = function() {
if (priv(this, "dispose") && priv(this, "lruList") && priv(this, "lruList").length) {
priv(this, "lruList").forEach(function(item) {
priv(this, "dispose").call(this, item.key, item.value);
}, this);
}
priv(this, "cache", new _Module1387());
priv(this, "lruList", new _Yallist());
priv(this, "length", 0);
};
LRUCache.prototype.dump = function() {
return priv(this, "lruList").map(function(item) {
let r3;
L9: {
r3 = false;
if (item) {
if (!item.maxAge) {
const r11 = priv(this, "maxAge");
r3 = false;
if (!r11) {
break L9;
}
}
const r17 = Date.now() - item.now;
r3 = item.maxAge ? r17 > item.maxAge : priv(this, "maxAge") && r17 > priv(this, "maxAge");
}
}
if (r3) {
return void 0;
}
return {
k: item.key,
v: item.value,
e: item.now + (item.maxAge || 0)
};
}, this).toArray().filter(function(item) {
return item;
});
};
LRUCache.prototype.dumpLru = function() {
return priv(this, "lruList");
};
LRUCache.prototype.inspect = function(a0, a1) {
let c13014_1 = "LRUCache {";
let c13014_2 = false;
const r15 = priv(this, "allowStale");
let r1 = false;
if (r15) {
c13014_1 = c13014_1 + "\n allowStale: true";
c13014_2 = true;
r1 = true;
}
const r13 = priv(this, "max");
const r19 = r13 && r13 !== Infinity;
let r20 = r1;
if (r19) {
if (r1) {
c13014_1 = c13014_1 + ",";
}
c13014_1 = c13014_1 + ("\n max: " + inspect(r13, a1));
c13014_2 = true;
r20 = true;
}
const _this = priv(this, "maxAge");
let r36 = r20;
if (_this) {
if (r20) {
c13014_1 = c13014_1 + ",";
}
c13014_1 = c13014_1 + ("\n maxAge: " + inspect(_this, a1));
c13014_2 = true;
r36 = true;
}
const _this2 = priv(this, "lengthCalculator");
const r53 = _this2 ? _this2 !== naiveLength : _this2;
let r55 = r36;
if (r53) {
if (r36) {
c13014_1 = c13014_1 + ",";
}
c13014_1 = c13014_1 + ("\n length: " + inspect(priv(this, "length"), a1));
c13014_2 = true;
r55 = true;
}
let c13014_5 = false;
priv(this, "lruList").forEach(function(item) {
let r41;
if (c13014_5) {
c13014_1 = c13014_1 + ",\n ";
} else {
if (c13014_2) {
c13014_1 = c13014_1 + ",\n";
}
c13014_5 = true;
c13014_1 = c13014_1 + "\n ";
}
const r34 = inspect(item.key).split("\n").join("\n ");
const r9 = {
value: item.value
};
if (item.maxAge !== _this) {
r9.maxAge = item.maxAge;
}
if (_this2 !== naiveLength) {
r9.length = item.length;
}
L18: {
r41 = false;
if (item) {
if (!item.maxAge) {
const r44 = priv(this, "maxAge");
r41 = false;
if (!r44) {
break L18;
}
}
const r50 = Date.now() - item.now;
r41 = item.maxAge ? r50 > item.maxAge : priv(this, "maxAge") && r50 > priv(this, "maxAge");
}
}
if (r41) {
r9.stale = true;
}
c13014_1 = c13014_1 + (r34 + " => " + inspect(r9, a1).split("\n").join("\n "));
});
if (c13014_5 || r55) {
c13014_1 = c13014_1 + "\n";
}
const r83 = c13014_1 + "}";
c13014_1 = r83;
return r83;
};
LRUCache.prototype.set = function(a0, a1, a2) {
let r47;
const maxAge = a2 ? a2 : priv(this, "maxAge");
const now = maxAge ? Date.now() : 0;
const length = priv(this, "lengthCalculator").call(this, a1, a0);
if (priv(this, "cache").has(a0)) {
if (length > priv(this, "max")) {
const r80 = priv(this, "cache").get(a0);
if (r80) {
const value2 = r80.value;
if (priv(this, "dispose")) {
priv(this, "dispose").call(globalThis, value2.key, value2.value);
}
priv(this, "length", priv(this, "length") - value2.length);
priv(this, "cache").delete(value2.key);
priv(this, "lruList").removeNode(r80);
}
return false;
}
const value = priv(this, "cache").get(a0).value;
if (priv(this, "dispose")) {
priv(this, "dispose").call(this, a0, value.value);
}
value.now = now;
value.maxAge = maxAge;
value.value = a1;
priv(this, "length", priv(this, "length") + (length - value.length));
value.length = length;
this.get(a0);
trim(this);
return true;
}
const r16 = {
__proto__: Entry.prototype
};
r16.key = a0;
r16.value = a1;
r16.length = length;
r16.now = now;
r16.maxAge = maxAge || 0;
if (r16.length > priv(this, "max")) {
const r49 = priv(this, "dispose");
r47 = false;
if (r49) {
priv(this, "dispose").call(this, a0, a1);
r47 = false;
}
} else {
priv(this, "length", priv(this, "length") + r16.length);
priv(this, "lruList").unshift(r16);
priv(this, "cache").set(a0, priv(this, "lruList").head);
trim(this);
r47 = true;
}
return r47;
};
LRUCache.prototype.has = function(a0) {
let r17;
let r12 = !!priv(this, "cache").has(a0);
if (r12) {
L10: {
const value = priv(this, "cache").get(a0).value;
r17 = false;
if (value) {
if (!value.maxAge) {
const r20 = priv(this, "maxAge");
r17 = false;
if (!r20) {
break L10;
}
}
const r26 = Date.now() - value.now;
r17 = value.maxAge ? r26 > value.maxAge : priv(this, "maxAge") && r26 > priv(this, "maxAge");
}
}
r12 = !r17;
}
return r12;
};
LRUCache.prototype.get = function(a0) {
return get2(this, a0, true);
};
LRUCache.prototype.peek = function(a0) {
return get2(this, a0, false);
};
LRUCache.prototype.pop = function() {
const tail = priv(this, "lruList").tail;
let r13 = null;
if (tail) {
if (tail) {
const value = tail.value;
if (priv(this, "dispose")) {
priv(this, "dispose").call(globalThis, value.key, value.value);
}
priv(this, "length", priv(this, "length") - value.length);
priv(this, "cache").delete(value.key);
priv(this, "lruList").removeNode(tail);
}
r13 = tail.value;
}
return r13;
};
LRUCache.prototype.del = function(a0) {
const r12 = priv(this, "cache").get(a0);
if (r12) {
const value = r12.value;
if (priv(this, "dispose")) {
priv(this, "dispose").call(globalThis, value.key, value.value);
}
priv(this, "length", priv(this, "length") - value.length);
priv(this, "cache").delete(value.key);
priv(this, "lruList").removeNode(r12);
}
};
LRUCache.prototype.load = function(a0) {
this.reset();
const r16 = Date.now();
let r0 = a0.length - 1;
while (0 <= r0) {
const r18 = a0[r0];
let r9 = r18.e;
const r1 = r0;
if (!r9) {
r9 = 0;
}
if (r9 === 0) {
this.set(r18.k, r18.v);
} else {
const r12 = r9 - r16;
if (r12 > 0) {
this.set(r18.k, r18.v, r12);
}
}
r0 = r1 - 1;
}
};
LRUCache.prototype.prune = function() {
const _this3 = this;
priv(this, "cache").forEach(function(item, index) {
get2(_this3, index, false);
});
};