nukak
Version:
flexible and efficient ORM, with declarative JSON syntax and smart type-safety
21 lines (20 loc) • 1.17 kB
TypeScript
import type { IdValue, Querier, QueryOptions, Repository, Type, QuerySearch, QueryOne, Query, QueryConflictPaths } from '../type/index.js';
export declare class GenericRepository<E> implements Repository<E> {
readonly entity: Type<E>;
readonly querier: Querier;
constructor(entity: Type<E>, querier: Querier);
findOneById(id: IdValue<E>, q?: QueryOne<E>): Promise<E>;
findOne(q: QueryOne<E>): Promise<E>;
findMany(q: Query<E>): Promise<E[]>;
findManyAndCount(q: Query<E>): Promise<[E[], number]>;
count(q?: QuerySearch<E>): Promise<number>;
insertOne(payload: E): Promise<IdValue<E>>;
upsertOne(conflictPaths: QueryConflictPaths<E>, payload: E): Promise<import("../type/query.js").QueryUpdateResult>;
insertMany(payload: E[]): Promise<IdValue<E>[]>;
updateOneById(id: IdValue<E>, payload: E): Promise<number>;
updateMany(qm: QuerySearch<E>, payload: E): Promise<number>;
saveOne(payload: E): Promise<IdValue<E>>;
saveMany(payload: E[]): Promise<IdValue<E>[]>;
deleteOneById(id: IdValue<E>, opts?: QueryOptions): Promise<number>;
deleteMany(qm: QuerySearch<E>, opts?: QueryOptions): Promise<number>;
}