mvp progress

This commit is contained in:
IDONTSUDO 2023-11-10 12:06:40 +03:00
parent 9b16b25187
commit 6446da7e76
75 changed files with 1865 additions and 244 deletions

View file

@ -4,20 +4,23 @@ import cors from "cors";
import locator from "../di/register_di";
import { DevEnv, UnitTestEnv } from "../di/env";
import mongoose from "mongoose";
// import http from "http";
// import { Server } from "socket.io";
import { Server } from "socket.io";
import { createServer } from "http";
import { TypedEvent } from "../helper/typed_event";
import { SocketSubscriber } from "./socket_controller";
export class App {
public app: express.Application;
public port: number;
public env: string;
public computedFolder: string;
// public io:
constructor(routes: Routes[], computedFolder: string) {
this.port = 3000;
public socketSubscribers: SocketSubscriber<any>[];
public io: Server;
constructor(routes: Routes[], socketSubscribers: SocketSubscriber<any>[]) {
this.port = 4001;
this.socketSubscribers = socketSubscribers;
this.env = "dev";
this.app = express();
this.computedFolder = computedFolder;
this.loadAppDependencies().then(() => {
this.initializeMiddlewares();
this.initializeRoutes(routes);
@ -25,26 +28,27 @@ export class App {
}
public listen() {
// const httpServer = new http.Server();
// const io = new Server(httpServer);
const httpServer = createServer(this.app);
const io = new Server(httpServer, {
cors: { origin: "*" },
});
this.app.listen(this.port, () => {
io.on("connection", (socket) => {
this.socketSubscribers.map((el) => {
el.emitter.on((e) => {
socket.emit(el.event, e);
});
});
});
httpServer.listen(this.port, () => {
console.info(`=================================`);
console.info(`======= ENV: ${this.env} =======`);
console.info(`🚀 HTTP http://localhost:${this.port}`);
console.info(`🚀 WS ws://localhost:${this.port}`);
console.info(`=================================`);
});
// io.on("connection", (socket) => {
// socket.on("disconnect", function (msg) {
// console.log("Disconnected");
// });
// });
// setInterval(function () {
// io.emit("goodbye");
// console.log(200);
// }, 1000);
this.io = io;
}
public getServer() {
@ -63,20 +67,17 @@ export class App {
});
}
async loadAppDependencies() {
await locator(
this.env == "development"
? new DevEnv(this.computedFolder)
: new UnitTestEnv(this.computedFolder)
);
// await locator(
// this.env == "development"
// ? new DevEnv(this.computedFolder)
// : new UnitTestEnv(this.computedFolder)
// );
mongoose
.connect("mongodb://127.0.0.1:27017/test")
.then(() => console.log("Connected!"))
.then(() => {})
.catch((e) => {
console.log("ERROR:", e);
});
}
}