Files
eufy-security-client-dz/node_modules/sweet-collections/dist/map/SortedMap.js
2025-11-11 00:04:55 -06:00

54 lines
1.5 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SortedMap = void 0;
const array_1 = require("../array");
class SortedMap {
constructor(comparator) {
this.comparator = comparator;
this.array = new array_1.SortedArray((a, b) => comparator(a.key, b.key), true);
}
has(key) {
return this.array.includes({ key: key, value: undefined });
}
get(key, _default) {
var _a, _b;
const index = this.array.firstIndexOf({ key: key, value: undefined });
return (_b = (_a = this.array.get(index)) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : _default;
}
set(key, value) {
this.array.push({ key, value });
return this;
}
delete(key) {
return this.array.delete({ key: key, value: undefined });
}
keys() {
return this.array
.toArray()
.map((n) => n.key)[Symbol.iterator]();
}
values() {
return this.array
.toArray()
.map((n) => n.value)[Symbol.iterator]();
}
entries() {
return this.array
.toArray()
.map((n) => [n.key, n.value])[Symbol.iterator]();
}
clear() {
this.array.clear();
}
[Symbol.iterator]() {
return this.entries();
}
forEach(cb, thisArg) {
this.array.toArray().forEach((item) => cb.call(thisArg, item.value, item.key, this));
}
get size() {
return this.array.length;
}
}
exports.SortedMap = SortedMap;