@arcjet/cache
v1.0.0
Published
Arcjet cache interface and implementations
Readme
@arcjet/cache
Arcjet cache interface and implementations.
What is this?
This is an internal utility to help us cache some things in memory.
When should I use this?
This is an internal Arcjet package not designed for public use. See our Get started guide for how to use Arcjet in your application.
Install
This package is ESM only. Install with npm in Node.js:
npm install @arcjet/cacheUse
import { setTimeout } from "node:timers/promises";
import { MemoryCache } from "@arcjet/cache";
const cache = new MemoryCache<string>();
cache.set("namespace", "key", "value", 2);
console.log(await cache.get("namespace", "key"));
// => [ 'value', 2 ]
await setTimeout(2001);
console.log(await cache.get("namespace", "key"));
// => [ undefined, 0 ]API
MemoryCache#constructor()
Instantiate the MemoryCache using new MemoryCache() without any arguments.
MemoryCache#get(namespace: string, key: string): Promise<[T | undefined, number]>
Attempts to retrieve a value from the cache. If a value exists, it will be returned with the remaining time-to-live (in seconds).
Non-string arguments will cause the returned promise to reject.
MemoryCache#set(namespace: string, key: string, value: T, ttl: number): void
Makes a best attempt at storing the value provided until the time-to-live specified.
Non-string arguments will cause the function to throw.
