1.1.1 • Published 2 years ago

memory-cache-map v1.1.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

MemoryCacheMap

NPM NPM downloads

MemoryCacheMap is an in-memory cache using the JavaScript Map class and adding the possibility to set a "time to live" for the cached values.

Installation

npm install memory-cache-map --save

Usage

import { MemoryCacheMap } from 'memory-cache-map';

const cache = new MemoryCacheMap();

cache.set('myKey', 'myValue');

const myKeyValue = cache.get('myKey');

console.log(myKeyValue);

Documentation

MemoryCacheMap class

class MemoryCacheMap<K = string, V = any> {

  /**
   * @param options - The passed options are applied for all values.
   */
  constructor(options?: MemoryCacheMapOptions);

  /**
   * Get a value from the cache.
   */
  get(key: K): V | undefined;

  /**
   * Check if value exists in the cache.
   */
  has(key: K): boolean;

  /**
   * Set the `value` in the cache.
   *
   * @param memoryCacheMapOptions - The passed options overwrite options passed through the constructor and are only applied for this `value`.
   */
  set(key: K, value: V, memoryCacheMapOptions?: MemoryCacheMapOptions): void;

  /**
   * Delete a cached value.
   */
  delete(key: K): void;
}

MemoryCacheMapOptions interface

interface MemoryCacheMapOptions {
  /**
   * Time to live of the cached value.
   * Value in milliseconds.
   * 
   * @example
   * 10 * 60 * 1000 // 10 minutes
   * 
   * @default
   * undefined // Meaning cached values are never cleaned from the memory.
   */
  timeToLive?: number;

  /**
   * Maximum number of cached items.
   * When the maximum number of cached items is reached, the oldest cached item is removed.
   * 
   * @default
   * undefined // Meaning no limit.
   */
  maxSize?: number;

  /**
   * @optional
   * 
   * A function called before a cached is deleted from the cache.
   * This means, this function called when you manually call the `delete` method or when the provided `timeToLive` of a cached value is reached.
   * 
   * @param key - The key of the cached value.
   * @param value - The cached value that will be deleted.
   */
  beforeDeleted?: (params: { key: K, value: V }) => void;
}

License

MIT

1.1.1

2 years ago

1.1.0

2 years ago

1.1.0-1

2 years ago

1.1.0-0

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.1.0

2 years ago