@jsgurucompany/jsg-nestjs-common
Version:
Initial README.md
22 lines (21 loc) • 1.24 kB
TypeScript
import { Model } from 'sequelize-typescript';
import { FindOptions, FindAndCountOptions, UpdateOptions } from 'sequelize';
import { ModelCreationAttributes, ModelPayload, BaseModelType, PaginationParams, ResultsWithCountSet } from './type';
export declare abstract class BaseRepository<T extends Model<T>> {
protected readonly model: BaseModelType<T>;
maxLimit: number;
defaultLimit: number;
defaultOffset: number;
protected constructor(model: BaseModelType<T>);
protected resolveLimit(limit?: number): number;
findAll(options?: FindOptions<T>): Promise<T[]>;
findAndCountAll(options?: FindAndCountOptions<ModelCreationAttributes<T>>): Promise<ResultsWithCountSet<T>>;
findPaginated(paginationParams: PaginationParams, options?: FindAndCountOptions<ModelCreationAttributes<T>>): Promise<ResultsWithCountSet<T>>;
findOneById(id: string): Promise<T>;
findOne(options?: FindOptions<T>): Promise<T>;
create(payload: ModelPayload<T>): Promise<T>;
createMany(payload: ModelPayload<T>[]): Promise<T[]>;
update(id: string, payload: ModelPayload<T>): Promise<T>;
updateMany(options: UpdateOptions, payload: ModelPayload<T>): Promise<void>;
remove(id: string | string[]): Promise<void>;
}