Type Alias IDatabaseCacheAdapter<TType>

IDatabaseCacheAdapter: {
    find(
        context: IReadableContext,
        key: string,
    ): Promise<null | ICacheData<TType>>;
    removeAll(context: IReadableContext): Promise<void>;
    removeByKeyPrefix(context: IReadableContext, prefix: string): Promise<void>;
    removeMany(
        context: IReadableContext,
        keys: string[],
    ): Promise<ICacheDataExpiration[]>;
    transaction<TValue>(
        context: IReadableContext,
        trxFn: InvokableFn<
            [trx: IDatabaseCacheTransaction<TType>],
            Promise<TValue>,
        >,
    ): Promise<TValue>;
    update(
        context: IReadableContext,
        key: string,
        value: TType,
    ): Promise<null | ICacheDataExpiration>;
}

Database cache adapter contract for implementing cache persistence in SQL/document databases. Simplifies cache adapter development using transactional CRUD patterns.

Suitable for:

  • SQL databases (PostgreSQL, MySQL) with TypeORM or MikroORM
  • Document databases with transaction support
  • Any backend with atomic transaction capability and CRUD operations

The adapter handles:

  • Key-value cache storage with expiration tracking
  • Atomic transactions for consistency
  • Batch operations (remove many, remove by prefix)
  • Cache expiration management

Type Parameters

  • TType = unknown

    The type of values cached (defaults to unknown)

    IMPORT_PATH: "@daiso-tech/core/cache/contracts"

Type declaration