import { ILoadResult } from "./ILoadResult.js"; export interface IRepository{ /** * Recupera registros do repositório * * @param filterFunction - Teste para determinar se um registro está no universo desejado * @param sortingFunction - Critério comparação para ordenação * @param offset - Determina que o resultado descarta os registros iniciais * @param limit - Descarta o resultado a partir de uma quantidade de registros * @returns Promessa de um array que satisfaça aos critérios informados */ load(filterFunction?: (value: T) => boolean, sortingFunction?: (itemA: T, itemB: T) => number, offset?: number, limit?: number): Promise>; /** * * Itera todos os items colecionando os valores distintos. * * @param itemProcessor - Uma função que processa um item e gera a chave e valor * @returns Promessa de array com os valores distintos. */ distict(itemProcessor: (item: T) => {key: string, value: any}): Promise>; /** * Adiciona registros no final do repositório * * @param items - Os items a serem adicionados * @returns Promessa de execução */ push(items: Array): Promise; /** * Limpa todo o repositório * * @returns Promessa de execução */ clear(): Promise; /** * Remove itens do repositório * * @param items - Os itens a serem removidos * @returns Promessa de execução */ delete(items: Array): Promise; /** * Altera itens já persistido no repositório * * @param items - Os itens a serem alterados * @returns Promessa de execução */ update(items: Array): Promise; /** * Insere itens em uma posição de referência * * @param itemReference - O item posterior aos inseridos * @param items - Os itens a serem inseridos * @returns Promessa de execução */ insert(itemReference: T, items: Array): Promise; /** * Determina se o repositório está em condições normais de funcionamento. * Caso o banco tenha sido excluido, retorna false. */ isOperating(): boolean; /** * Determina se o repositório está vazio ou ainda não foi criado. */ isEmpty(): Promise; /** * Conta os itens do repositório * * @returns Promessa de quantidade */ count(): Promise; /** * Retorna todos os registros que estão em cache no momento * * @returns Todos registros que estão em cache no momento */ getFromCache(): Array | undefined }