1.2.2 • Published 5 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) // 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! :)