Improved folder structures for better maintainability
This commit is contained in:
parent
88820178cf
commit
62b9b4ec5c
12
Dockerfile
12
Dockerfile
@ -2,7 +2,7 @@
|
|||||||
FROM node:22.4.1-alpine
|
FROM node:22.4.1-alpine
|
||||||
|
|
||||||
# Set the working directory in the container
|
# Set the working directory in the container
|
||||||
WORKDIR /usr/src/app
|
WORKDIR /usr/src/
|
||||||
|
|
||||||
# Copy package.json and package-lock.json (if available)
|
# Copy package.json and package-lock.json (if available)
|
||||||
COPY package*.json ./
|
COPY package*.json ./
|
||||||
@ -26,10 +26,10 @@ RUN npm run build
|
|||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|
||||||
# Create a shell script to run migrations and start the application
|
# Create a shell script to run migrations and start the application
|
||||||
RUN echo '#!/bin/sh' > /usr/src/app/start.sh && \
|
RUN echo '#!/bin/sh' > /usr/src/start.sh && \
|
||||||
echo 'npx prisma migrate deploy' >> /usr/src/app/start.sh && \
|
echo 'npx prisma migrate deploy' >> /usr/src/start.sh && \
|
||||||
echo 'node dist/server.js' >> /usr/src/app/start.sh && \
|
echo 'node dist/server.js' >> /usr/src/start.sh && \
|
||||||
chmod +x /usr/src/app/start.sh
|
chmod +x /usr/src/start.sh
|
||||||
|
|
||||||
# Use the shell script as the entry point
|
# Use the shell script as the entry point
|
||||||
CMD ["/usr/src/app/start.sh"]
|
CMD ["/usr/src/start.sh"]
|
@ -1,5 +0,0 @@
|
|||||||
version: '3'
|
|
||||||
services:
|
|
||||||
app:
|
|
||||||
volumes:
|
|
||||||
- ./persistent_data:/usr/src/app/public
|
|
@ -1,5 +1,5 @@
|
|||||||
import { Server } from "socket.io";
|
import { Server } from "socket.io";
|
||||||
import ZoneManager from "../ZoneManager";
|
import ZoneManager from "../managers/ZoneManager";
|
||||||
|
|
||||||
type CommandInput = string[]
|
type CommandInput = string[]
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
import { Server } from "socket.io";
|
import { Server } from "socket.io";
|
||||||
import {TSocket} from "../utilities/Types";
|
import {TSocket} from "../utilities/Types";
|
||||||
import ZoneManager from "../ZoneManager";
|
import ZoneManager from "../managers/ZoneManager";
|
||||||
|
|
||||||
export default function (socket: TSocket, io: Server) {
|
export default function (socket: TSocket, io: Server) {
|
||||||
socket.on('disconnect', (data: any) => {
|
socket.on('disconnect', (data: any) => {
|
@ -1,7 +1,7 @@
|
|||||||
import { Server } from "socket.io";
|
import { Server } from "socket.io";
|
||||||
import {TSocket} from "../../utilities/Types";
|
import {TSocket} from "../../utilities/Types";
|
||||||
import CharacterRepository from "../../repositories/CharacterRepository";
|
import CharacterRepository from "../../repositories/CharacterRepository";
|
||||||
import ZoneManager from "../../ZoneManager";
|
import ZoneManager from "../../managers/ZoneManager";
|
||||||
|
|
||||||
type SocketResponseT = {
|
type SocketResponseT = {
|
||||||
position_x: number,
|
position_x: number,
|
@ -1,7 +1,7 @@
|
|||||||
import { Server } from "socket.io";
|
import { Server } from "socket.io";
|
||||||
import {TSocket} from "../../utilities/Types";
|
import {TSocket} from "../../utilities/Types";
|
||||||
import ZoneRepository from "../../repositories/ZoneRepository";
|
import ZoneRepository from "../../repositories/ZoneRepository";
|
||||||
import ZoneManager from "../../ZoneManager";
|
import ZoneManager from "../../managers/ZoneManager";
|
||||||
import {Character, Zone} from "@prisma/client";
|
import {Character, Zone} from "@prisma/client";
|
||||||
|
|
||||||
/**
|
/**
|
@ -1,7 +1,7 @@
|
|||||||
import { Server } from "socket.io";
|
import { Server } from "socket.io";
|
||||||
import {TSocket} from "../../utilities/Types";
|
import {TSocket} from "../../utilities/Types";
|
||||||
import ZoneRepository from "../../repositories/ZoneRepository";
|
import ZoneRepository from "../../repositories/ZoneRepository";
|
||||||
import ZoneManager from "../../ZoneManager";
|
import ZoneManager from "../../managers/ZoneManager";
|
||||||
import {Character, Zone} from "@prisma/client";
|
import {Character, Zone} from "@prisma/client";
|
||||||
|
|
||||||
interface IPayload {
|
interface IPayload {
|
@ -1,7 +1,7 @@
|
|||||||
import { Server } from "socket.io";
|
import { Server } from "socket.io";
|
||||||
import {TSocket} from "../../../utilities/Types";
|
import {TSocket} from "../../../utilities/Types";
|
||||||
import ZoneRepository from "../../../repositories/ZoneRepository";
|
import ZoneRepository from "../../../repositories/ZoneRepository";
|
||||||
import ZoneManager from "../../../ZoneManager";
|
import ZoneManager from "../../../managers/ZoneManager";
|
||||||
import {Character, Zone} from "@prisma/client";
|
import {Character, Zone} from "@prisma/client";
|
||||||
|
|
||||||
interface IPayload {
|
interface IPayload {
|
@ -1,7 +1,7 @@
|
|||||||
import { Server } from "socket.io";
|
import { Server } from "socket.io";
|
||||||
import {TSocket} from "../../../utilities/Types";
|
import {TSocket} from "../../../utilities/Types";
|
||||||
import ZoneRepository from "../../../repositories/ZoneRepository";
|
import ZoneRepository from "../../../repositories/ZoneRepository";
|
||||||
import ZoneManager from "../../../ZoneManager";
|
import ZoneManager from "../../../managers/ZoneManager";
|
||||||
import {Character, Zone} from "@prisma/client";
|
import {Character, Zone} from "@prisma/client";
|
||||||
|
|
||||||
interface IPayload {
|
interface IPayload {
|
@ -1,7 +1,7 @@
|
|||||||
import { Server } from "socket.io";
|
import { Server } from "socket.io";
|
||||||
import {TSocket} from "../../../utilities/Types";
|
import {TSocket} from "../../../utilities/Types";
|
||||||
import ZoneRepository from "../../../repositories/ZoneRepository";
|
import ZoneRepository from "../../../repositories/ZoneRepository";
|
||||||
import ZoneManager from "../../../ZoneManager";
|
import ZoneManager from "../../../managers/ZoneManager";
|
||||||
import { Character, Zone, ZoneEventTile, ZoneObject } from '@prisma/client'
|
import { Character, Zone, ZoneEventTile, ZoneObject } from '@prisma/client'
|
||||||
|
|
||||||
interface IPayload {
|
interface IPayload {
|
@ -1,6 +1,6 @@
|
|||||||
import {Character, Zone} from "@prisma/client";
|
import {Character, Zone} from "@prisma/client";
|
||||||
import ZoneRepository from "./repositories/ZoneRepository";
|
import ZoneRepository from "../repositories/ZoneRepository";
|
||||||
import ZoneService from "./services/ZoneService";
|
import ZoneService from "../services/ZoneService";
|
||||||
|
|
||||||
type TLoadedZone = {
|
type TLoadedZone = {
|
||||||
zone: Zone;
|
zone: Zone;
|
@ -2,16 +2,16 @@ import fs from "fs";
|
|||||||
import path from "path";
|
import path from "path";
|
||||||
import express, {Application} from 'express';
|
import express, {Application} from 'express';
|
||||||
import {createServer as httpServer} from 'http';
|
import {createServer as httpServer} from 'http';
|
||||||
import {addHttpRoutes} from './app/utilities/Http';
|
import {addHttpRoutes} from './utilities/Http';
|
||||||
import cors from 'cors';
|
import cors from 'cors';
|
||||||
import {Server as SocketServer} from 'socket.io';
|
import {Server as SocketServer} from 'socket.io';
|
||||||
import {TSocket} from "./app/utilities/Types";
|
import {TSocket} from "./utilities/Types";
|
||||||
import config from './app/utilities/Config';
|
import config from './utilities/Config';
|
||||||
import prisma from './app/utilities/Prisma';
|
import prisma from './utilities/Prisma';
|
||||||
import ZoneManager from "./app/ZoneManager";
|
import ZoneManager from "./managers/ZoneManager";
|
||||||
import UserManager from "./app/UserManager";
|
import UserManager from "./managers/UserManager";
|
||||||
import {Authentication} from "./app/middleware/Authentication";
|
import {Authentication} from "./middleware/Authentication";
|
||||||
import CommandManager from "./app/CommandManager";
|
import CommandManager from "./managers/CommandManager";
|
||||||
import {Dirent} from "node:fs";
|
import {Dirent} from "node:fs";
|
||||||
|
|
||||||
export class Server
|
export class Server
|
||||||
|
Loading…
x
Reference in New Issue
Block a user