1 | import Config from "./config";
|
2 |
|
3 | export default abstract class BaseModule {
|
4 | abstract get controllers(): string;
|
5 | abstract get middlewares(): string;
|
6 | abstract get translation(): string;
|
7 | abstract get views(): string;
|
8 | abstract get public(): string;
|
9 | abstract get entities(): string;
|
10 | abstract get migrations(): string;
|
11 |
|
12 | public mount(config: Config) {
|
13 | if (this.controllers) {
|
14 | config.controllersFolders.unshift(this.controllers);
|
15 | }
|
16 | if (this.middlewares) {
|
17 | config.middlewaresFolders.unshift(this.middlewares);
|
18 | }
|
19 | if (this.translation) {
|
20 | config.translationFolders.unshift(this.translation);
|
21 | }
|
22 | if (this.views) {
|
23 | config.viewFolders.unshift(this.views);
|
24 | }
|
25 | if (this.public) {
|
26 | config.publicFolders.unshift(this.public);
|
27 | }
|
28 | if (this.entities) {
|
29 | config.db.entities.unshift(this.entities + "/*.entity.js");
|
30 | }
|
31 | if (this.migrations) {
|
32 | config.migrationsFolders.unshift(this.migrations);
|
33 | }
|
34 | }
|
35 |
|
36 | public onDatabaseConnected() {}
|
37 | }
|