@push.rocks/smartdata
Version:
An advanced library for NoSQL data organization and manipulation using TypeScript with support for MongoDB, data validation, collections, and custom data types.
28 lines (27 loc) • 849 B
TypeScript
import { SmartDataDbDoc } from './classes.doc.js';
/**
* Common TTL values in milliseconds for cache-like documents.
*/
export declare const smartdataTtlValues: {
readonly HOURS_1: number;
readonly HOURS_24: number;
readonly DAYS_7: number;
readonly DAYS_30: number;
readonly DAYS_90: number;
};
/**
* Base class for SmartData documents that should expire after an absolute date.
*/
export declare abstract class SmartdataCachedDocument<T extends SmartdataCachedDocument<T>> extends SmartDataDbDoc<T, T> {
createdAt: Date;
expiresAt?: Date;
lastAccessedAt: Date;
setTTL(ttlMs: number): void;
setTTLDays(days: number): void;
setTTLHours(hours: number): void;
isExpired(): boolean;
touch(): void;
getRemainingTTL(): number;
extendTTL(ttlMs: number): void;
setNeverExpires(): void;
}