Options
All
  • Public
  • Public/Protected
  • All
Menu

A storage that wraps around another storage and expires resources based on the given (optional) expiry date. Will delete expired entries when trying to get their value. Has a timer that will delete all expired data every hour (default value).

Type parameters

  • TKey

  • TValue

Hierarchy

  • WrappedExpiringStorage

Implements

Index

Constructors

constructor

Properties

Protected Readonly logger

logger: Logger = ...

Private Readonly source

source: KeyValueStorage<TKey, Expires<TValue>>

Private Readonly timer

timer: Timeout

Methods

delete

  • delete(key: TKey): Promise<boolean>

entries

  • entries(): AsyncIterableIterator<[TKey, TValue]>

finalize

  • finalize(): Promise<void>

get

  • get(key: TKey): Promise<undefined | TValue>

Private getUnexpired

  • getUnexpired(key: TKey): Promise<undefined | TValue>
  • Tries to get the data for the given key. In case the data exists but has expired, it will be deleted and undefined will be returned instead.

    Parameters

    • key: TKey

    Returns Promise<undefined | TValue>

has

  • has(key: TKey): Promise<boolean>

Private isExpired

  • isExpired(expires?: Date): boolean

Private removeExpiredEntries

  • removeExpiredEntries(): Promise<void>

set

Private toData

  • toData(expireData: Expires<TValue>): { expires?: Date; payload: TValue }

Private toExpires

  • toExpires(data: TValue, expires?: Date): Expires<TValue>