JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • 0
  • Score
    100M100P100Q35908F
  • License MIT

JS map wrapper with ttl and onDelete.

Package Exports

  • @c-zw/cache

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@c-zw/cache) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

LocalCache

JS map wrapper with ttl and onDelete.

Zero dependency.

npm i @c-zw/cache


import LocalCache from '@c-zw/cache';

const cache = new LocalCache<number>({ // cache number data
    ttl: 1000, // default delete after 1 second
    onDelete: (value) => { // default onDelete action
        console.log(`Default onDelete: ${value}`);
    }
});

set(key: string, value: T, options: options | number = {}): void

cache.set('1', 111, {  // override default setting
    ttl: 2000, // delete after 2 seconds
    onDelete: (value) => console.log('delete ' + value)
})

cache.set('2', 222) // use default setting
cache.set('3', 333, 4000) // override default ttl only

get(key: string): T | undefined

function printFirst() {
    setTimeout(() => {
        console.log(`get 1 data after 1999 milisecond: ${cache.get('1')}`);
    }, 1999);

    setTimeout(() => {
        console.log(`get 1 data after 2001 milisecond: ${cache.get('1')}`);
    }, 2001);
}

function printSecond() {
    setTimeout(() => {
        console.log(`get 2 data after 999 milisecond: ${cache.get('2')}`);
    }, 999);

    setTimeout(() => {
        console.log(`get 2 data after 1001 milisecond: ${cache.get('2')}`);
    }, 1001);
}

printFirst();
printSecond();

// get 2 data after 999 milisecond: 222
// Default onDelete: 222
// get 2 data after 1001 milisecond: undefined
// get 1 data after 1999 milisecond: 111
// delete: 111
// get 1 data after 2001 milisecond: undefined

delete(key: string): void

will not trigger onDelete.

function printDelete() {
    cache.set('3', 333);
    cache.delete('3');
    console.log(`get 3 data after delete: ${cache.get('3')}`);
}

printDelete();

// get 3 data after delete: undefined

keys(): string[]

function printKeys() {
    cache.set('4', 444);
    cache.set('5', 555);
    console.log(`get Keys: ${cache.keys()}`);
}

printKeys();

// get Keys: 1,2,4,5

size(): number

return stored data size

clear(): void

clear data and timeout