single-user-cache

1.0.1 • Public • Published

single-user-cache

A simple cache system for a single user request, built on the same concepts of data loader.

Install

npm i single-user-cache

Usage

const { Factory } = require('.')
const factory = new Factory()

factory.add('fetchSomething', {
  // cache by default, set to false to just do batching
  cache: true
}, async (queries, context) => {
  console.log(queries)
  // [ 42, 24 ]

  console.log(context)
  // { some: 'data' }

  return queries.map((k) => {
    return { k }
  })
})

async function run () {
  const context = {
    some: 'data'
  }
  const cache = factory.create(context)

  const p1 = cache.fetchSomething(42)
  const p2 = cache.fetchSomething(24)

  const res = await Promise.all([p1, p2])

  console.log(res)
  // [
  //   { k: 42 },
  //   { k: 24 }
  // ]
}

run().catch(console.log)

If the query parameter is an object, its cache key will be generated using safe-stable-stringify.

License

MIT

Package Sidebar

Install

npm i single-user-cache

Weekly Downloads

167,632

Version

1.0.1

License

MIT

Unpacked Size

15.3 kB

Total Files

10

Last publish

Collaborators

  • matteo.collina