@decaf-ts/db-decorators
Version:
Agnostic database decorators and repository
26 lines (25 loc) • 1.21 kB
TypeScript
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;
}