1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | var IO = require("socket.io");
|
4 | var fastify = require("fastify");
|
5 | var dotenv = require("dotenv");
|
6 | var module_1 = require("./module");
|
7 | function registerPlugins(server, plugins) {
|
8 | plugins.forEach(function (plugin) {
|
9 | server.register(plugin.handler, plugin.options);
|
10 | });
|
11 | }
|
12 | function registerControllers(server, controllers) {
|
13 | controllers.forEach(function (controller) {
|
14 | server.register(controller.handler, { prefix: controller.path });
|
15 | });
|
16 | }
|
17 | function registerRepositories(server, repositories) {
|
18 | repositories.forEach(function (repository) {
|
19 | server.register(repository.controller.handler, {
|
20 | prefix: repository.controller.path
|
21 | });
|
22 | });
|
23 | }
|
24 | function registerModules(server, modules, wss) {
|
25 | modules.forEach(function (module) {
|
26 | var plugins = module.plugins, controllers = module.controllers, repositories = module.repositories;
|
27 | if (wss) {
|
28 | registerWebsockets(wss, repositories);
|
29 | }
|
30 | registerPlugins(server, plugins);
|
31 | registerControllers(server, controllers);
|
32 | registerRepositories(server, repositories);
|
33 | });
|
34 | }
|
35 | function registerWebsockets(wss, repositories) {
|
36 | repositories.forEach(function (repo) {
|
37 | if (!repo.websocket) {
|
38 | return;
|
39 | }
|
40 | wss.on("connection", function (socket) {
|
41 | repo.model.findAll().then(function (all) {
|
42 | socket.emit("" + repo.name, all);
|
43 | });
|
44 | });
|
45 | });
|
46 | }
|
47 | function startServer(port, server) {
|
48 | server.listen(port, function (error) {
|
49 | if (error) {
|
50 | server.log.error(error);
|
51 | process.exit(1);
|
52 | return;
|
53 | }
|
54 | server.log.info(" > Server running on PORT " + port);
|
55 | return;
|
56 | });
|
57 | }
|
58 | function bootstrap(_a) {
|
59 | var modules = _a.modules;
|
60 | dotenv.config();
|
61 | var port = process.env.PORT || "3000";
|
62 | var server = fastify();
|
63 | var wss = IO(server.server);
|
64 | modules = [module_1.DefaultModule].concat(modules);
|
65 | registerModules(server, modules, wss);
|
66 | return startServer(port, server);
|
67 | }
|
68 | exports.bootstrap = bootstrap;
|