Exciting news!Announcing our $4.6M Series Seed. Learn more
Socket
LoveBlogFAQ
Install
Log in

swrr

Package Overview
Dependencies
2
Maintainers
1
Versions
7
Issues
File Explorer

Advanced tools

swrr

<div align="right"> <h1><code>swrr</code></h1> <sub><b>S</b>tale <b>W</b>hile <b>R</b>evalidate <b>R</b>esource</sub> <br /> <br />

    0.0.6latest

Version published
Maintainers
1
Yearly downloads
5,516

Weekly downloads

Readme

Source

swrr

Stale While Revalidate Resource

npm add swrr makes resources fast

downloads size size

Caveat ~ Currently cache backplane is assumed to be Cloudflare Workers KV. Before we hit 1.0 release, we will aim to support a generic and abstract backplane for the likes of Redis, Memcached, or other layers.

🚀 Usage

// file: my-worker.esm.ts import * as swr from 'swrr'; const getPostsInCategorySince = async ({ category, since }) => { const posts = await cms.getPostsInCategory(category); return posts.filter((post) => post.updatedAt > since); }; export default { async fetch(req, env, ctx) { // ⬇️️ create "container", all resources will batch in this boundary. // ~> you'd probably want this in a middleware. const makeResource = swr.make(env.KV_NAMESPACE, ctx); // ⬇️ create a resource connected to a handler and name it const getLatestPosts = makeResource('posts', getPostsInCategorySince); // ... whatever elese // ⬇️ run the resource, passing in whatever arguments you'd like const posts = await getLatestPosts({ category: 'foobar', since: '2022-01-01' }); // ~> and one would now find a KV entry for // 'posts__cdbdf4617568dc29453d3fee5f5ca79a7713b15f' return new Response(posts, { headers: { 'content-type': 'application/json' } }); }, };

License

MIT © Marais Rossouw

Socket

Product

Subscribe to our newsletter

Get open source security insights delivered straight into your inbox. Be the first to learn about new features and product updates.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc