Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 

README.md

bim

NPM version Downloads Dependency status Dev Dependency status

A bidirectional map based on the ES6 Map object containing additional methods to retrive keys by values, delete key-value pairs by values and check the existence of keys by values. The module contains two classes: BiMap & WeakBiMap based on Map & WeakMap respectively.

Installation

npm install --save bim

Usage

Same as normal Map & WeakMap, plus the getKey, hasValue & deleteValue methods.

import { WeakBiMap } from 'bim'

// create objects to use as keys
const a = {
  i: 'foo',
  j: 8,
}
const b = {
  k: 'bar',
  p: 11,
}

// create the bidirectional weak map
const wbm = new WeakBiMap()

wbm.set(a, 5)
wbm.set(b, 6)
wbm.deleteValue(5) // now only has { k: 'bar', p: 11 } => 6
wbm.hasValue(5) // false

const c = {
  h: 'quux',
  z: 100,
}

wbm.set(c, 7)
wbm.hasValue(7) // true
wbm.getKey(7) // { h: 'quux', z: 100 }