New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@avanio/expire-cache

Package Overview
Dependencies
Maintainers
0
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@avanio/expire-cache

Typescript/Javascript cache with expiration

  • 0.6.7
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2
decreased by-92.31%
Maintainers
0
Weekly downloads
 
Created
Source

@avanio/expire-cache

TypeScript npm version Maintainability Test Coverage github action

Typescript/Javascript cache interfaces and expiration cache class.

This package contains:

  • ICache a common cache interface
  • IAsyncCache a common async cache interface
  • ICacheOrAsync a type for both cache interfaces
  • ExpireCache a class which implements the ICache interface with value expiration

examples

Synchronous example:

import {ICache, ExpireCache, ExpireTimeoutCache} from '@avanio/expire-cache';

const cache = new ExpireCache<string>(); // expiration on read operations
const cache = new ExpireTimeoutCache<string>(); // expiration with setTimeout

cache.onClear((cleared) => {
	for (const [key, value] of cleared.entries()) {
		console.log(`key ${String(key)} expired, deleted or clear with value ${value}`);
	}
});

cache.add('key', 'value', new Date(Date.now() + 1000)); // expires in 1000ms
cache.add('key2', 'value2'); // never expires (if no default expiration is set)

cache.get('key'); // 'value'

cache.has('key'); // true

cache.delete('key');

cache.clear();

cache.size(); // 1

function useCache(cache: ICache<string>) {
	const value = cache.get('key'); // 'value'
}

Synchronous/Asynchronous example (works with both ICache and IAsyncCache interfaces):

import {ICacheOrAsync} from '@avanio/expire-cache';

function useCache(cache: ICacheOrAsync<string>) {
	const value = await cache.get('key'); // 'value'
}

Advanced logging example, see default log mapping

const cache = new ExpireCache<string>(console, {
	get: LogLevel.Info,
	set: LogLevel.Info,
});

(Optional) default expiration in milliseconds if not specified in add() method. (If both are undefined, cache entry never expires):

const cache = new ExpireCache<string>(console, undefined, 60 * 1000); // sets default 60 seconds expiration for add() method

Keywords

FAQs

Package last updated on 13 Jan 2025

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