1 | import { IModule, Middleware } from "./types";
|
2 | import { Controller } from "./controller";
|
3 | import { Plugin } from "./plugin";
|
4 | import { Repository } from "./repository";
|
5 |
|
6 | export class Module implements IModule {
|
7 | public name: string;
|
8 | public controllers: Controller[];
|
9 | public repositories: Repository[];
|
10 | public middlewares?: Middleware[];
|
11 | public plugins?: Plugin[];
|
12 | constructor(
|
13 | name: string = "Anonymous Controller",
|
14 | controllers: Controller[],
|
15 | repositories: Repository[] = [],
|
16 | middlewares: Middleware[] = [],
|
17 | plugins: Plugin[] = []
|
18 | ) {
|
19 | this.name = name;
|
20 | this.controllers = controllers;
|
21 | this.middlewares = middlewares;
|
22 | this.repositories = repositories;
|
23 | this.plugins = plugins;
|
24 | }
|
25 | }
|
26 |
|
27 | const defaultControllers = [
|
28 | new Controller("/", (server, opts, next) => {
|
29 | server.get("/", async () => ({
|
30 | message: "Welcome to the Iguazu Framework"
|
31 | }));
|
32 | })
|
33 | ];
|
34 |
|
35 | const defaultPlugins = [new Plugin(require("fastify-helmet"))];
|
36 |
|
37 | export const DefaultModule = new Module(
|
38 | "Default",
|
39 | defaultControllers,
|
40 | [],
|
41 | [],
|
42 | defaultPlugins
|
43 | );
|