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

lmcache

v1.0.6

Published

Local memory cache.

Downloads

6

Readme

LMCache - Local Memory Cache

LMCache is used to provide a local memory cache with the following characteristics:

  • The code is 100% javascript with no runtime dependencies
  • The find() and add() methods use a constant time: O(1) algorithm. Speed does not vary with cache size.
  • Cache misses are just as fast (maybe faster) as cache hits.
  • Adding an item with the same key as an existing item will update the data of the existing item.
  • The memory usage is managed inline and automatically. There is no monitor thread or garbage collector.
  • Least recently touched cached items are removed when:
    • the number of entries reach the configured max
    • an entry is untouched for the configured number of seconds

Uses

LMCache is ideal for NodeJS applications that frequently lookup static or near-static data from databases or remote servers, especially when these circumstances exist in the cloud where charges are incurred for redundant lookups.

LMCache is perfect when retrieved data must be transformed or reduced for local consumtion and the transform will be reused.

Install

npm i lmcache

Build

tsc

Usage:

const Cache = require('lmcache');


const cache = new Cache(max_cache_items, max_seconds_unused);

cache.add(key, data);

const data = cache.find(key);

APIs

new Cache()

Syntax

Cache()
Cache(max_cache_items: number)
Cache(max_cache_items: number, max_seconds_unused: number)

Parameters

max_cache_items (number)
    The number of unique keys that can be cached before least recently touched cached items are released

max_seconds_unused (number)
    The number of seconds usused items are allowed to remain in the cache.

Return value

An instance of the LMCache class

add()

Syntax

add(key: number, data: any)

Parameters

key (string) (required)
    A unique string that can be used to retrieve the data with the find() method

data (any) (required)
    The data that will be cached

Return value

void

find()

Syntax

find(key: string);

Parameters

key (string) (required)
    The key needed to find the data in the cache.

Return value

The data will be return if the key still exists.
Otherwise null is returned.

Unit tests

npm test