Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

counted-storage

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

counted-storage

Lightweight lib to work with the local storage implementing lifetime based on how many times the item was used

  • 1.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Counted Storage

license All Contributors Coverage

version downloads size gzip size

Watch on GitHub Star on GitHub Tweet

Lightweight lib to work with the local storage implementing lifetime based on how many times the item was used

How to use

Install the package

npm install counted-storage --save
// or with yarn
yarn add counted-storage

Import it and create your Counted Storage

import CountedStorage from 'counted-storage'

const myStorage = CountedStorage('my_storage')

And that's it!!! Check the API Reference below to check all that you can do with this package.

API Reference

Creating a new storage

When creating a new Counted Storage, you need to give it a namespace and you can optionally pass a default validity for the items in that storage. If you don't pass a default validity, the items in that storage will be valid for 1 use only. You can create as many storages as you want.

import CountedStorage from 'counted-storage'

// This storage has the 'my_storage' namespace
// The items will have a default lifetime of 1 use
const myStorage = CountedStorage('my_storage')

// This storage has the 'my_second_storage' namespace
// The items will have a default lifetime of 5 uses
const mySecondStorage = CountedStorage('my_second_storage', 5)
get(key: String, defaultValue: any [default: null]): any

Checks if the Counted Storage has the item for the given key and returns if the item is found and if it's still valid, otherwise returns the defaultValue

import CountedStorage from 'counted-storage'

const myStorage = CountedStorage('my_storage')

// If the storage doesn't have this item, it will return null
myStorage.get('key')

// If the storage doesn't have this item, it will return 'default'
myStorage.get('key', 'default')
getAll(): Object

Returns an object with all the valid items for the Counted Storage

import CountedStorage from 'counted-storage'

const myStorage = CountedStorage('my_storage')

// Returns an object in the following format: { first_key: first_value, second_key: second_value }
myStorage.getAll();
set(key: String, value: any, validFor: Number [default: Storage default validity])

Sets an item on the Counted Storage with the given key. If validFor is given, this value will be used instead of the default validity of the Counted Storage.

import CountedStorage from 'counted-storage'

// This storage has the 'my_storage' namespace
// The items will have a default lifetime of 1 use
const myStorage = CountedStorage('my_storage')

// This item will be set with the default validity for this storage: 1 use
myStorage.set('my_key', { message: 'Hello, world' })

// This item will be set and will be valid for 3 uses
myStorage.set('second_key', 1000, 3)
remove(key: String)

Removes an item from the Counted Storage. You can have items with the same key in different Counted Storages. This is possible using different namespaces for your Counted Storages. If you have items with the same key on Counted Storages with different namespaces, the remove() function will remove the item only on the Counted Storage that you called it.

import CountedStorage from 'counted-storage'

const myStorage = CountedStorage('my_storage')

myStorage.set('my_key', { message: 'Hello, world' })

// Removes the item with the key 'my_key' from this Counted Storage
myStorage.remove('my_key')
clear()

Removes all items from the Counted Storage. This will not affect Counted Storages with different namespaces.

import CountedStorage from 'counted-storage'

const myStorage = CountedStorage('my_storage')

myStorage.set('my_key', { message: 'Hello, world' })
myStorage.set('second_key', 1000, 10)

// Removes all the items from this storage
myStorage.clear()

Contributors

Thanks goes to these wonderful people (emoji key):


Wendell Adriel

💻 📖 💡 🤔 ⚠️

This project follows the all-contributors specification. Contributions of any kind welcome!

Keywords

FAQs

Package last updated on 05 Dec 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc