UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

31 lines 920 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TwoLayerCollector = void 0; /** two layer map abstraction */ class TwoLayerCollector { store = new Map(); add(layer1, layer2, value) { let layer2Map = this.store.get(layer1); if (layer2Map === undefined) { layer2Map = new Map(); this.store.set(layer1, layer2Map); } let values = layer2Map.get(layer2); if (values === undefined) { values = []; layer2Map.set(layer2, values); } values.push(value); } get(layer1, layer2) { return this.store.get(layer1)?.get(layer2); } outerKeys() { return this.store.keys(); } innerKeys(layer1) { return this.store.get(layer1)?.keys() ?? []; } } exports.TwoLayerCollector = TwoLayerCollector; //# sourceMappingURL=two-layer-collector.js.map