npm.io
7.1.1 • Published 3 weeks ago

at-decorators

Licence
Apache-2.0
Version
7.1.1
Deps
0
Size
199 kB
Vulns
0
Weekly
0
Stars
1

at-decorators

Test semantic-release

A set of general-purpose decorators written in TypeScript following tc39/proposal-decorators (Stage 3).

Clearable memoize groups

Use createMemoizeCacheGroup when a feature needs both a memoized function/decorator and an explicit invalidation hook.

import { createMemoizeCacheGroup } from 'at-decorators';

const usersCache = createMemoizeCacheGroup({
  cacheDuration: 24 * 60 * 60 * 1000,
  maxCacheSizePerTarget: 10_000,
});

export const memoizeForUsers = usersCache.memoize;
export const clearCachesForUsers = usersCache.clear;

Use getGlobalMemoizeCacheStore when several route bundles or module instances must clear the same cache groups.

import { createMemoizeCacheGroup, getGlobalMemoizeCacheStore } from 'at-decorators';

const cacheStore = getGlobalMemoizeCacheStore(Symbol.for('myAppMemoizeCacheStore'), ['headers', 'users'] as const);

const headersCache = createMemoizeCacheGroup({
  cacheDuration: 10 * 60 * 1000,
  caches: cacheStore.headers,
  maxCacheSizePerTarget: 1000,
});

export const memoizeForHeaders = headersCache.memoize;
export const clearCachesForHeaders = headersCache.clear;