Updated tsconfig.json and edited all required files to work with it

This commit is contained in:
Dennis Postma 2025-02-07 20:37:51 +01:00
parent fae428f239
commit f5e7d10fb4
70 changed files with 153 additions and 88 deletions

View File

@ -1,6 +1,6 @@
import fs from 'fs'
import { Response } from 'express'
import type { Response } from 'express'
import Logger, { LoggerType } from '#application/logger'

View File

@ -1,7 +1,8 @@
import { Server } from 'socket.io'
import type { TSocket } from '#application/types'
import Logger, { LoggerType } from '#application/logger'
import { TSocket } from '#application/types'
import { Character } from '#entities/character'
import CharacterRepository from '#repositories/characterRepository'

View File

@ -2,9 +2,10 @@ import * as fs from 'fs'
import * as path from 'path'
import { pathToFileURL } from 'url'
import type { Command } from '#application/types'
import Logger, { LoggerType } from '#application/logger'
import Storage from '#application/storage'
import { Command } from '#application/types'
export class CommandRegistry {
private readonly commands: Map<string, Command> = new Map()

View File

@ -2,10 +2,11 @@ import fs from 'fs'
import sharp from 'sharp'
import type { UUID } from '#application/types'
import { BaseCommand } from '#application/base/baseCommand'
import { CharacterGender, CharacterRace } from '#application/enums'
import Storage from '#application/storage'
import { UUID } from '#application/types'
import { Character } from '#entities/character'
import { CharacterHair } from '#entities/characterHair'
import { CharacterType } from '#entities/characterType'

View File

@ -1,6 +1,7 @@
import { Request, Response } from 'express'
import jwt from 'jsonwebtoken'
import type { Request, Response } from 'express'
import { BaseController } from '#application/base/baseController'
import config from '#application/config'
import { loginAccountSchema, registerAccountSchema, resetPasswordSchema, newPasswordSchema } from '#application/zodTypes'

View File

@ -1,11 +1,12 @@
import fs from 'fs'
import { Request, Response } from 'express'
import sharp from 'sharp'
import type { UUID } from '#application/types'
import type { Request, Response } from 'express'
import { BaseController } from '#application/base/baseController'
import Storage from '#application/storage'
import { UUID } from '#application/types'
import CharacterHairRepository from '#repositories/characterHairRepository'
import CharacterRepository from '#repositories/characterRepository'
import CharacterTypeRepository from '#repositories/characterTypeRepository'

View File

@ -1,4 +1,4 @@
import { Request, Response } from 'express'
import type { Request, Response } from 'express'
import { BaseController } from '#application/base/baseController'
import CharacterHairRepository from '#repositories/characterHairRepository'

View File

@ -1,4 +1,4 @@
import { Request, Response } from 'express'
import type { Request, Response } from 'express'
import { BaseController } from '#application/base/baseController'
import Storage from '#application/storage'

View File

@ -2,8 +2,9 @@ import { randomUUID } from 'node:crypto'
import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { UUID } from '#application/types'
import { CharacterEquipment } from '#entities/characterEquipment'
import { CharacterHair } from '#entities/characterHair'
import { CharacterItem } from '#entities/characterItem'

View File

@ -2,9 +2,10 @@ import { randomUUID } from 'node:crypto'
import { Enum, ManyToOne, PrimaryKey } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { CharacterEquipmentSlotType } from '#application/enums'
import { UUID } from '#application/types'
import { Character } from '#entities/character'
import { CharacterItem } from '#entities/characterItem'

View File

@ -2,9 +2,10 @@ import { randomUUID } from 'node:crypto'
import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { CharacterGender } from '#application/enums'
import { UUID } from '#application/types'
import { Character } from '#entities/character'
import { Sprite } from '#entities/sprite'

View File

@ -2,8 +2,9 @@ import { randomUUID } from 'node:crypto'
import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { UUID } from '#application/types'
import { Character } from '#entities/character'
import { CharacterEquipment } from '#entities/characterEquipment'
import { Item } from '#entities/item'

View File

@ -2,9 +2,10 @@ import { randomUUID } from 'node:crypto'
import { Collection, Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { CharacterGender, CharacterRace } from '#application/enums'
import { UUID } from '#application/types'
import { Character } from '#entities/character'
import { Sprite } from '#entities/sprite'

View File

@ -2,8 +2,9 @@ import { randomUUID } from 'node:crypto'
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { UUID } from '#application/types'
import { Character } from '#entities/character'
import { Map } from '#entities/map'

View File

@ -2,9 +2,10 @@ import { randomUUID } from 'node:crypto'
import { Collection, Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { ItemType, ItemRarity } from '#application/enums'
import { UUID } from '#application/types'
import { CharacterItem } from '#entities/characterItem'
import { Sprite } from '#entities/sprite'

View File

@ -2,8 +2,9 @@ import { randomUUID } from 'node:crypto'
import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { UUID } from '#application/types'
import { MapEffect } from '#entities/mapEffect'
import { MapEventTile } from '#entities/mapEventTile'
import { PlacedMapObject } from '#entities/placedMapObject'

View File

@ -2,8 +2,9 @@ import { randomUUID } from 'node:crypto'
import { ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { UUID } from '#application/types'
import { Map } from '#entities/map'
export class BaseMapEffect extends BaseEntity {

View File

@ -2,9 +2,10 @@ import { randomUUID } from 'node:crypto'
import { Entity, Enum, ManyToOne, OneToOne, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { MapEventTileType } from '#application/enums'
import { UUID } from '#application/types'
import { Map } from '#entities/map'
import { MapEventTileTeleport } from '#entities/mapEventTileTeleport'

View File

@ -2,8 +2,9 @@ import { randomUUID } from 'node:crypto'
import { Entity, ManyToOne, OneToOne, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { UUID } from '#application/types'
import { Map } from '#entities/map'
import { MapEventTile } from '#entities/mapEventTile'

View File

@ -2,8 +2,9 @@ import { randomUUID } from 'node:crypto'
import { Entity, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { UUID } from '#application/types'
export class BaseMapObject extends BaseEntity {
@PrimaryKey()

View File

@ -2,8 +2,9 @@ import { randomUUID } from 'node:crypto'
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { UUID } from '#application/types'
import { User } from '#entities/user'
export class BasePasswordResetToken extends BaseEntity {

View File

@ -2,8 +2,9 @@ import { randomUUID } from 'node:crypto'
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { UUID } from '#application/types'
import { Map } from '#entities/map'
import { MapObject } from '#entities/mapObject'

View File

@ -2,8 +2,9 @@ import { randomUUID } from 'node:crypto'
import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { UUID } from '#application/types'
import { SpriteAction } from '#entities/spriteAction'
export class BaseSprite extends BaseEntity {

View File

@ -2,8 +2,9 @@ import { randomUUID } from 'node:crypto'
import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { UUID } from '#application/types'
import { Sprite } from '#entities/sprite'
export interface SpriteImage {

View File

@ -2,8 +2,9 @@ import { randomUUID } from 'node:crypto'
import { Entity, PrimaryKey, Property } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { UUID } from '#application/types'
export class BaseTile extends BaseEntity {
@PrimaryKey()

View File

@ -3,8 +3,9 @@ import { randomUUID } from 'node:crypto'
import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core'
import bcrypt from 'bcryptjs'
import type { UUID } from '#application/types'
import { BaseEntity } from '#application/base/baseEntity'
import { UUID } from '#application/types'
import { Character } from '#entities/character'
import { PasswordResetToken } from '#entities/passwordResetToken'

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { UUID } from '#application/types'
import MapManager from '#managers/mapManager'
import CharacterHairRepository from '#repositories/characterHairRepository'
import CharacterRepository from '#repositories/characterRepository'

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { UUID } from '#application/types'
import { Character } from '#entities/character'
import CharacterRepository from '#repositories/characterRepository'

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { UUID } from '#application/types'
import MapManager from '#managers/mapManager'
import MapRepository from '#repositories/mapRepository'
import TeleportService from '#services/characterTeleportService'

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { UUID } from '#application/types'
import CharacterHairRepository from '#repositories/characterHairRepository'
interface IPayload {

View File

@ -1,6 +1,7 @@
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { CharacterGender } from '#application/enums'
import { UUID } from '#application/types'
import CharacterHairRepository from '#repositories/characterHairRepository'
import SpriteRepository from '#repositories/spriteRepository'

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { UUID } from '#application/types'
import CharacterTypeRepository from '#repositories/characterTypeRepository'
interface IPayload {

View File

@ -1,6 +1,7 @@
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { CharacterGender, CharacterRace } from '#application/enums'
import { UUID } from '#application/types'
import CharacterTypeRepository from '#repositories/characterTypeRepository'
import SpriteRepository from '#repositories/spriteRepository'

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { UUID } from '#application/types'
import ItemRepository from '#repositories/itemRepository'
interface IPayload {

View File

@ -1,6 +1,7 @@
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { ItemType, ItemRarity } from '#application/enums'
import { UUID } from '#application/types'
import ItemRepository from '#repositories/itemRepository'
import SpriteRepository from '#repositories/spriteRepository'

View File

@ -1,8 +1,9 @@
import fs from 'fs'
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import Storage from '#application/storage'
import { UUID } from '#application/types'
import MapObjectRepository from '#repositories/mapObjectRepository'
interface IPayload {

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { UUID } from '#application/types'
import MapObjectRepository from '#repositories/mapObjectRepository'
type Payload = {

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { UUID } from '#application/types'
import { Sprite } from '#entities/sprite'
import SpriteRepository from '#repositories/spriteRepository'

View File

@ -1,8 +1,9 @@
import fs from 'fs'
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import Storage from '#application/storage'
import { UUID } from '#application/types'
import SpriteRepository from '#repositories/spriteRepository'
type Payload = {

View File

@ -2,8 +2,9 @@ import fs from 'fs'
import sharp from 'sharp'
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { UUID } from '#application/types'
import { SpriteAction } from '#entities/spriteAction'
import SpriteRepository from '#repositories/spriteRepository'

View File

@ -1,8 +1,9 @@
import fs from 'fs/promises'
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import Storage from '#application/storage'
import { UUID } from '#application/types'
import TileRepository from '#repositories/tileRepository'
type Payload = {

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { UUID } from '#application/types'
import TileRepository from '#repositories/tileRepository'
type Payload = {

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { UUID } from '#application/types'
import MapRepository from '#repositories/mapRepository'
type Payload = {

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { UUID } from '#application/types'
import { Map } from '#entities/map'
import MapRepository from '#repositories/mapRepository'

View File

@ -1,6 +1,7 @@
import type { UUID } from '#application/types'
import { BaseEvent } from '#application/base/baseEvent'
import { MapEventTileType } from '#application/enums'
import { UUID } from '#application/types'
import { Map } from '#entities/map'
import { MapEffect } from '#entities/mapEffect'
import { MapEventTile } from '#entities/mapEventTile'

View File

@ -1,6 +1,6 @@
import { Server as SocketServer } from 'socket.io'
import { TSocket } from '#application/types'
import type { TSocket } from '#application/types'
export default class SomeJob {
constructor(private params: any) {}

View File

@ -1,5 +1,6 @@
import cors from 'cors'
import { Application } from 'express'
import type { Application } from 'express'
import config from '#application/config'
import { AuthController } from '#controllers/auth'

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import Logger, { LoggerType } from '#application/logger'
import { UUID } from '#application/types'
import { Map } from '#entities/map'
import LoadedMap from '#models/loadedMap'
import MapCharacter from '#models/mapCharacter'

View File

@ -4,10 +4,11 @@ import { Job, Queue, Worker } from 'bullmq'
import IORedis from 'ioredis'
import { Server as SocketServer } from 'socket.io'
import type { TSocket } from '#application/types'
import config from '#application/config'
import Logger, { LoggerType } from '#application/logger'
import Storage from '#application/storage'
import { TSocket } from '#application/types'
import SocketManager from '#managers/socketManager'
class QueueManager {

View File

@ -2,12 +2,13 @@ import fs from 'fs'
import { Server as HTTPServer } from 'http'
import { pathToFileURL } from 'url'
import { Application } from 'express'
import { Server as SocketServer } from 'socket.io'
import type { TSocket, UUID } from '#application/types'
import type { Application } from 'express'
import Logger, { LoggerType } from '#application/logger'
import Storage from '#application/storage'
import { TSocket, UUID } from '#application/types'
import { Authentication } from '#middleware/authentication'
class SocketManager {

View File

@ -1,8 +1,9 @@
import jwt from 'jsonwebtoken'
import type { TSocket } from '#application/types'
import config from '#application/config'
import Logger, { LoggerType } from '#application/logger'
import { TSocket } from '#application/types'
class SocketAuthenticator {
private socket: TSocket

View File

@ -1,4 +1,5 @@
import { UUID } from '#application/types'
import type { UUID } from '#application/types'
import { Character } from '#entities/character'
import { Map } from '#entities/map'
import MapCharacter from '#models/mapCharacter'

View File

@ -1,9 +1,9 @@
import { Server } from 'socket.io'
import { TSocket, UUID } from '#application/types'
import type { TSocket, UUID } from '#application/types'
import { Character } from '#entities/character'
import MapManager from '#managers/mapManager'
import SocketManager from '#managers/socketManager'
import TeleportService from '#services/characterTeleportService'
class MapCharacter {

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { CharacterHair } from '#entities/characterHair'
class CharacterHairRepository extends BaseRepository {

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { Character } from '#entities/character'
class CharacterRepository extends BaseRepository {

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { CharacterType } from '#entities/characterType'
class CharacterTypeRepository extends BaseRepository {

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { Chat } from '#entities/chat'
class ChatRepository extends BaseRepository {

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { Item } from '#entities/item'
class ItemRepository extends BaseRepository {

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { MapEventTile } from '#entities/mapEventTile'
class MapEventTileRepository extends BaseRepository {

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { MapObject } from '#entities/mapObject'
class MapObjectRepository extends BaseRepository {

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { Map } from '#entities/map'
import { MapEventTile } from '#entities/mapEventTile'

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { PasswordResetToken } from '#entities/passwordResetToken'
class PasswordResetTokenRepository extends BaseRepository {

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { Sprite } from '#entities/sprite'
class SpriteRepository extends BaseRepository {

View File

@ -1,7 +1,6 @@
import { FilterValue } from '@mikro-orm/core'
import type { UUID } from '#application/types'
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { unduplicateArray } from '#application/utilities'
import { Map } from '#entities/map'
import { Tile } from '#entities/tile'

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseRepository } from '#application/base/baseRepository'
import { UUID } from '#application/types'
import { User } from '#entities/user'
class UserRepository extends BaseRepository {

View File

@ -2,7 +2,9 @@ import 'reflect-metadata'
import { createServer as httpServer, Server as HTTPServer } from 'http'
import cors from 'cors'
import express, { Application } from 'express'
import express from 'express'
import type { Application } from 'express'
import config from '#application/config'
import Database from '#application/database'

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseService } from '#application/base/baseService'
import { UUID } from '#application/types'
import MapManager from '#managers/mapManager'
import SocketManager from '#managers/socketManager'

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import Logger, { LoggerType } from '#application/logger'
import { UUID } from '#application/types'
import { Character } from '#entities/character'
import MapManager from '#managers/mapManager'
import SocketManager from '#managers/socketManager'

View File

@ -1,5 +1,6 @@
import type { UUID } from '#application/types'
import { BaseService } from '#application/base/baseService'
import { UUID } from '#application/types'
import { Chat } from '#entities/chat'
import SocketManager from '#managers/socketManager'
import CharacterRepository from '#repositories/characterRepository'

View File

@ -1,24 +1,27 @@
{
"compilerOptions": {
// Enable latest features
"lib": ["ESNext"],
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "node",
"declaration": true,
"noImplicitAny": true,
"isolatedModules": true,
"sourceMap": true,
// Best practices
"strict": true,
// Base options
"esModuleInterop": true,
"skipLibCheck": true,
"noFallthroughCasesInSwitch": true,
"allowJs": true,
"resolveJsonModule": true,
"moduleDetection": "force",
"isolatedModules": true,
"verbatimModuleSyntax": true,
"lib": ["es2022"],
"target": "es2022",
// Output
// Strictness
"strict": true,
"noUncheckedIndexedAccess": true,
"noImplicitOverride": true,
// Transpiling with TypeScript
"module": "NodeNext",
"baseUrl": "./src",
"rootDir": "./src",
"outDir": "./dist",
"sourceMap": true,
"paths": {
"#root/*": ["./*"],
@ -39,7 +42,6 @@
"typeRoots": ["./node_modules/@types"],
// Other options
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true,