UNPKG

@bugsnag/core-performance

Version:
46 lines (44 loc) 1.03 kB
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 };