1.2.2 • Published 7 years ago
@mattl019/objectset v1.2.2
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) // trueHow 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 ofukeyValuefalse: Object does not exist.
clear(): true
- Description: Clears the
Set - Returns:
true:Setis 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! :)