Files
skills/docs/persistence/cache/cache/README.md
2026-05-29 08:20:56 +01:00

9.4 KiB

@suaveplan/cache - Type-safe caching abstraction: LRU/LFU/FIFO/TTL MemoryCache, NamespacedCache, CacheFactory, stale-while-revalidate, multi-get/set, lifecycle events, injectable clock, OTel instrumentation, and structured CACHE.* error codes.

Summary

Type-safe caching abstraction for Suaveplan. Provides MemoryCache with LRU/LFU/FIFO/TTL eviction, NamespacedCache for shared-storage isolation, a CacheFactory with module-augmentation-based provider registry, stale-while-revalidate, multi-get/set, injectable clock and event bus, OTel instrumentation, and structured CACHE.* error codes.

Documentation tree

- [abstract-cache](./src/abstract/abstract-cache/abstract-cache.md) — _(no submodules)_- [namespaced-cache](./src/abstract/namespaced-cache/namespaced-cache.md) — _(no submodules)_- [namespaced-cache](./src/abstract/namespaced-cache/namespaced-cache.md) — _(no submodules)_- [errors](./src/errors/cache-error.md) — _(no submodules)_- [cache-error](./src/errors/cache-error.md) — _(no submodules)_- [cache](./src/factory/cache/cache.md) — _(no submodules)_- [cache](./src/factory/cache/cache.md) — _(no submodules)_- [registry](./src/factory/registry/registry.md) — _(no submodules)_- [registry](./src/factory/registry/registry.md) — _(no submodules)_- [memory-cache](./src/memory/memory-cache/memory-cache.md) — _(no submodules)_- [memory-cache](./src/memory/memory-cache/memory-cache.md) — _(no submodules)_- [common](./src/types/common.md) — Centralises all shared TypeScript types and interfaces for `@suaveplan/cache`. Keeping types in one file prevents circu…
  • schemas — Provides Zod validation schemas for all public option types in @suaveplan/cache. These schemas run at configuration b…
  • abstract-cache — (no submodules)- namespaced-cache — (no submodules)- namespaced-cache — (no submodules)- errors — (no submodules)- cache-error — (no submodules)- cache — (no submodules)- cache — (no submodules)- registry — (no submodules)- registry — (no submodules)- memory-cache — (no submodules)- memory-cache — (no submodules)- common — Centralises all shared TypeScript types and interfaces for @suaveplan/cache. Keeping types in one file prevents circu…
  • schemas — Provides Zod validation schemas for all public option types in @suaveplan/cache. These schemas run at configuration b…
  • abstract-cache — (no submodules)- namespaced-cache — (no submodules)- namespaced-cache — (no submodules)- errors — (no submodules)- cache-error — (no submodules)- cache — (no submodules)- cache — (no submodules)- registry — (no submodules)- registry — (no submodules)- memory-cache — (no submodules)- memory-cache — (no submodules)- common — Centralises all shared TypeScript types and interfaces for @suaveplan/cache. Keeping types in one file prevents circu…
  • schemas — Provides Zod validation schemas for all public option types in @suaveplan/cache. These schemas run at configuration b…
  • abstract-cache — (no submodules)- namespaced-cache — (no submodules) - namespaced-cache — (no submodules)- errors — (no submodules) - cache-error — (no submodules)- cache — (no submodules) - cache — (no submodules)- registry — (no submodules) - registry — (no submodules)- memory-cache — (no submodules) - memory-cache — (no submodules)- common — Centralises all shared TypeScript types and interfaces for @suaveplan/cache. Keeping types in one file prevents circu…
  • schemas — Provides Zod validation schemas for all public option types in @suaveplan/cache. These schemas run at configuration b…

Packages

Module Description
errors/cache-error CacheError class and CACHE_CODES registry
types/common Shared TypeScript types and CacheProviderRegistry extension point
types/schemas Zod validation schemas for all option types
abstract/abstract-cache AbstractCache<T> base class with wrap, getMultiple, setMultiple
abstract/namespaced-cache NamespacedCache<T> key-prefix wrapper
memory/memory-cache MemoryCache<T> with LRU/LFU/FIFO/TTL eviction
factory/cache-factory CacheFactory and free-function registry API
factory/registry Built-in memory provider registration

Quick Start

import { MemoryCache } from "@suaveplan/cache";

const cache = new MemoryCache<string>({ maxSize: 500, defaultTTL: 60_000 });
await cache.set("user:1", "Alice");
const alice = await cache.get("user:1"); // "Alice"

// wrap — get-or-compute
const data = await cache.wrap("expensive:key", async () => {
  return await fetchSomeData();
}, { ttl: 30_000 });