Skip to main content
Module

x/mandarinets/orm-core/repository/mandarineRepository.ts

Mandarine.TS is a typescript, decorator-driven framework that allows you to create server-side applications. Mandarine.TS provides a range of built-in solutions such as Dependency Injection, Components, ORM and more. Under its umbrella, Mandarine.TS has 4 modules: Core, Data, Security and MVC, these modules will offer you the requirements to build a Mandarine-powered application.
Latest
File
// Copyright 2020-2020 The Mandarine.TS Framework authors. All rights reserved. MIT license.
import { ApplicationContext } from "../../main-core/application-context/mandarineApplicationContext.ts";import type { Mandarine } from "../../main-core/Mandarine.ns.ts";
export type RepositoryModeler = { instance: any, object: any, entity: Mandarine.ORM.Entity.Table | undefined};

/*** Repositories must extend to this class.* This class makes interaction beetween the database layer & mandarine engine possible.* This class is generic where T equals your model.* This class has a parameter in its constructor, which should be your model's instance.** ``` @Repository() abstract class usersRepository extends MandarineRepository<MyModel> { constructor() { super(MyModel); } } ``` */ export abstract class MandarineRepository<T> {
private modeler: RepositoryModeler;
constructor(TCreator: { new (): T; }) { this.modeler = { instance: TCreator, object: new TCreator(), entity: undefined }; this.modeler.entity = ApplicationContext.getInstance().getEntityManager().entityRegistry.findEntityByInstanceType(this.modeler.instance); }
public getModeler(): RepositoryModeler { return this.modeler; }
public save(model: Partial<T>) {} public findAll() {} public deleteAll() {} public countAll() {}
}