npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

time-storage

v1.0.0

Published

Small library to work with the local storage implementing lifetime for its items

Downloads

36

Readme

Time Storage

Coverage CircleCI license

All Contributors

version downloads size gzip size

Watch on GitHub Star on GitHub Tweet

Small library to work with the local storage implementing lifetime for its items

How to use

Install the package

yarn add time-storage

Import it and create your time storage

import TimeStorage from "time-storage";

const myStorage = TimeStorage("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 Time 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 30 minutes since it was stored. You can create as many storages as you want.

import TimeStorage from "time-storage";

// This storage has the 'my_storage' namespace
// The items will have a default lifetime of 30 minutes
const myStorage = TimeStorage("my_storage");

// This storage has the 'my_second_storage' namespace
// The items will have a default lifetime of 60 minutes
const mySecondStorage = TimeStorage("my_second_storage", 60);

// This storage has the 'my_third_storage' namespace
// The items will have a default lifetime of 3 hours
// You can pass 'minute', 'hour' or 'day' as the time unit
const myThirdStorage = TimeStorage("my_third_storage", 3, "hour");

get(key: String, defaultValue: any [default: null]): any

Checks if the Time 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 TimeStorage from "time-storage";

const myStorage = TimeStorage("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 Time Storage

import TimeStorage from "time-storage";

const myStorage = TimeStorage("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], timeUnit: String, [default: Storage default time unit])

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

import TimeStorage from "time-storage";

// This storage has the 'my_storage' namespace
// The items will have a default lifetime of 30 minutes
const myStorage = TimeStorage("my_storage");

// This item will be set with the default validity for this storage: 30 minutes
myStorage.set("my_key", { message: "Hello, world" });

// This item will be set and will be valid for 60 minues
myStorage.set("second_key", 1000, 60);

// This item will be set and will be valid for 3 hours
myStorage.set("third_key", "my_data", 3, "hour");

remove(key: String)

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

import TimeStorage from "time-storage";

const myStorage = TimeStorage("my_storage");

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

// Removes the item with the key 'my_key' from this Time Storage
myStorage.remove("my_key");

clear()

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

import TimeStorage from "time-storage";

const myStorage = TimeStorage("my_storage");

myStorage.set("my_key", { message: "Hello, world" });
myStorage.set("second_key", 1000, 60);

// 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!