mikro-orm-find-dataloader
Version:
Additional dataloaders for the MikroORM EntityManager find/findOne/etc methods.
35 lines (34 loc) • 3.92 kB
TypeScript
import { EntityRepository, type EntityManager, type FindOptions, type Loaded, type EntityName, type FilterQuery, type FindOneOptions, type FindOneOrFailOptions } from "@mikro-orm/core";
import { type FilterQueryDataloader } from "./findDataloader";
export interface IFindDataloaderEntityRepository<Entity extends object, D extends boolean> extends EntityRepository<Entity> {
readonly dataloader: D;
find<Hint extends string = never, Fields extends string = "*", Excludes extends string = never>(where: FilterQuery<Entity>, options?: {
dataloader: false;
} & FindOptions<Entity, Hint, Fields, Excludes>): Promise<Array<Loaded<Entity, Hint, Fields, Excludes>>>;
find<Hint extends string = never, Fields extends string = "*", Excludes extends string = never>(where: FilterQueryDataloader<Entity>, options?: {
dataloader: boolean;
} & Pick<FindOptions<Entity, Hint, Fields, Excludes>, "populate">): Promise<Array<Loaded<Entity, Hint, Fields, Excludes>>>;
find<Hint extends string = never, Fields extends string = "*", Excludes extends string = never>(where: D extends true ? FilterQueryDataloader<Entity> : FilterQueryDataloader<Entity> | FilterQuery<Entity>, options?: {
dataloader?: undefined;
} & (D extends true ? Pick<FindOptions<Entity, Hint, Fields, Excludes>, "populate"> : FindOptions<Entity, Hint, Fields, Excludes>)): Promise<Array<Loaded<Entity, Hint, Fields, Excludes>>>;
findOne<Hint extends string = never, Fields extends string = "*", Excludes extends string = never>(where: FilterQuery<Entity>, options?: {
dataloader: false;
} & FindOneOptions<Entity, Hint, Fields, Excludes>): Promise<Loaded<Entity, Hint, Fields, Excludes> | null>;
findOne<Hint extends string = never, Fields extends string = "*", Excludes extends string = never>(where: FilterQueryDataloader<Entity>, options?: {
dataloader: boolean;
} & Pick<FindOneOptions<Entity, Hint, Fields, Excludes>, "populate">): Promise<Loaded<Entity, Hint, Fields, Excludes> | null>;
findOne<Hint extends string = never, Fields extends string = "*", Excludes extends string = never>(where: D extends true ? FilterQueryDataloader<Entity> : FilterQueryDataloader<Entity> | FilterQuery<Entity>, options?: {
dataloader?: undefined;
} & (D extends true ? Pick<FindOneOptions<Entity, Hint, Fields, Excludes>, "populate"> : FindOneOptions<Entity, Hint, Fields, Excludes>)): Promise<Loaded<Entity, Hint, Fields, Excludes> | null>;
findOneOrFail<Hint extends string = never, Fields extends string = "*", Excludes extends string = never>(where: FilterQuery<Entity>, options?: {
dataloader: false;
} & FindOneOrFailOptions<Entity, Hint, Fields, Excludes>): Promise<Loaded<Entity, Hint, Fields, Excludes>>;
findOneOrFail<Hint extends string = never, Fields extends string = "*", Excludes extends string = never>(where: FilterQueryDataloader<Entity>, options?: {
dataloader: boolean;
} & Pick<FindOneOrFailOptions<Entity, Hint, Fields, Excludes>, "populate">): Promise<Loaded<Entity, Hint, Fields, Excludes>>;
findOneOrFail<Hint extends string = never, Fields extends string = "*", Excludes extends string = never>(where: D extends true ? FilterQueryDataloader<Entity> : FilterQueryDataloader<Entity> | FilterQuery<Entity>, options?: {
dataloader?: undefined;
} & (D extends true ? Pick<FindOneOrFailOptions<Entity, Hint, Fields, Excludes>, "populate"> : FindOneOrFailOptions<Entity, Hint, Fields, Excludes>)): Promise<Loaded<Entity, Hint, Fields, Excludes>>;
}
export type FindDataloaderEntityRepositoryCtor<Entity extends object, D extends boolean> = new (em: EntityManager, entityName: EntityName<Entity>) => IFindDataloaderEntityRepository<Entity, D>;
export declare function getFindDataloaderEntityRepository<Entity extends object, D extends boolean>(defaultEnabled: D): FindDataloaderEntityRepositoryCtor<Entity, D>;