UNPKG

384 BJavaScriptView Raw
1/**
2 * ES6 Map with additional `add` method to accumulate items.
3 */
4export class AccumulatorMap extends Map {
5 get [Symbol.toStringTag]() {
6 return 'AccumulatorMap';
7 }
8 add(key, item) {
9 const group = this.get(key);
10 if (group === undefined) {
11 this.set(key, [item]);
12 }
13 else {
14 group.push(item);
15 }
16 }
17}