Socket
Book a DemoInstallSign in
Socket

mixedtuplemap

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mixedtuplemap

A memory-efficient Map which accepts multiple objects as a key.

1.0.0
latest
npmnpm
Version published
Weekly downloads
2.3K
101.04%
Maintainers
1
Weekly downloads
 
Created
Source

MixedTupleMap npm version Build Status Dependency Status Coverage Status

A memory-efficient Map which accepts multiple objects as a key. This lib is one of the several possible cache for memoize-immutable, but it can suit other use-cases as it implements a usual Map API.

Install

npm install --save MixedTupleMap

This lib has no dependency, but requires a native implementation of WeakMap.

Usage

Restrictions. This map should be used when:

var MixedTupleMap = require('MixedTupleMap');

var cache = new MixedTupleMap();

var keyPart1 = {};
var keyPart2 = 'yolo';
var keyPart3 = [];
var value = {any: 'thing'};

// Note that following keyPart tuples are wrapped in new arrays that are !==
// (otherwise a WeakMap would have been enough).
cache.set([keyPart1, keyPart2, keyPart3], value);

cache.has([keyPart1, keyPart2, keyPart3]) === true;
cache.get([keyPart1, keyPart2, keyPart3]) === value;

When should you use this map?

This map is the best alternative to a WeakMap, when you need keys composed of multiple parts that mix primitive and non-primitive types. Note shouldn't be used if ALL parts of the key are likely to have primitive types (number, string, boolean, undefined or even null).

Author

@louis_remi

License

MPL-2.0

Keywords

cache

FAQs

Package last updated on 21 Dec 2016

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

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.