Skip to content

@happ-integ/cache

Тонкая обёртка над @happ-integ/kv для кэширования.

Установка

bash
pnpm add @happ-integ/cache

Использование

typescript
import { Cache } from "@happ-integ/cache";

const cache = new Cache({
	project: "sofa:cache",
	kv: env.KV,
});

Базовые операции

typescript
// Set с TTL (1 час)
await cache.set("user:123", { name: "John" }, 3600);

// Get
const user = await cache.get<User>("user:123");

// Delete
await cache.delete("user:123");

Cache-Aside Pattern

typescript
// Получить из кэша или выполнить функцию
const data = await cache.cacheAside(
	"expensive:key",
	3600, // TTL в секундах
	async () => {
		// Эта функция выполнится только если кэш пуст
		return await expensiveOperation();
	}
);

Health Check

typescript
const isHealthy = await cache.healthCheck();

API

Cache

typescript
new Cache(config: ICacheConfig)

Config:

ПараметрТипОписание
kvKVNamespaceKV binding из env
projectstringИмя проекта (для префиксов)

Методы

get<T>(key): Promise<T | null>

set(key, value, ttlSeconds?): Promise<void>

delete(key): Promise<void>

cacheAside<T>(key, ttl, fn): Promise<T>

healthCheck(): Promise<boolean>