UNPKG

1.09 kBPlain TextView Raw
1import { IModule, Middleware } from "./types";
2import { Controller } from "./controller";
3import { Plugin } from "./plugin";
4import { Repository } from "./repository";
5
6export 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
27const defaultControllers = [
28 new Controller("/", (server, opts, next) => {
29 server.get("/", async () => ({
30 message: "Welcome to the Iguazu Framework"
31 }));
32 })
33];
34
35const defaultPlugins = [new Plugin(require("fastify-helmet"))];
36
37export const DefaultModule = new Module(
38 "Default",
39 defaultControllers,
40 [],
41 [],
42 defaultPlugins
43);