graphql
Version:
A Query Language and Runtime which can target any service.
1 lines • 1.02 kB
Source Map (JSON)
{"version":3,"file":"AccumulatorMap.js","sourceRoot":"","sources":["../../src/jsutils/AccumulatorMap.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,cAAqB,SAAQ,GAAgB;IACxD,IAAa,CAAC,MAAM,CAAC,WAAW,CAAC;QAC/B,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,IAAO;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;CACF","sourcesContent":["/**\n * ES6 Map with additional `add` method to accumulate items.\n *\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters\nexport class AccumulatorMap<K, T> extends Map<K, Array<T>> {\n override get [Symbol.toStringTag](): string {\n return 'AccumulatorMap';\n }\n\n add(key: K, item: T): void {\n const group = this.get(key);\n if (group === undefined) {\n this.set(key, [item]);\n } else {\n group.push(item);\n }\n }\n}\n"]}