Skip to main content
Dotset CLI API Documentation / index / LRUCacheOptions

Interface: LRUCacheOptions

Defined in: src/shield/utils/cache.ts:34 Caching Module LRU caching and memoization for performance optimization.

Example

import {
  LRUCache,
  memoize,
  memoizeAsync,
  getPatternCacheMetrics,
} from '@dotsetlabs/cli';

// Create an LRU cache
const cache = new LRUCache<string, RegExp>({ maxSize: 1000 });
cache.set('aws-key', /AKIA[A-Z0-9]{16}/g);

// Memoize expensive functions
const parsePattern = memoize((pattern: string) => {
  return new RegExp(pattern, 'gi');
});

// Memoize async functions
const fetchSecrets = memoizeAsync(async (key: string) => {
  return await secretsManager.getValue(key);
}, { ttlMs: 60000 });

// Check cache performance
const metrics = getPatternCacheMetrics();
console.log(`Cache hit rate: ${metrics.hitRate}%`);

Properties

defaultTtl?

optional defaultTtl: number;
Defined in: src/shield/utils/cache.ts:38 Default TTL in milliseconds (optional)

enableMetrics?

optional enableMetrics: boolean;
Defined in: src/shield/utils/cache.ts:40 Enable metrics collection (default: true)

maxMemoryBytes?

optional maxMemoryBytes: number;
Defined in: src/shield/utils/cache.ts:44 Maximum memory size in bytes (optional)

maxSize?

optional maxSize: number;
Defined in: src/shield/utils/cache.ts:36 Maximum number of entries (default: 100)

onEvict()?

optional onEvict: <T>(key, value) => void;
Defined in: src/shield/utils/cache.ts:42 Called when entry is evicted

Type Parameters

T
T

Parameters

key
unknown
value
T

Returns

void

sizeOf()?

optional sizeOf: <T>(value) => number;
Defined in: src/shield/utils/cache.ts:46 Function to estimate entry size in bytes

Type Parameters

T
T

Parameters

value
T

Returns

number