UNPKG

@decaf-ts/db-decorators

Version:

Agnostic database decorators and repository

26 lines (25 loc) 1.21 kB
import { Model, ModelConstructor } from "@decaf-ts/decorator-validation"; import { BulkCrudOperator } from "./BulkCrudOperator"; import { RepositoryFlags } from "../repository/types"; import { Context } from "../repository"; /** * @description Repository interface for database operations * @summary Interface holding basic CRUD APIs for database models, providing standard operations and metadata * @template M - Type extending Model * @template F - Type extending RepositoryFlags, defaults to RepositoryFlags * @template C - Type extending Context<F>, defaults to Context<F> * @interface IRepository * @memberOf module:db-decorators */ export interface IRepository<M extends Model<true | false>, F extends RepositoryFlags = RepositoryFlags, C extends Context<F> = Context<F>> extends BulkCrudOperator<M> { /** * @description The constructor of the model class * @summary Reference to the model class constructor used to create new instances */ readonly class: ModelConstructor<M>; /** * @description Primary key property name * @summary The key of the primary identifier property on model M used to uniquely identify records */ readonly pk: keyof M; }