@bugsnag/core-performance
Version:
Core performance client
46 lines (44 loc) • 1.03 kB
JavaScript
const Priority = {
LOW: 0,
NORMAL: 50000,
HIGH: 100000
};
class PrioritizedSet {
constructor(initialItems) {
this.items = [];
if (initialItems) {
this.items = initialItems;
this.sort();
}
}
add(item, priority) {
if (this.items.some(i => i.item === item)) {
return false;
}
this.items.push({ item, priority });
this.sort();
return true;
}
addAll(items) {
let added = false;
for (const item of items) {
if (!this.items.some(i => i.item === item.item)) {
this.items.push(item);
added = true;
}
}
if (added) {
this.sort();
}
return added;
}
*[Symbol.iterator]() {
for (const item of this.items) {
yield item.item;
}
}
sort() {
this.items.sort((a, b) => b.priority - a.priority);
}
}
export { Priority, PrioritizedSet as default };