UNPKG

@satoshibits/cache-keys

Version:
59 lines 1.39 kB
/** * Generic ID type that replaces MongoDB's ObjectId * Supports strings, numbers, or any object with a toString method */ export type ID = string | number | { toString(): string; }; /** * Base interface for cache key factories */ export interface CacheKeyFactory<T extends string = string, TArgs extends readonly unknown[] = unknown[]> { /** * Generate a cache key */ key(...args: TArgs): T; /** * Parse a cache key back into its components */ parse(key: T): Record<string, string> | null; /** * Check if a key matches this factory's pattern */ matches(key: string): key is T; /** * Get all keys matching this factory's pattern (for cache invalidation) */ pattern(): string; } /** * Options for key sanitization */ export interface SanitizeOptions { /** * Whether to allow colons in the key component * @default false */ allowColons?: boolean; /** * Custom encoding function * @default base64url encoding */ encoder?: (value: string) => string; } /** * Cache key builder options */ export interface KeyBuilderOptions { /** * Separator between key components * @default ':' */ separator?: string; /** * Whether to sanitize components * @default true */ sanitize?: boolean; } //# sourceMappingURL=types.d.mts.map