1.1.0 • Published 6 years ago

weakish-set v1.1.0

Weekly downloads
2
License
MIT
Repository
github
Last release
6 years ago

WeakishSet

It’s like WeakSet but it supports non-objects.

Installation

Requires Node.js 6.0.0 or above.

npm i weakish-map

API

The module exposes a single class.

Constructor

The constructor supports the following arguments:

  1. Optional: items (iterable): Initial key-value pairs for the Set.
  2. Optional: Object argument:
    • StrongSet (class): Set this if you have a custom Set class you want to use for storing non-objects. Defaults to the built-in Set.
    • WeakSet (class): Set this if you have a custom WeakSet class you want to use for storing objects. Defaults to the built-in WeakSet.

Methods

Instances of this class have the following methods, which behave just like the corresponding methods on Set and WeakSet:

  • has()
  • add()
  • delete()
  • clear()

Instances also have methods which only work on non-objects:

  • entries()
  • forEach()
  • values()

Example

// Before
const set1 = new WeakSet()
set1.add({})
set1.add('test') // Uncaught TypeError: Invalid value used in weak set

// After
const WeakishSet = require('weakish-set')
const set2 = new WeakishSet()
set2.add({})
set2.add('test')

Related