synapse-storage
Version:
Набор инструментов для управления состоянием и апи-запросами
31 lines (30 loc) • 1.18 kB
TypeScript
import { StorageKey, StorageKeyType } from '../../core/storage/utils/storage-key';
export interface CacheMetadata {
createdAt: number;
updatedAt: number;
expiresAt: number;
tags?: string[];
}
export interface CacheOptions {
ttl?: number;
cleanup?: {
enabled: boolean;
interval?: number;
};
invalidateOnError?: boolean;
}
export interface CacheEntry<Data, Params extends Record<string, any> = any> {
data: Data;
metadata: CacheMetadata;
params: Params;
}
export declare class CacheUtils {
static createMetadata(ttl?: number, tags?: string[]): CacheMetadata;
/** ISO timestamps are derived lazily (for logging/debugging) instead of being stored in the cache payload. */
static formatDateTime(timestamp: number): string;
static isExpired(metadata: CacheMetadata): boolean;
static updateMetadata(metadata: CacheMetadata): CacheMetadata;
static createKey(...parts: (string | number)[]): StorageKey;
static createApiKey(endpoint: string, params?: Record<string, any>): [StorageKeyType, Record<string, any> | undefined];
static hasAnyTag(metadata: CacheMetadata, tags?: string[]): boolean;
}