UNPKG

@jsdsl/bimap

Version:

A bidirectional map written in TypeScript/JavaScript.

3 lines (2 loc) 881 B
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});class BiMap{constructor(){this.primaryMap=new Map,this.secondaryMap=new Map}get(e){return this.getFromKey(e)}set(e,r){this.setFromKey(e,r)}getFromKey(e){return this.primaryMap.get(e)}getFromValue(e){return this.secondaryMap.get(e)}setFromKey(e,r){this.primaryMap.set(e,r),this.secondaryMap.set(r,e)}setFromValue(e,r){this.setFromKey(r,e)}removeByKey(e){if(this.primaryMap.has(e)){let r=this.primaryMap.get(e);return this.primaryMap.delete(e),this.secondaryMap.delete(r),r}}removeByValue(e){if(this.secondaryMap.has(e)){let r=this.secondaryMap.get(e);return this.primaryMap.delete(r),this.secondaryMap.delete(e),r}}hasKey(e){return this.primaryMap.has(e)}hasValue(e){return this.secondaryMap.has(e)}clear(){this.primaryMap.clear(),this.secondaryMap.clear()}}exports.BiMap=BiMap; //# sourceMappingURL=bi-map.js.map