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

efficient-cache

v1.0.0

Published

A super effecient Cache Manager, which removes all undefined/null/false keys and re-add's the back, when calling .get

Downloads

8

Readme

Fast-Cache

A super efficient Cache Manager, which removes all undefined/null/false keys and re-add's the back, when calling .get

Why?

When saving values in maps, you often have a lot of undefined, null keys and empty objects. When saving them, the Keys itself uses memory, which could follow to a higher ram usage and to a slower response time. This Package automatically remove nullish keys and transform them back on a DataSet Class, when calling get.

In Work:

  • Cache Lifetime (Dynamic Lifetime, delete when lasttime accessed)
  • Manual Cache Sweeper (+ optional filter)
  • Collection form (new Array Funtions on the Collection: .find, .filter, .last(), .first())
  • Remove empty Arrays
npm install efficient-cache

If you need help feel free to join our discord server. We will provied you all help ☺

See below for the Docs

You have to require the Package and create a new Collection with it. See the examlple below

const dataset = require('./Test.js') //A Dataset is shown below
const Manager = require('efficient-cache');
const cache = new Manager({dataset: dataset});

cache.set(`hello`, {food: true, water: null}}})
cache.set(`hello2`, {food: null, water: `10`}})


cache.get(`hello`)) //Get The Value
cache.first())            //The First Value in the Map

Transformer Class

class Test{
    constructor(data){
        this.food = data.food || false;
        this.test = data.test || {data: []}
        this.water = data.water || false;
    }
}

References:

**new Manager({dataset: DATASET, transformerClass: TRANSFORMERCLASS}) ** | Option | Type | Default | Description | | ------------- | ------------- | ------------- | ------------- | | DATASET | Class |'required' | The Class, in which the Data should be transformed| | TRANSFORMERCLASS | Class | not required | The Class, where the Dataset Class gets transformed on|

Collection Options: |Function |Description| | ------------- | ------------- | |.get(key) | Gets the transformed Data Object from the Map| |.set(key, value) | Sets the Data in the Map and removes all nullish keys| |.first(amount) | Gets the first x (amount) in the map | | .sweep(lifetime) | Deletes the Cache, which is older than the Lifetime |

Have fun and feel free to contribute/suggest or contact me on my discord server or per dm on Meister#9667

Bugs, Glitches and Issues

If you encounter any problems feel free to open an issue in our github repository or join the discord server.