@mattl019/objectset

1.2.2 • Public • Published

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 of ukeyValue
    • 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! :)

Readme

Keywords

Package Sidebar

Install

npm i @mattl019/objectset

Weekly Downloads

0

Version

1.2.2

License

ISC

Unpacked Size

5.72 kB

Total Files

3

Last publish

Collaborators

  • mattl019