New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

more-maps

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

more-maps

A collection of additional map-like data structures. Including a bidirectional map, a multi map, and a bidirectional multi map.

latest
Source
npmnpm
Version
2.1.0
Version published
Maintainers
1
Created
Source

More Maps

A collection of additional map-like data structures. Including a bidirectional map, a multi map, and a bidirectional multi map.

Installation

 $ npm i more-maps

Usage

BidirectionalMap

A map that allows bidirectional lookup between keys and values. It extends the built-in Map class.

import { BidirectionalMap } from "more-maps"

const map = new BidirectionalMap<string, number>()

map.set("one", 1)
map.set("two", 2)

console.log(map.get("one")) // 1
console.log(map.reverse.get(2)) // "two"

console.log(map.reverse.reverse === map) // true

Be aware that if you set the same value twice to a different key, the second key will overwrite the first one in the reverse map. So make sure they do not conflict. If you want to avoid this, use the BidirectionalMultiMap.

MultiMap

A map that allows multiple values per key. It stores the values in an array. It provides methods to add, retrieve, and delete values.

import { MultiMap } from "more-maps"

const map = new MultiMap<string, number>()

map.add("one", 1)
map.add("one", 2)
map.add("one", 3)
map.add("two", 4)

console.log(map.getAll("one")) // [1, 2, 3]
console.log(map.get("one")) // 1
console.log(map.get("two")) // 4

map.delete("one", 2)
console.log(map.getAll("one")) // [1, 3]

map.delete("one")
console.log(map.getAll("one")) // []
console.log(map.get("one")) // undefined

BidirectionalMultiMap

A bidirectional version of the MultiMap. It allows bidirectional lookup between keys and values, and also supports adding and deleting values.

import { BidirectionalMultiMap } from "more-maps"

const map = new BidirectionalMultiMap<string, number>()

map.add("one", 1)
map.add("one", 2)
map.add("two", 3)
map.add("three", 2)

console.log(map.getAll("one")) // [1, 2]
console.log(map.reverse.getAll(2)) // ["one", "three"]

map.delete("one", 2)
console.log(map.getAll("one")) // [1]
console.log(map.reverse.getAll(2)) // ["three"]

Contribute

All feedback is appreciated. Create a pull request or write an issue.

Keywords

maps

FAQs

Package last updated on 01 Sep 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts