This commit is contained in:
Dennis Postma 2025-02-07 20:07:36 +01:00
parent 37f2cd90e6
commit fae428f239
10 changed files with 38 additions and 43 deletions

18
package-lock.json generated
View File

@ -2369,9 +2369,9 @@
"license": "BSD-3-Clause" "license": "BSD-3-Clause"
}, },
"node_modules/bullmq": { "node_modules/bullmq": {
"version": "5.40.0", "version": "5.40.2",
"resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.40.0.tgz", "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.40.2.tgz",
"integrity": "sha512-tmrk32EmcbtUOGPSdwlDUcc0w+nAMqCisk8vEFFmG8aOzIehz0BxTNSj6Grh0qoMugRF3VglWk8HGUBnWqU2Fw==", "integrity": "sha512-Cn4NUpwGAF4WnuXR2kTZCTAUEUHajSCn/IqiDG9ry1kVvAwwwg1Ati3J5HN2uZjqD5PBfNDXYnsc2+0PzakDwg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"cron-parser": "^4.9.0", "cron-parser": "^4.9.0",
@ -4352,9 +4352,9 @@
} }
}, },
"node_modules/ioredis": { "node_modules/ioredis": {
"version": "5.4.2", "version": "5.5.0",
"resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.4.2.tgz", "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.5.0.tgz",
"integrity": "sha512-0SZXGNGZ+WzISQ67QDyZ2x0+wVxjjUndtD8oSeik/4ajifeiRufed8fCb8QW8VMyi4MXcS+UO1k/0NGhvq1PAg==", "integrity": "sha512-7CutT89g23FfSa8MDoIFs2GYYa0PaNiW/OrT+nRyjRXHDZd17HmIgy+reOQ/yhh72NznNjGuS8kbCAcA4Ro4mw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@ioredis/commands": "^1.1.1", "@ioredis/commands": "^1.1.1",
@ -5874,9 +5874,9 @@
} }
}, },
"node_modules/possible-typed-array-names": { "node_modules/possible-typed-array-names": {
"version": "1.0.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
"integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {

View File

@ -1,4 +1,5 @@
{ {
"type": "module",
"scripts": { "scripts": {
"start": "node --experimental-specifier-resolution=node dist/server.js", "start": "node --experimental-specifier-resolution=node dist/server.js",
"dev": "nodemon --exec tsx src/server.ts", "dev": "nodemon --exec tsx src/server.ts",
@ -8,17 +9,18 @@
"lint:fix": "eslint . --fix" "lint:fix": "eslint . --fix"
}, },
"imports": { "imports": {
"#application/*": "./src/application/*", "#root/*": "./dist/*.js",
"#commands/*": "./src/commands/*", "#application/*": "./dist/application/*.js",
"#entities/*": "./src/entities/*", "#commands/*": "./dist/commands/*.js",
"#controllers/*": "./src/controllers/*", "#entities/*": "./dist/entities/*.js",
"#jobs/*": "./src/jobs/*", "#controllers/*": "./dist/controllers/*.js",
"#managers/*": "./src/managers/*", "#jobs/*": "./dist/jobs/*.js",
"#middleware/*": "./src/middleware/*", "#managers/*": "./dist/managers/*.js",
"#models/*": "./src/models/*", "#middleware/*": "./dist/middleware/*.js",
"#repositories/*": "./src/repositories/*", "#models/*": "./dist/models/*.js",
"#services/*": "./src/services/*", "#repositories/*": "./dist/repositories/*.js",
"#events/*": "./src/events/*" "#services/*": "./dist/services/*.js",
"#events/*": "./dist/events/*.js"
}, },
"dependencies": { "dependencies": {
"@mikro-orm/core": "^6.4.2", "@mikro-orm/core": "^6.4.2",

View File

@ -1,7 +1,6 @@
import { EntityManager } from '@mikro-orm/core' import { EntityManager } from '@mikro-orm/core'
import Database from '../database' import Database from '#application/database'
import Logger, { LoggerType } from '#application/logger' import Logger, { LoggerType } from '#application/logger'
export abstract class BaseRepository { export abstract class BaseRepository {

View File

@ -1,7 +1,7 @@
import { MikroORM } from '@mikro-orm/mysql' import { MikroORM } from '@mikro-orm/mysql'
import Logger, { LoggerType } from './logger' import Logger, { LoggerType } from '#application/logger'
import config from '../../mikro-orm.config' import config from '#root/mikro-orm.config'
class Database { class Database {
private static orm: MikroORM private static orm: MikroORM

View File

@ -22,7 +22,7 @@ export class BaseMap extends BaseEntity {
height = 10 height = 10
@Property({ type: 'json', nullable: true }) @Property({ type: 'json', nullable: true })
tiles?: any tiles: Array<Array<string>> = []
@Property() @Property()
pvp = false pvp = false

View File

@ -1,6 +1,6 @@
import { randomUUID } from 'node:crypto' import { randomUUID } from 'node:crypto'
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' import { ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
import { BaseEntity } from '#application/base/baseEntity' import { BaseEntity } from '#application/base/baseEntity'
import { UUID } from '#application/types' import { UUID } from '#application/types'

View File

@ -1,4 +1,4 @@
import { verify } from 'jsonwebtoken' import jwt from 'jsonwebtoken'
import config from '#application/config' import config from '#application/config'
import Logger, { LoggerType } from '#application/logger' import Logger, { LoggerType } from '#application/logger'
@ -39,7 +39,7 @@ class SocketAuthenticator {
} }
private verifyToken(token: string): void { private verifyToken(token: string): void {
verify(token, config.JWT_SECRET, (err: any, decoded: any) => { jwt.verify(token, config.JWT_SECRET, (err: any, decoded: any) => {
if (err) { if (err) {
this.logger.error('Invalid token') this.logger.error('Invalid token')
return this.next(new Error('Authentication error')) return this.next(new Error('Authentication error'))

View File

@ -3,7 +3,7 @@ import { Migrator } from '@mikro-orm/migrations'
import { defineConfig, MySqlDriver } from '@mikro-orm/mysql' import { defineConfig, MySqlDriver } from '@mikro-orm/mysql'
import { TsMorphMetadataProvider } from '@mikro-orm/reflection' import { TsMorphMetadataProvider } from '@mikro-orm/reflection'
import serverConfig from './src/application/config' import serverConfig from '#application/config'
export default defineConfig({ export default defineConfig({
extensions: [Migrator], extensions: [Migrator],
@ -22,6 +22,6 @@ export default defineConfig({
}, },
migrations: { migrations: {
path: './migrations', path: './migrations',
pathTs: './migrations', pathTs: './migrations'
} }
}) })

View File

@ -1,8 +1,7 @@
import MapCharacter from './mapCharacter'
import { UUID } from '#application/types' import { UUID } from '#application/types'
import { Character } from '#entities/character' import { Character } from '#entities/character'
import { Map } from '#entities/map' import { Map } from '#entities/map'
import MapCharacter from '#models/mapCharacter'
import MapEventTileRepository from '#repositories/mapEventTileRepository' import MapEventTileRepository from '#repositories/mapEventTileRepository'
class LoadedMap { class LoadedMap {

View File

@ -3,15 +3,12 @@
// Enable latest features // Enable latest features
"lib": ["ESNext"], "lib": ["ESNext"],
"target": "ESNext", "target": "ESNext",
"module": "NodeNext", "module": "ESNext",
"moduleResolution": "NodeNext", "moduleResolution": "node",
"moduleDetection": "force",
"allowJs": true,
"declaration": true, "declaration": true,
"noImplicitAny": true, "noImplicitAny": true,
"resolveJsonModule": true,
"sourceMap": true,
"isolatedModules": true, "isolatedModules": true,
"sourceMap": true,
// Best practices // Best practices
"strict": true, "strict": true,
@ -24,6 +21,7 @@
"outDir": "./dist", "outDir": "./dist",
"paths": { "paths": {
"#root/*": ["./*"],
"#application/*": ["application/*"], "#application/*": ["application/*"],
"#commands/*": ["commands/*"], "#commands/*": ["commands/*"],
"#entities/*": ["entities/*"], "#entities/*": ["entities/*"],
@ -47,8 +45,5 @@
"emitDecoratorMetadata": true, "emitDecoratorMetadata": true,
}, },
"include": ["src/**/*.ts", "src/**/*.tsx"], "include": ["src/**/*.ts", "src/**/*.tsx"],
"exclude": [ "exclude": ["node_modules", "dist"]
"node_modules",
"dist"
]
} }