acro5piano / cache-facade

Frontend Cache inspired by Laravel's cache::remember

Home Page:https://www.npmjs.com/package/cache-facade

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

npm version CircleCI

Cache Facade

Browser Cache inspired by Laravel's cache::remember. You can reduce API call with fluent syntax.

Installation

yarn add cache-facade

Usage

import cache from 'cache-facade'

async someAsyncFunction() {
  const countries = await cache.remember('countries', 30, () => {
    return countryApi.get()
  })
  console.log(countries)
}

In the above example, cache.remember will look for saved cache first. Then, if cache found then return it. Else the third function's result will be passed. If over 30 minutes passed since the cache saved, Cache Facade will run the third function and save it.

Syntax

cache.remember

cache.remember(keyName: string, expiredTimeInMinutes: number, otherwise: () => Promise<any>)

cache.setDriver

Set storage driver. Default is localStorage.

import cache, { Driver } from 'cache-facade'

cache.setDriver(Driver.memory)
cache.setDriver(Driver.localStorage)

TODO

  • React Native support. Add AsyncStorage Driver.
  • Custom driver support.

About

Frontend Cache inspired by Laravel's cache::remember

https://www.npmjs.com/package/cache-facade


Languages

Language:TypeScript 74.4%Language:JavaScript 20.3%Language:HTML 5.3%