Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

binmap

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

binmap

Ordered Map (ES Map compatible)

  • 1.1.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

npm version build status coverage status greenkeeper badge

binmap

binmap is a Map implementation compatible to the Built-in Map but guaranteeing the keys to be ordered.

The constructor has an optional options object and the class has a member function between for iterating between two boundary keys.

BinMap instances are convertible to and from built-in Maps and Arrays (of sub-arrays).

Functions

Constructor

The constructor works like the built-in Map in that it can optionally take an iterable of key-value pairs (as individual arrays), but can also have an extra optional options object which can contain a comparison function cmp with the same semantics as the custom sort comparator.

import BinMap from 'binmap'

// Custom comparator
const cmp = ( a, b ) => a.length - b.length;

const bm1 = new BinMap( { cmp } );
// or
const bm2 = new BinMap( [ [ 'key1', 'value1' ], ... ], { cmp } );

betwen

between( { ... } ) returns an IterableIterator between two boundary keys. The options object can contain:

  • Either an lt (less than) or an le (less than or equal to).
  • Either a gt (greater than) or a ge (greater than or equal to).
  • reverse being a boolean (defaults to false), which if true returns an iterator from the end to the beginning of the span.

There are two magic values for lt, le, gt and ge which is BinMap.min and BinMap.max which represents the lowest/highest possible values. These are also the default, so an empty between( { } ) (or just between( )) iterates the whole map.

import BinMap from 'binmap'

const bm = new BinMap( [
    [ "a", 1 ],
    [ "b", 2 ],
    [ "c", 3 ],
    [ "d", 4 ],
] );

Array.from( bm.between( { gt: 'b' } ) )
// -> [ [ "c", 3 ], [ "d", 4 ] ]

Array.from( bm.between( { gt: 'b', reverse: true } ) )
// -> [ [ "d", 4 ], [ "c", 3 ] ]

Keywords

FAQs

Package last updated on 02 Dec 2018

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc