objectset
objectset
is an extension to the JavaScript Set
data type that allows the use of objects as values.
Installation & Use
npm i @mattl019/objectset
import Cache from '@mattl019/objectset' // you can name it anything, I like cache as I use it for caching objects
let cache = new Cache("id")
cache.add({ id: 1, message: "Hey!" })
cache.addMany([
{ id: 1, message: "I will not be added since my ID already exists" },
{ id: 2, message: "I will be added though :)" }
])
cache.has(1) // true
cache.has(5) // false
cache.fetch(1) // { id: 1, message: "Hey!" }
cache.remove(1) // true
How it works
Each object must have an identical key with a unique value. In the example above, I used id
as my unique key.
You can set the unique key in the constructor.
let cache = new Cache("id") // <-- unique id
cache.addMany([
{ id: 1, msg: "Hi" }, // each object added must have the unique id as a key and a value that uniquely identifies the object
{ id: 2, msg: "Bye" }
])
Methods
add(obj: Object): true | false
-
Description: Adds an object to the
Set
. -
Parameters:
-
obj: Object
: An object to add. Must have unique id as a key.
-
-
Returns:
-
true
: Object is successfully added. -
false
: Object already exists.
-
addMany(objArray: Object[]): true
-
Description: Adds many objects to the
Set
-
Parameters:
-
objArray: Object[]
: An array of objects to add. All objects must have unique id as a key.
-
-
Returns:
-
true
: Objects, excluding duplicates, successfully added.
-
remove(ukeyValue: any): true | false
-
Description: Removes object with the unique id key value of
ukeyValue
-
Parameters:
-
ukeyValue: any
: The value of the unique id key
-
-
Returns:
-
true
: Object is successfully removed. -
false
: Object does not exist.
-
has(ukeyValue: any): true | false
-
Description: Checks if any object has a unique id key value of
ukeyValue
-
Parameters:
-
ukeyValue: any
: The value of the unique id key
-
-
Returns:
-
true
: Object exists. -
false
: Object does not exist.
-
fetch(ukeyValue: any): Object | false
-
Description: Fetches the object with unique id key value of
ukeyValue
-
Parameters:
-
ukeyValue: any
: The value of the unique id key
-
-
Returns:
-
Object
: The object with unique id key value ofukeyValue
-
false
: Object does not exist.
-
clear(): true
-
Description: Clears the
Set
-
Returns:
-
true
:Set
is cleared.
-
Inspiration
Whilst creating a Twitter clone, I found I was often fetching posts or replies that I had already viewed. I quickly realized I could not use Object
's with Set
, so I decided to create this quick, mini extension to enable said ability. I have decided to release this in the hope someone else finds it useful! :)