UNPKG

@credo-ts/core

Version:

<p align="center"> <br /> <img alt="Credo Logo" src="https://github.com/openwallet-foundation/credo-ts/blob/c7886cb8377ceb8ee4efe8d264211e561a75072d/images/credo-logo.png" height="250px" /> </p> <h1 align="center"><b>Credo - Core</b></h1

61 lines • 3.01 kB
import { BaseRecord } from "./BaseRecord.mjs"; import { BaseRecordConstructor, Query, QueryOptions, StorageService } from "./StorageService.mjs"; import { EventEmitter } from "../agent/EventEmitter.mjs"; import { AgentContext } from "../agent/context/AgentContext.mjs"; import "../agent/index.mjs"; //#region src/storage/Repository.d.ts export declare class Repository<T extends BaseRecord<any, any, any>> { private storageService; private recordClass; private eventEmitter; constructor(recordClass: BaseRecordConstructor<T>, storageService: StorageService<T>, eventEmitter: EventEmitter); private getStorageService; supportsLocking(agentContext: AgentContext): boolean; /** @inheritDoc {StorageService#save} */ save(agentContext: AgentContext, record: T): Promise<void>; /** @inheritDoc {StorageService#update} */ update(agentContext: AgentContext, record: T): Promise<void>; /** @inheritDoc {StorageService#updateByIdWithLock} */ updateByIdWithLock(agentContext: AgentContext, id: string, updateCallback: (record: T) => Promise<T>): Promise<T>; /** @inheritDoc {StorageService#delete} */ delete(agentContext: AgentContext, record: T): Promise<void>; /** * Delete record by id. Throws {RecordNotFoundError} if no record is found * @param id the id of the record to delete * @returns */ deleteById(agentContext: AgentContext, id: string): Promise<void>; /** @inheritDoc {StorageService#getById} */ getById(agentContext: AgentContext, id: string): Promise<T>; /** * Find record by id. Returns null if no record is found * @param id the id of the record to retrieve * @returns */ findById(agentContext: AgentContext, id: string): Promise<T | null>; /** @inheritDoc {StorageService#getAll} */ getAll(agentContext: AgentContext): Promise<T[]>; /** @inheritDoc {StorageService#findByQuery} */ findByQuery(agentContext: AgentContext, query: Query<T>, queryOptions?: QueryOptions): Promise<T[]>; /** * Find a single record by query. Returns null if not found. * @param query the query * @param cacheKey optional cache key to use for caching. By default query results are not cached, but if a cache key is provided * as well as the record allows caching and the agent has a cached storage service enabled it will use the cache. * @returns the record, or null if not found * @throws {RecordDuplicateError} if multiple records are found for the given query */ findSingleByQuery(agentContext: AgentContext, query: Query<T>, { cacheKey }?: { cacheKey?: string; }): Promise<T | null>; /** * Find a single record by query. Throws if not found * @param query the query * @returns the record * @throws {RecordDuplicateError} if multiple records are found for the given query * @throws {RecordNotFoundError} if no record is found for the given query */ getSingleByQuery(agentContext: AgentContext, query: Query<T>): Promise<T>; } //#endregion //# sourceMappingURL=Repository.d.mts.map