lsdis

KV storage based on LocalStorage like reids.

Usage no npm install needed!

<script type="module">
  import lsdis from 'https://cdn.skypack.dev/lsdis';
</script>

README

lsdis

npm CircleCI

KV storage based on LocalStorage.

Purpose

Cache requests with localStorage in the browser.

Feature

  • Local storage API
  • Cache wrapper
  • Cache invalidate

Usage

LocalStorage - Low Level API

import LocalStorage from 'lsdis'

const storage = new LocalStorage()
const mykey = 'mykey'
const myval = 'myval'
const timeoutMs = 1000

// set value with timeout(/ms)
storage.set(mykey, myval, timeoutMs)

// if not existed, return null else return string
storage.get(mykey)

// delete by key
storage.del(mykey)

// flush all localstorage
storage.flush()

LocalCache - High Level API

import { LocalCache } from 'lsdis'

function getUser(username: string) {
  // fetch request data
  return { username }
}

const timeoutMs = 1000
const cache = new LocalCache({ timeout: timeoutMs })
const username = 'myname'

async function main() {
  // wrapper by key with function and args
  const result = await cache.wrapper(
    `getUser:${username}`, 
    getUser, 
    username,
  )
  console.log(result)

  // wrapper by key with function
  const resultAsync = await cache.wrapper(
    `getUser:${username}`, 
    async () => (getUser(username)),
  )
  console.log(resultAsync)
}