feat(backend): Mechanisme geïmplementeerd om makkelijk repositories te verkrijgen.

This commit is contained in:
Gerald Schmittinger 2025-02-25 00:39:24 +01:00
parent 374de3b21a
commit b730be375c
4 changed files with 26 additions and 11 deletions

View file

@ -0,0 +1,16 @@
import {AnyEntity, EntityName, EntityRepository} from "@mikro-orm/core";
import {forkEntityManager} from "../orm";
import {StudentRepository} from "./users/student-repository";
import {Student} from "../entities/users/student.entity";
function repositoryGetter<T extends AnyEntity, R extends EntityRepository<T>>(entity: EntityName<T>): () => R {
let cachedRepo: R | undefined;
return (): R => {
if (!cachedRepo) {
cachedRepo = forkEntityManager().getRepository(entity) as R;
}
return cachedRepo;
}
}
export const getStudentRepository = repositoryGetter<Student, StudentRepository>(Student);