diff --git a/package-lock.json b/package-lock.json index 5ab691b..5039467 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,6 +11,7 @@ "dotenv": "^16.4.5", "express": "^4.19.2", "jsonwebtoken": "^9.0.2", + "pino": "^9.3.2", "prisma": "^5.17.0", "sharp": "^0.33.4", "socket.io": "^4.7.5", @@ -667,6 +668,18 @@ "@types/send": "*" } }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "license": "MIT", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -730,6 +743,15 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "license": "MIT" }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -737,6 +759,26 @@ "dev": true, "license": "MIT" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/base64id": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", @@ -813,6 +855,30 @@ "node": ">=8" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", @@ -1172,6 +1238,24 @@ "node": ">= 0.6" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, "node_modules/express": { "version": "4.19.2", "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", @@ -1214,6 +1298,15 @@ "node": ">= 0.10.0" } }, + "node_modules/fast-redact": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", + "integrity": "sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -1417,6 +1510,26 @@ "node": ">=0.10.0" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore-by-default": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", @@ -1758,6 +1871,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -1798,6 +1920,44 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pino": { + "version": "9.3.2", + "resolved": "https://registry.npmjs.org/pino/-/pino-9.3.2.tgz", + "integrity": "sha512-WtARBjgZ7LNEkrGWxMBN/jvlFiE17LTbBoH0konmBU684Kd0uIiDwBXlcTCW7iJnA6HfIKwUssS/2AC6cDEanw==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^1.2.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^4.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.2.0.tgz", + "integrity": "sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==", + "license": "MIT", + "dependencies": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, + "node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "license": "MIT" + }, "node_modules/prettier": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", @@ -1830,6 +1990,21 @@ "node": ">=16.13" } }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-warning": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-4.0.0.tgz", + "integrity": "sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==", + "license": "MIT" + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -1865,6 +2040,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "license": "MIT" + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -1889,6 +2070,22 @@ "node": ">= 0.8" } }, + "node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "license": "MIT", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", @@ -1902,6 +2099,15 @@ "node": ">=8.10.0" } }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -1922,6 +2128,15 @@ ], "license": "MIT" }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -2197,6 +2412,24 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "license": "MIT" }, + "node_modules/sonic-boom": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.0.1.tgz", + "integrity": "sha512-hTSD/6JMLyT4r9zeof6UtuBDpjJ9sO08/nmS5djaA9eozT9oOlNdpXSnzcgj4FTqpk3nkLrs61l4gip9r1HCrQ==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -2206,6 +2439,15 @@ "node": ">= 0.8" } }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -2219,6 +2461,15 @@ "node": ">=4" } }, + "node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "license": "MIT", + "dependencies": { + "real-require": "^0.2.0" + } + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", diff --git a/package.json b/package.json index d5d6a60..739ec9a 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "dotenv": "^16.4.5", "express": "^4.19.2", "jsonwebtoken": "^9.0.2", + "pino": "^9.3.2", "prisma": "^5.17.0", "sharp": "^0.33.4", "socket.io": "^4.7.5", diff --git a/src/commands/listZones.ts b/src/commands/listZones.ts index ef77824..766ca06 100644 --- a/src/commands/listZones.ts +++ b/src/commands/listZones.ts @@ -1,5 +1,5 @@ import { Server } from 'socket.io' -import ZoneManager from '../managers/ZoneManager' +import ZoneManager from '../managers/zoneManager' type CommandInput = string[] diff --git a/src/events/character/Connect.ts b/src/events/character/connect.ts similarity index 81% rename from src/events/character/Connect.ts rename to src/events/character/connect.ts index 2b4f7a7..8f177db 100644 --- a/src/events/character/Connect.ts +++ b/src/events/character/connect.ts @@ -1,6 +1,6 @@ import { Server } from 'socket.io' -import { TSocket, ExtendedCharacter } from '../../utilities/Types' -import CharacterRepository from '../../repositories/CharacterRepository' +import { TSocket, ExtendedCharacter } from '../../utilities/types' +import CharacterRepository from '../../repositories/characterRepository' type SocketResponseT = { character_id: number diff --git a/src/events/character/Create.ts b/src/events/character/create.ts similarity index 74% rename from src/events/character/Create.ts rename to src/events/character/create.ts index bfc9924..b66d78b 100644 --- a/src/events/character/Create.ts +++ b/src/events/character/create.ts @@ -1,9 +1,10 @@ import { Server } from 'socket.io' -import { TSocket } from '../../utilities/Types' +import { TSocket } from '../../utilities/types' import { Character } from '@prisma/client' -import CharacterRepository from '../../repositories/CharacterRepository' -import { ZCharacterCreate } from '../../utilities/ZodTypes' -import prisma from '../../utilities/Prisma' +import CharacterRepository from '../../repositories/characterRepository' +import { ZCharacterCreate } from '../../utilities/zodTypes' +import prisma from '../../utilities/prisma' +import logger from '../../utilities/logger' export default function (socket: TSocket, io: Server) { socket.on('character:create', async (data: any) => { @@ -30,7 +31,7 @@ export default function (socket: TSocket, io: Server) { data: { name: data.name, userId: user_id, - characterTypeId: 1 // @TODO set to chosen character type + // characterTypeId: 1 // @TODO set to chosen character type } }) @@ -38,8 +39,10 @@ export default function (socket: TSocket, io: Server) { socket.emit('character:create:success') socket.emit('character:list', characters) + + logger.info('character:create success') } catch (error: any) { - console.log('character:create error', error) + logger.error('character:create error', error) return socket.emit('notification', { message: 'Could not create character. Please try again (later).' }) } }) diff --git a/src/events/character/Delete.ts b/src/events/character/delete.ts similarity index 88% rename from src/events/character/Delete.ts rename to src/events/character/delete.ts index 5622f3c..0fdbb64 100644 --- a/src/events/character/Delete.ts +++ b/src/events/character/delete.ts @@ -1,7 +1,7 @@ import { Server } from 'socket.io' -import { TSocket } from '../../utilities/Types' +import { TSocket } from '../../utilities/types' import { Character, Zone } from '@prisma/client' -import CharacterRepository from '../../repositories/CharacterRepository' +import CharacterRepository from '../../repositories/characterRepository' type TypePayload = { character_id: number diff --git a/src/events/character/List.ts b/src/events/character/list.ts similarity index 83% rename from src/events/character/List.ts rename to src/events/character/list.ts index 17531f0..d994aea 100644 --- a/src/events/character/List.ts +++ b/src/events/character/list.ts @@ -1,7 +1,7 @@ import { Socket, Server } from 'socket.io' -import { TSocket } from '../../utilities/Types' +import { TSocket } from '../../utilities/types' import { Character } from '@prisma/client' -import CharacterRepository from '../../repositories/CharacterRepository' +import CharacterRepository from '../../repositories/characterRepository' export default function CharacterList(socket: TSocket, io: Server) { socket.on('character:list', async (data: any) => { diff --git a/src/events/character/Move.ts b/src/events/character/move.ts similarity index 93% rename from src/events/character/Move.ts rename to src/events/character/move.ts index ecea3cd..956c9db 100644 --- a/src/events/character/Move.ts +++ b/src/events/character/move.ts @@ -1,9 +1,9 @@ import { Server } from 'socket.io' -import { TSocket, ExtendedCharacter } from '../../utilities/Types' -import ZoneManager from '../../managers/ZoneManager' -import prisma from '../../utilities/Prisma' -import { AStar } from '../../utilities/Player/AStar' -import Rotation from '../../utilities/Player/Rotation' +import { TSocket, ExtendedCharacter } from '../../utilities/types' +import ZoneManager from '../../managers/zoneManager' +import prisma from '../../utilities/prisma' +import { AStar } from '../../utilities/player/aStar' +import Rotation from '../../utilities/player/rotation' const moveTokens = new Map() diff --git a/src/events/character/ZoneLeave.ts b/src/events/character/zoneLeave.ts similarity index 87% rename from src/events/character/ZoneLeave.ts rename to src/events/character/zoneLeave.ts index 6adba2f..4665269 100644 --- a/src/events/character/ZoneLeave.ts +++ b/src/events/character/zoneLeave.ts @@ -1,7 +1,7 @@ import { Server } from 'socket.io' -import { TSocket } from '../../utilities/Types' -import ZoneRepository from '../../repositories/ZoneRepository' -import ZoneManager from '../../managers/ZoneManager' +import { TSocket } from '../../utilities/types' +import ZoneRepository from '../../repositories/zoneRepository' +import ZoneManager from '../../managers/zoneManager' import { Character, Zone } from '@prisma/client' /** diff --git a/src/events/character/ZoneRequest.ts b/src/events/character/zoneRequest.ts similarity index 87% rename from src/events/character/ZoneRequest.ts rename to src/events/character/zoneRequest.ts index fd11d4f..790631e 100644 --- a/src/events/character/ZoneRequest.ts +++ b/src/events/character/zoneRequest.ts @@ -1,7 +1,7 @@ import { Server } from 'socket.io' -import { TSocket } from '../../utilities/Types' -import ZoneRepository from '../../repositories/ZoneRepository' -import ZoneManager from '../../managers/ZoneManager' +import { TSocket } from '../../utilities/types' +import ZoneRepository from '../../repositories/zoneRepository' +import ZoneManager from '../../managers/zoneManager' import { Character, Zone } from '@prisma/client' interface IPayload { diff --git a/src/events/chat/gm/AlertCommand.ts b/src/events/chat/gm/alertCommand.ts similarity index 81% rename from src/events/chat/gm/AlertCommand.ts rename to src/events/chat/gm/alertCommand.ts index 60be1ef..cbba29c 100644 --- a/src/events/chat/gm/AlertCommand.ts +++ b/src/events/chat/gm/alertCommand.ts @@ -1,7 +1,7 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' -import { getArgs, isCommand } from '../../../utilities/Chat' -import CharacterRepository from '../../../repositories/CharacterRepository' +import { TSocket } from '../../../utilities/types' +import { getArgs, isCommand } from '../../../utilities/chat' +import CharacterRepository from '../../../repositories/characterRepository' type TypePayload = { message: string diff --git a/src/events/chat/SendMessage.ts b/src/events/chat/sendMessage.ts similarity index 78% rename from src/events/chat/SendMessage.ts rename to src/events/chat/sendMessage.ts index e46ec8b..05601a8 100644 --- a/src/events/chat/SendMessage.ts +++ b/src/events/chat/sendMessage.ts @@ -1,8 +1,8 @@ import { Server } from 'socket.io' -import { TSocket } from '../../utilities/Types' -import CharacterRepository from '../../repositories/CharacterRepository' -import ZoneRepository from '../../repositories/ZoneRepository' -import { isCommand } from '../../utilities/Chat' +import { TSocket } from '../../utilities/types' +import CharacterRepository from '../../repositories/characterRepository' +import ZoneRepository from '../../repositories/zoneRepository' +import { isCommand } from '../../utilities/chat' type TypePayload = { message: string diff --git a/src/events/Disconnect.ts b/src/events/disconnect.ts similarity index 88% rename from src/events/Disconnect.ts rename to src/events/disconnect.ts index fa7012b..d6186a6 100644 --- a/src/events/Disconnect.ts +++ b/src/events/disconnect.ts @@ -1,6 +1,6 @@ import { Server } from 'socket.io' -import { TSocket } from '../utilities/Types' -import ZoneManager from '../managers/ZoneManager' +import { TSocket } from '../utilities/types' +import ZoneManager from '../managers/zoneManager' export default function (socket: TSocket, io: Server) { socket.on('disconnect', (data: any) => { diff --git a/src/events/gm/object/List.ts b/src/events/gm/object/list.ts similarity index 83% rename from src/events/gm/object/List.ts rename to src/events/gm/object/list.ts index d574848..1500103 100644 --- a/src/events/gm/object/List.ts +++ b/src/events/gm/object/list.ts @@ -1,7 +1,7 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' +import { TSocket } from '../../../utilities/types' import { Object } from '@prisma/client' -import ObjectRepository from '../../../repositories/ObjectRepository' +import ObjectRepository from '../../../repositories/objectRepository' interface IPayload {} diff --git a/src/events/gm/object/Remove.ts b/src/events/gm/object/remove.ts similarity index 90% rename from src/events/gm/object/Remove.ts rename to src/events/gm/object/remove.ts index d67563d..0417827 100644 --- a/src/events/gm/object/Remove.ts +++ b/src/events/gm/object/remove.ts @@ -1,8 +1,8 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' +import { TSocket } from '../../../utilities/types' import path from 'path' import fs from 'fs' -import prisma from '../../../utilities/Prisma' +import prisma from '../../../utilities/prisma' interface IPayload { object: string diff --git a/src/events/gm/object/Update.ts b/src/events/gm/object/update.ts similarity index 91% rename from src/events/gm/object/Update.ts rename to src/events/gm/object/update.ts index e32defd..fa7b74c 100644 --- a/src/events/gm/object/Update.ts +++ b/src/events/gm/object/update.ts @@ -1,6 +1,6 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' -import prisma from '../../../utilities/Prisma' +import { TSocket } from '../../../utilities/types' +import prisma from '../../../utilities/prisma' type Payload = { id: string diff --git a/src/events/gm/object/Upload.ts b/src/events/gm/object/upload.ts similarity index 93% rename from src/events/gm/object/Upload.ts rename to src/events/gm/object/upload.ts index d9725c8..f46f7af 100644 --- a/src/events/gm/object/Upload.ts +++ b/src/events/gm/object/upload.ts @@ -1,9 +1,9 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' +import { TSocket } from '../../../utilities/types' import { writeFile } from 'node:fs/promises' import path from 'path' import fs from 'fs/promises' -import prisma from '../../../utilities/Prisma' +import prisma from '../../../utilities/prisma' interface IObjectData { [key: string]: Buffer diff --git a/src/events/gm/sprite/Create.ts b/src/events/gm/sprite/create.ts similarity index 91% rename from src/events/gm/sprite/Create.ts rename to src/events/gm/sprite/create.ts index de71513..e1cbdae 100644 --- a/src/events/gm/sprite/Create.ts +++ b/src/events/gm/sprite/create.ts @@ -1,8 +1,8 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' +import { TSocket } from '../../../utilities/types' import path from 'path' import fs from 'fs/promises' -import prisma from '../../../utilities/Prisma' +import prisma from '../../../utilities/prisma' /** * Handle game master new sprite event diff --git a/src/events/gm/sprite/List.ts b/src/events/gm/sprite/list.ts similarity index 83% rename from src/events/gm/sprite/List.ts rename to src/events/gm/sprite/list.ts index 5b65f75..642dd49 100644 --- a/src/events/gm/sprite/List.ts +++ b/src/events/gm/sprite/list.ts @@ -1,7 +1,7 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' +import { TSocket } from '../../../utilities/types' import { Sprite } from '@prisma/client' -import SpriteRepository from '../../../repositories/SpriteRepository' +import SpriteRepository from '../../../repositories/spriteRepository' interface IPayload {} diff --git a/src/events/gm/sprite/Remove.ts b/src/events/gm/sprite/remove.ts similarity index 90% rename from src/events/gm/sprite/Remove.ts rename to src/events/gm/sprite/remove.ts index b4f1d5f..ea1710f 100644 --- a/src/events/gm/sprite/Remove.ts +++ b/src/events/gm/sprite/remove.ts @@ -1,8 +1,8 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' +import { TSocket } from '../../../utilities/types' import fs from 'fs' import path from 'path' -import prisma from '../../../utilities/Prisma' +import prisma from '../../../utilities/prisma' type Payload = { id: string diff --git a/src/events/gm/sprite/Update.ts b/src/events/gm/sprite/update.ts similarity index 97% rename from src/events/gm/sprite/Update.ts rename to src/events/gm/sprite/update.ts index 410aaf1..645a298 100644 --- a/src/events/gm/sprite/Update.ts +++ b/src/events/gm/sprite/update.ts @@ -1,6 +1,6 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' -import prisma from '../../../utilities/Prisma' +import { TSocket } from '../../../utilities/types' +import prisma from '../../../utilities/prisma' import type { Prisma, SpriteAction } from '@prisma/client' import path from 'path' import { writeFile, mkdir } from 'node:fs/promises' diff --git a/src/events/gm/tile/List.ts b/src/events/gm/tile/list.ts similarity index 82% rename from src/events/gm/tile/List.ts rename to src/events/gm/tile/list.ts index 155cc0b..f951bf5 100644 --- a/src/events/gm/tile/List.ts +++ b/src/events/gm/tile/list.ts @@ -1,7 +1,7 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' +import { TSocket } from '../../../utilities/types' import { Tile } from '@prisma/client' -import TileRepository from '../../../repositories/TileRepository' +import TileRepository from '../../../repositories/tileRepository' interface IPayload {} diff --git a/src/events/gm/tile/Remove.ts b/src/events/gm/tile/remove.ts similarity index 90% rename from src/events/gm/tile/Remove.ts rename to src/events/gm/tile/remove.ts index a784a56..3e999a6 100644 --- a/src/events/gm/tile/Remove.ts +++ b/src/events/gm/tile/remove.ts @@ -1,8 +1,8 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' +import { TSocket } from '../../../utilities/types' import path from 'path' import fs from 'fs' -import prisma from '../../../utilities/Prisma' +import prisma from '../../../utilities/prisma' type Payload = { id: string diff --git a/src/events/gm/tile/Update.ts b/src/events/gm/tile/update.ts similarity index 87% rename from src/events/gm/tile/Update.ts rename to src/events/gm/tile/update.ts index a276401..884333b 100644 --- a/src/events/gm/tile/Update.ts +++ b/src/events/gm/tile/update.ts @@ -1,6 +1,6 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' -import prisma from '../../../utilities/Prisma' +import { TSocket } from '../../../utilities/types' +import prisma from '../../../utilities/prisma' type Payload = { id: string diff --git a/src/events/gm/tile/Upload.ts b/src/events/gm/tile/upload.ts similarity index 92% rename from src/events/gm/tile/Upload.ts rename to src/events/gm/tile/upload.ts index a115bb5..fb1a086 100644 --- a/src/events/gm/tile/Upload.ts +++ b/src/events/gm/tile/upload.ts @@ -1,9 +1,9 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' +import { TSocket } from '../../../utilities/types' import { writeFile } from 'node:fs/promises' import path from 'path' import fs from 'fs/promises' -import prisma from '../../../utilities/Prisma' +import prisma from '../../../utilities/prisma' interface ITileData { [key: string]: Buffer diff --git a/src/events/gm/zone/Create.ts b/src/events/gm/zone/create.ts similarity index 88% rename from src/events/gm/zone/Create.ts rename to src/events/gm/zone/create.ts index 984e0e2..a55b563 100644 --- a/src/events/gm/zone/Create.ts +++ b/src/events/gm/zone/create.ts @@ -1,8 +1,8 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' -import ZoneRepository from '../../../repositories/ZoneRepository' +import { TSocket } from '../../../utilities/types' +import ZoneRepository from '../../../repositories/zoneRepository' import { Zone } from '@prisma/client' -import prisma from '../../../utilities/Prisma' +import prisma from '../../../utilities/prisma' type Payload = { name: string diff --git a/src/events/gm/zone/Delete.ts b/src/events/gm/zone/delete.ts similarity index 84% rename from src/events/gm/zone/Delete.ts rename to src/events/gm/zone/delete.ts index 830e67b..4e737f2 100644 --- a/src/events/gm/zone/Delete.ts +++ b/src/events/gm/zone/delete.ts @@ -1,7 +1,7 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' -import ZoneRepository from '../../../repositories/ZoneRepository' -import prisma from '../../../utilities/Prisma' +import { TSocket } from '../../../utilities/types' +import ZoneRepository from '../../../repositories/zoneRepository' +import prisma from '../../../utilities/prisma' type Payload = { zoneId: number diff --git a/src/events/gm/zone/List.ts b/src/events/gm/zone/list.ts similarity index 86% rename from src/events/gm/zone/List.ts rename to src/events/gm/zone/list.ts index 56cafe3..f417b06 100644 --- a/src/events/gm/zone/List.ts +++ b/src/events/gm/zone/list.ts @@ -1,7 +1,7 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' +import { TSocket } from '../../../utilities/types' import { Zone } from '@prisma/client' -import ZoneRepository from '../../../repositories/ZoneRepository' +import ZoneRepository from '../../../repositories/zoneRepository' interface IPayload {} diff --git a/src/events/gm/zone/Request.ts b/src/events/gm/zone/request.ts similarity index 87% rename from src/events/gm/zone/Request.ts rename to src/events/gm/zone/request.ts index f50d689..a5d35e2 100644 --- a/src/events/gm/zone/Request.ts +++ b/src/events/gm/zone/request.ts @@ -1,6 +1,6 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' -import ZoneRepository from '../../../repositories/ZoneRepository' +import { TSocket } from '../../../utilities/types' +import ZoneRepository from '../../../repositories/zoneRepository' import { Zone } from '@prisma/client' interface IPayload { diff --git a/src/events/gm/zone/Update.ts b/src/events/gm/zone/update.ts similarity index 92% rename from src/events/gm/zone/Update.ts rename to src/events/gm/zone/update.ts index 5f3a2bb..90d2d88 100644 --- a/src/events/gm/zone/Update.ts +++ b/src/events/gm/zone/update.ts @@ -1,9 +1,9 @@ import { Server } from 'socket.io' -import { TSocket } from '../../../utilities/Types' -import ZoneRepository from '../../../repositories/ZoneRepository' +import { TSocket } from '../../../utilities/types' +import ZoneRepository from '../../../repositories/zoneRepository' import { ZoneEventTile, ZoneObject } from '@prisma/client' -import prisma from '../../../utilities/Prisma' -import zoneManager from '../../../managers/ZoneManager' +import prisma from '../../../utilities/prisma' +import zoneManager from '../../../managers/zoneManager' interface IPayload { zoneId: number diff --git a/src/events/Login.ts b/src/events/login.ts similarity index 81% rename from src/events/Login.ts rename to src/events/login.ts index 423388d..009718b 100644 --- a/src/events/Login.ts +++ b/src/events/login.ts @@ -1,5 +1,5 @@ import { Server } from 'socket.io' -import { TSocket } from '../utilities/Types' +import { TSocket } from '../utilities/types' export default function (socket: TSocket, io: Server) { socket.on('login', () => { diff --git a/src/managers/CommandManager.ts b/src/managers/commandManager.ts similarity index 100% rename from src/managers/CommandManager.ts rename to src/managers/commandManager.ts diff --git a/src/managers/UserManager.ts b/src/managers/userManager.ts similarity index 90% rename from src/managers/UserManager.ts rename to src/managers/userManager.ts index 4c35935..3c1c29b 100644 --- a/src/managers/UserManager.ts +++ b/src/managers/userManager.ts @@ -1,4 +1,5 @@ import { User } from '@prisma/client' +import logger from '../utilities/logger' type TLoggedInUsers = { users: User[] @@ -9,7 +10,7 @@ class UserManager { // Method to initialize user manager public async boot() { - console.log('[✅] User manager loaded') + logger.info('User manager loaded') } // Function that adds user to logged in users diff --git a/src/managers/ZoneManager.ts b/src/managers/zoneManager.ts similarity index 91% rename from src/managers/ZoneManager.ts rename to src/managers/zoneManager.ts index 7c549c1..2245414 100644 --- a/src/managers/ZoneManager.ts +++ b/src/managers/zoneManager.ts @@ -1,7 +1,8 @@ import { Character, Zone } from '@prisma/client' -import ZoneRepository from '../repositories/ZoneRepository' -import ZoneService from '../services/ZoneService' -import zoneRepository from '../repositories/ZoneRepository' +import ZoneRepository from '../repositories/zoneRepository' +import ZoneService from '../services/zoneService' +import zoneRepository from '../repositories/zoneRepository' +import logger from '../utilities/logger' type TLoadedZone = { zone: Zone @@ -25,7 +26,7 @@ class ZoneManager { await this.loadZone(zone) } - console.log('[✅] Zone manager loaded') + logger.info('Zone manager loaded') } // Method to handle individual zone loading @@ -36,7 +37,7 @@ class ZoneManager { characters: [], grid }) - console.log(`[✅] Zone ID ${zone.id} loaded`) + logger.info(`Zone ID ${zone.id} loaded`) } // Method to handle individual zone unloading @@ -44,7 +45,7 @@ class ZoneManager { this.loadedZones = this.loadedZones.filter((loadedZone) => { return loadedZone.zone.id !== zoneId }) - console.log(`[❌] Zone ID ${zoneId} unloaded`) + logger.info(`Zone ID ${zoneId} unloaded`) } // Getter for loaded zones diff --git a/src/middleware/Authentication.ts b/src/middleware/authentication.ts similarity index 86% rename from src/middleware/Authentication.ts rename to src/middleware/authentication.ts index 98beaff..5109e09 100644 --- a/src/middleware/Authentication.ts +++ b/src/middleware/authentication.ts @@ -1,8 +1,8 @@ // socket io jwt auth middleware import { verify } from 'jsonwebtoken' -import { TSocket } from '../utilities/Types' -import config from '../utilities/Config' -import UserRepository from '../repositories/UserRepository' +import { TSocket } from '../utilities/types' +import config from '../utilities/config' +import UserRepository from '../repositories/userRepository' import { User } from '@prisma/client' export async function Authentication(socket: TSocket, next: any) { diff --git a/src/repositories/CharacterRepository.ts b/src/repositories/characterRepository.ts similarity index 97% rename from src/repositories/CharacterRepository.ts rename to src/repositories/characterRepository.ts index 94f50cf..4928fae 100644 --- a/src/repositories/CharacterRepository.ts +++ b/src/repositories/characterRepository.ts @@ -1,4 +1,4 @@ -import prisma from '../utilities/Prisma' // Import the global Prisma instance +import prisma from '../utilities/prisma' // Import the global Prisma instance import { Character } from '@prisma/client' class CharacterRepository { diff --git a/src/repositories/ObjectRepository.ts b/src/repositories/objectRepository.ts similarity index 83% rename from src/repositories/ObjectRepository.ts rename to src/repositories/objectRepository.ts index 44a4435..32bbd71 100644 --- a/src/repositories/ObjectRepository.ts +++ b/src/repositories/objectRepository.ts @@ -1,4 +1,4 @@ -import prisma from '../utilities/Prisma' // Import the global Prisma instance +import prisma from '../utilities/prisma' // Import the global Prisma instance import { Object } from '@prisma/client' class ObjectRepository { diff --git a/src/repositories/SpriteRepository.ts b/src/repositories/spriteRepository.ts similarity index 89% rename from src/repositories/SpriteRepository.ts rename to src/repositories/spriteRepository.ts index 02f1368..f773e85 100644 --- a/src/repositories/SpriteRepository.ts +++ b/src/repositories/spriteRepository.ts @@ -1,4 +1,4 @@ -import prisma from '../utilities/Prisma' // Import the global Prisma instance +import prisma from '../utilities/prisma' // Import the global Prisma instance import { Sprite, SpriteAction } from '@prisma/client' class SpriteRepository { diff --git a/src/repositories/TileRepository.ts b/src/repositories/tileRepository.ts similarity index 82% rename from src/repositories/TileRepository.ts rename to src/repositories/tileRepository.ts index 19476d4..edbfdb5 100644 --- a/src/repositories/TileRepository.ts +++ b/src/repositories/tileRepository.ts @@ -1,4 +1,4 @@ -import prisma from '../utilities/Prisma' // Import the global Prisma instance +import prisma from '../utilities/prisma' // Import the global Prisma instance import { Tile } from '@prisma/client' class TileRepository { diff --git a/src/repositories/UserRepository.ts b/src/repositories/userRepository.ts similarity index 91% rename from src/repositories/UserRepository.ts rename to src/repositories/userRepository.ts index 93f2b69..36dc280 100644 --- a/src/repositories/UserRepository.ts +++ b/src/repositories/userRepository.ts @@ -1,4 +1,4 @@ -import prisma from '../utilities/Prisma' // Import the global Prisma instance +import prisma from '../utilities/prisma' // Import the global Prisma instance import { User } from '@prisma/client' class UserRepository { diff --git a/src/repositories/ZoneRepository.ts b/src/repositories/zoneRepository.ts similarity index 96% rename from src/repositories/ZoneRepository.ts rename to src/repositories/zoneRepository.ts index b8190a4..79e06e6 100644 --- a/src/repositories/ZoneRepository.ts +++ b/src/repositories/zoneRepository.ts @@ -1,5 +1,5 @@ import { Zone } from '@prisma/client' -import prisma from '../utilities/Prisma' // Import the global Prisma instance +import prisma from '../utilities/prisma' // Import the global Prisma instance class ZoneRepository { async getFirst(): Promise { diff --git a/src/server.ts b/src/server.ts index 4573c28..9223bc6 100644 --- a/src/server.ts +++ b/src/server.ts @@ -1,22 +1,24 @@ import fs from 'fs' import path from 'path' import express, { Application } from 'express' -import { createServer as httpServer } from 'http' -import { addHttpRoutes } from './utilities/Http' +import { createServer as httpServer, Server as HTTPServer } from 'http' +import { addHttpRoutes } from './utilities/http' import cors from 'cors' import { Server as SocketServer } from 'socket.io' -import { TSocket } from './utilities/Types' -import config from './utilities/Config' -import prisma from './utilities/Prisma' -import ZoneManager from './managers/ZoneManager' -import UserManager from './managers/UserManager' -import { Authentication } from './middleware/Authentication' -import CommandManager from './managers/CommandManager' +import { TSocket } from './utilities/types' +import config from './utilities/config' +import prisma from './utilities/prisma' +import ZoneManager from './managers/zoneManager' +import UserManager from './managers/userManager' +import { Authentication } from './middleware/authentication' +// import CommandManager from './managers/CommandManager' import { Dirent } from 'node:fs' +import logger from './utilities/logger' + export class Server { private readonly app: Application - private readonly http: any + private readonly http: HTTPServer private readonly io: SocketServer /** @@ -39,17 +41,17 @@ export class Server { // Check prisma connection try { await prisma.$connect() - console.log('[✅] Database connected') + logger.info('Database connected') } catch (error: any) { - throw new Error(`[❌] Database connection failed: ${error.message}`) + logger.error(`Database connection failed: ${error.message}`) } // Start the server try { await this.http.listen(config.PORT, config.HOST) - console.log('[✅] Socket.IO running on port', config.PORT) + logger.info(`Socket.IO running on port ${config.PORT}`) } catch (error: any) { - throw new Error(`[❌] Socket.IO failed to start: ${error.message}`) + logger.error(`Socket.IO failed to start: ${error.message}`) } // Add http API routes @@ -78,7 +80,7 @@ export class Server { try { await this.loadEventHandlers(eventsPath, socket) } catch (error: any) { - throw new Error('[❌] Failed to load event handlers: ' + error.message) + logger.error(`Failed to load event handlers: ${error.message}`) } } @@ -101,3 +103,5 @@ export class Server { // Start the server const server = new Server() server.start() + +console.log('Server started') \ No newline at end of file diff --git a/src/services/AssetService.ts b/src/services/assetService.ts similarity index 100% rename from src/services/AssetService.ts rename to src/services/assetService.ts diff --git a/src/services/CharacterService.ts b/src/services/characterService.ts similarity index 100% rename from src/services/CharacterService.ts rename to src/services/characterService.ts diff --git a/src/services/UserService.ts b/src/services/userService.ts similarity index 88% rename from src/services/UserService.ts rename to src/services/userService.ts index 69e75d6..4215076 100644 --- a/src/services/UserService.ts +++ b/src/services/userService.ts @@ -1,6 +1,6 @@ import bcrypt from 'bcryptjs' -import UserRepository from '../repositories/UserRepository' -import prisma from '../utilities/Prisma' +import UserRepository from '../repositories/userRepository' +import prisma from '../utilities/prisma' import { User } from '@prisma/client' class UserService { diff --git a/src/services/ZoneService.ts b/src/services/zoneService.ts similarity index 97% rename from src/services/ZoneService.ts rename to src/services/zoneService.ts index 8955cc5..4a5d601 100644 --- a/src/services/ZoneService.ts +++ b/src/services/zoneService.ts @@ -1,4 +1,4 @@ -import prisma from '../utilities/Prisma' +import prisma from '../utilities/prisma' class ZoneService { async createDemoZone(): Promise { diff --git a/src/utilities/Chat.ts b/src/utilities/chat.ts similarity index 100% rename from src/utilities/Chat.ts rename to src/utilities/chat.ts diff --git a/src/utilities/Config.ts b/src/utilities/config.ts similarity index 100% rename from src/utilities/Config.ts rename to src/utilities/config.ts diff --git a/src/utilities/Http.ts b/src/utilities/http.ts similarity index 87% rename from src/utilities/Http.ts rename to src/utilities/http.ts index 0e064d5..a582203 100644 --- a/src/utilities/Http.ts +++ b/src/utilities/http.ts @@ -1,14 +1,15 @@ import { Application, Request, Response } from 'express' -import UserService from '../services/UserService' +import UserService from '../services/userService' import jwt from 'jsonwebtoken' -import config from './Config' -import { loginAccountSchema, registerAccountSchema } from './ZodTypes' +import config from './config' +import { loginAccountSchema, registerAccountSchema } from './zodTypes' import path from 'path' -import { TAsset } from './Types' -import tileRepository from '../repositories/TileRepository' -import objectRepository from '../repositories/ObjectRepository' -import spriteRepository from '../repositories/SpriteRepository' +import { TAsset } from './types' +import tileRepository from '../repositories/tileRepository' +import objectRepository from '../repositories/objectRepository' +import spriteRepository from '../repositories/spriteRepository' import fs from 'fs' +import logger from './logger' async function addHttpRoutes(app: Application) { app.get('/assets', async (req: Request, res: Response) => { @@ -60,8 +61,6 @@ async function addHttpRoutes(app: Application) { assetPath = path.join(process.cwd(), 'public', assetType, fileName) } - console.log(`Attempting to serve: ${assetPath}`) - if (!fs.existsSync(assetPath)) { console.error(`File not found: ${assetPath}`) return res.status(404).send('Asset not found') @@ -114,7 +113,7 @@ async function addHttpRoutes(app: Application) { return res.status(400).json({ message: 'Failed to register user' }) }) - console.log('[✅] Web routes added') + logger.info('Web routes added') } export { addHttpRoutes } diff --git a/src/utilities/logger.ts b/src/utilities/logger.ts new file mode 100644 index 0000000..c3f9cc1 --- /dev/null +++ b/src/utilities/logger.ts @@ -0,0 +1,20 @@ +import pino from 'pino' + +const logger = pino({ + level: process.env.LOG_LEVEL || 'debug', + transport: { + target: 'pino/file', + options: { + destination: './logs/app.log', + mkdir: true + } + }, + formatters: { + level: (label) => { + return { level: label.toUpperCase() } + }, + }, + timestamp: pino.stdTimeFunctions.isoTime +}) + +export default logger \ No newline at end of file diff --git a/src/utilities/Player/AStar.ts b/src/utilities/player/aStar.ts similarity index 100% rename from src/utilities/Player/AStar.ts rename to src/utilities/player/aStar.ts diff --git a/src/utilities/Player/Rotation.ts b/src/utilities/player/rotation.ts similarity index 100% rename from src/utilities/Player/Rotation.ts rename to src/utilities/player/rotation.ts diff --git a/src/utilities/Prisma.ts b/src/utilities/prisma.ts similarity index 100% rename from src/utilities/Prisma.ts rename to src/utilities/prisma.ts diff --git a/src/utilities/Types.ts b/src/utilities/types.ts similarity index 100% rename from src/utilities/Types.ts rename to src/utilities/types.ts diff --git a/src/utilities/ZodTypes.ts b/src/utilities/zodTypes.ts similarity index 100% rename from src/utilities/ZodTypes.ts rename to src/utilities/zodTypes.ts