UNPKG

@loopback/repository

Version:

Define and implement a common set of interfaces for interacting with databases

78 lines (77 loc) 3.06 kB
import { Filter } from '@loopback/filter'; import { Class, Options } from '../common-types'; import { Entity, EntityData } from '../model'; import { Connector } from './connector'; /** * Key/Value operations for connector implementations */ export interface KVConnector<T extends Entity> extends Connector { /** * Delete an entry by key * @param modelClass - Model class * @param key - Key for the entry * @param options - Options for the operation * @returns Promise<true> if an entry is deleted for the id, otherwise * Promise<false> */ delete(modelClass: Class<Entity>, key: string, options?: Options): Promise<boolean>; /** * Delete all entries * @param modelClass - Model class * @param options - Options for the operation * @returns A promise of the number of entries deleted */ deleteAll(modelClass: Class<Entity>, options?: Options): Promise<number>; /** * Get an entry by key * @param modelClass - Model class * @param key - Key for the entry * @param options - Options for the operation * @returns A promise of the entry found for the key */ get(modelClass: Class<Entity>, key: string, options?: Options): Promise<T>; /** * Set an entry with key/value * @param modelClass - Model class * @param key - Key for the entry * @param value - Value for the entry * @param options - Options for the operation * @returns Promise<true> if an entry is set for the key, otherwise * Promise<false> */ set(modelClass: Class<Entity>, key: string, value: EntityData, options?: Options): Promise<boolean>; /** * Set up ttl for an entry by key * @param modelClass - Model class * @param key - Key for the entry * @param options - Options for the operation * @returns Promise<true> if an entry is configured for the key, otherwise * Promise<false> */ expire(modelClass: Class<Entity>, key: string, ttl: number, options?: Options): Promise<boolean>; /** * Get ttl for an entry by key * @param modelClass - Model class * @param key - Key for the entry * @param ttl - Time to live in millisenconds * @param options - Options for the operation * @returns A promise of the TTL value */ ttl?(modelClass: Class<Entity>, key: string, ttl: number, options?: Options): Promise<number>; /** * Fetch all keys * @param modelClass - Model class * @param key - Key for the entry * @param options - Options for the operation * @returns A promise of an array of keys for all entries */ keys?(modelClass: Class<Entity>, options?: Options): Promise<string[]>; /** * Get an Iterator for matching keys * @param modelClass - Model class * @param filter - Matching filter * @param options - Options for the operation * @returns A promise of an iterator of entries */ iterateKeys?(modelClass: Class<Entity>, filter?: Filter, options?: Options): Promise<Iterator<T>>; }