1.2.2 • Published 23 days ago

weak-identity-map v1.2.2

Weekly downloads
-
License
MIT
Repository
github
Last release
23 days ago

WeakIdentityMap

codecov npm version npm downloads/month npm downloads license

The WeakIdentityMap object holds key-value pairs of weakly referenced objects and remembers the original insertion order of the keys.

A weak reference to an object is a reference that does not prevent the object from being reclaimed by the garbage collector. In contrast, a normal (or strong) reference keeps an object in memory.

Identity Map ensures that each object gets loaded only once by keeping every loaded object in a map. Looks up objects using the map when referring to them.

Martin Fowler

WeakIdentityMap is based on Map, WeakRef and FinalizationRegistry objects.

  • No dependencies
  • TypeScript
  • ES2021
  • Node.js >=14.6.0

Installation

npm i weak-identity-map

Example

const map = new WeakIdentityMap();

let entity = {};

map.set('key', entity);

// returns a reference to the entity
map.get('key');

entity = null;

// ...
// GC reclaims space
// ...

// returns undefined
map.get('key');

API

size: number

Returns the number of values in the WeakIdentityMap object.

set(any, object): this

The set() method adds or updates an element with a specified key and an object to a WeakIdentityMap object.

get(any): object | undefined

The get() method returns a reference to a specified object from a WeakIdentityMap object.

has(any): boolean

The has() method returns a boolean indicating whether an object with the specified key exists or not.

delete(any): boolean

The delete() method removes the specified object from a WeakIdentityMap object by key.

keys(): IterableIterator\<any>

The keys() method returns a new Iterator object that contains the keys for each element in the WeakIdentityMap object in insertion order.

entries(): IterableIterator\<[any, object]>

The entries() method returns a new Iterator object that contains the [key, value] pairs for each element in the WeakIdentityMap object in insertion order.

values(): IterableIterator\<object>

The values() method returns a new Iterator object that contains the values for each element in the WeakIdentityMap object in insertion order.

forEach(cb): void

The forEach() method executes a provided function once per each key/value pair in the WeakIdentityMap object, in insertion order.

clear(): void

The clear() method removes all elements from a WeakIdentityMap object.

License

WeakIdentityMap is MIT licensed.

1.2.2

23 days ago

1.2.2-next.4

23 days ago

1.2.2-next.3

23 days ago

1.2.2-next.2

25 days ago

1.2.2-next.1

26 days ago

1.2.0

1 month ago

1.1.4

1 month ago

1.2.1

1 month ago

1.2.1-next.1

1 month ago

1.1.1

9 months ago

1.1.0

9 months ago

1.1.3

9 months ago

1.1.2

9 months ago

1.0.3

9 months ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago