WeakObject
A native-like object, but with a weak reference to all values, automatically deleting the corresponding property when the value is recycled.
- written in TypeScript
- zero dependence
- ESM support
Requirement
This package uses ES2021 Syntax WeakRef and FinalizationRegistry.
The following are the minimum versions that support these syntaxes:
- Chromium >= 84
- Firefox >= 79
- Safari >= 14.1
- Node.js >= 14.6.0
Install
- Using
npm
:npm install weak-object
- Or using
pnpm
:pnpm add weak-object
Quick start
// first, import this module:
import WeakObject from "weak-object";
// or using CommonJS
const WeakObject = require("weak-object");
const weak = new WeakObject();
const obj = { foo: "bar" };
weak.add("baz", obj);
weak.has("baz"); // true
weak.delete("baz");
weak.has("baz"); // false
API reference
Generate with jsdoc2mad
WeakObject
Kind: global class
-
WeakObject
-
.get(prop) ⇒
object
|undefined
-
.set(prop, value) ⇒
WeakObject
-
.has(prop) ⇒
boolean
-
.delete(prop) ⇒
boolean
-
.get(prop) ⇒
object
| undefined
weakObject.get(prop) ⇒ Get a property of WeakObject
Kind: instance method of WeakObject
Returns: object
| undefined
- value of property or undefined if the property not exists
Param | Type | Description |
---|---|---|
prop | string |
property name |
WeakObject
weakObject.set(prop, value) ⇒ Set a property of WeakObject
Kind: instance method of WeakObject
Returns: WeakObject
- the WeakObject that called this method
Param | Type | Description |
---|---|---|
prop | string |
property name |
value | object |
value |
boolean
weakObject.has(prop) ⇒ Determine if a property exists in WeakObject
Kind: instance method of WeakObject
Returns: boolean
- returns true if the property exists, otherwise false
Param | Type | Description |
---|---|---|
prop | string |
property name |
boolean
weakObject.delete(prop) ⇒ Delete a property of WeakObject if exists
Kind: instance method of WeakObject
Returns: boolean
- returns true when the property exists and is successfully deleted, otherwise false
Param | Type | Description |
---|---|---|
prop | string |
property name |
License
MIT