JSPM

  • Created
  • Published
  • Downloads 38499
  • Score
    100M100P100Q206231F
  • License Apache-2.0

Arcjet cache interface and implementations

Package Exports

  • @arcjet/cache
  • @arcjet/cache/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@arcjet/cache) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Arcjet Logo

@arcjet/cache

npm badge

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/cache

Use

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.

License

Apache License, Version 2.0 © Arcjet Labs, Inc.