Skip to content

Commit

Permalink
Logs cleanups (#856)
Browse files Browse the repository at this point in the history
* add service field to tcpmanager logs

* add correct type to logger

* corect service name for logger

* formatting

* corect coverage settings

Issule simal to istanbuljs/nyc#1308 (i'm using nvm)

Thanks to istanbuljs/nyc#1029 (comment), mainly

* remove circular require

* remove final typescript mentions

move typescript to a dev dependency

* exclude the app launchers

* test if deepcode accept this form of jsdoc

* improve jsdocs

* better type management

* remove taprc
  • Loading branch information
drazisil committed Apr 10, 2021
1 parent ebb519a commit 052b5e3
Show file tree
Hide file tree
Showing 33 changed files with 334 additions and 697 deletions.
12 changes: 0 additions & 12 deletions .taprc

This file was deleted.

5 changes: 0 additions & 5 deletions launch.js

This file was deleted.

782 changes: 213 additions & 569 deletions package-lock.json

Large diffs are not rendered by default.

16 changes: 7 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
],
"scripts": {
"start": "DEBUG=mcoserver* node app.js",
"coverage": "DEBUG=mcoserver* nyc --extension '.ts' --reporter=html --reporter=text ./launch.js",
"test": "npm run lint-test",
"doc": "jsdoc -R README.md -P package.json -r src",
"migrate": "pg-migrator postgres://postgres:mco@localhost/postgres 2",
Expand All @@ -25,27 +24,24 @@
"url": "git@github.com:drazisil/mco-server.git"
},
"dependencies": {
"@types/node": "14.14.37",
"@types/pg": "7.14.11",
"@types/statsd-client": "0.4.1",
"c-struct": "0.0.5",
"debug": "4.3.1",
"ini": "2.0.0",
"pg": "8.5.1",
"pg-migrator": "1.1.0",
"postgres-migrations": "5.1.1",
"typescript": "4.2.3",
"winston": "3.3.3",
"winston-daily-rotate-file": "4.5.2"
},
"devDependencies": {
"@istanbuljs/nyc-config-typescript": "1.0.1",
"@types/c-struct": "0.0.0",
"@types/chai": "4.2.16",
"@types/debug": "4.1.5",
"@types/ini": "1.3.30",
"@types/mocha": "8.2.2",
"@types/mock-fs": "4.13.0",
"@types/node": "14.14.37",
"@types/pg": "7.14.11",
"@types/sinon": "9.0.11",
"@types/supertest": "2.0.11",
"@types/verror": "1.10.4",
Expand All @@ -58,18 +54,20 @@
"source-map-support": "0.5.19",
"standard": "16.0.3",
"supertest": "6.1.3",
"testdouble": "3.16.1",
"ts-node": "9.1.1"
"testdouble": "3.16.1"
},
"nyc": {
"extends": "@istanbuljs/nyc-config-typescript",
"all": true,
"useSpawnWrap": true,
"reporter": [
"text",
"text-summary",
"html",
"cobertura"
],
"include": [
"src/**/*.js"
],
"exclude": [
"out/*",
"coverage/*",
Expand Down
2 changes: 1 addition & 1 deletion src/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ const { logger } = require('./shared/logger')
* Main game server
* @class
* @property {IAppSettings} config
* @property {Logger} logger
* @property {module:MCO_Logger.logger} logger
* @property {DatabaseManager} databaseManager
* @property {MCServer} mcServer
* @property {AdminServer} adminServer
Expand Down
4 changes: 2 additions & 2 deletions src/services/AdminServer/AdminServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ const readFilePromise = util.promisify(fs.readFile)
*
*
* @property {MCServer} mcServer
* @property {Logger} logger
* @property {module:MCO_Logger.logger} logger
* @property {Server} httpServer
*/
module.exports.AdminServer = class AdminServer {
Expand All @@ -37,7 +37,7 @@ module.exports.AdminServer = class AdminServer {
constructor (mcServer) {
this.mcServer = mcServer
/**
* @type {logger}
* @type {module:MCO_Logger.logger}
*/
this.logger = logger.child({ service: 'mcoserver:AdminServer' })
}
Expand Down
3 changes: 1 addition & 2 deletions src/services/AuthLogin/AuthLogin.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ const readFilePromise = util.promisify(fs.readFile)
/**
* @class
* @property {IAppSettings} config
* @property {Logger} logger
* @property {module:MCO_Logger.logger} logger
* @property {Server} httpsServer
*/
class AuthLogin {
Expand All @@ -39,7 +39,6 @@ class AuthLogin {

/**
*
* @global
* @typedef {Object} sslOptionsObj
* @property {string} cert
* @property {boolean} honorCipherOrder
Expand Down
2 changes: 1 addition & 1 deletion src/services/MCServer/ClientConnectMsg.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const { logger } = require("../../shared/logger")
*
*
* @class
* @property {Logger} logger
* @property {module:MCO_Logger.logger} logger
* @property {number} msgNo
* @property {number} personaId
* @property {number} appId
Expand Down
44 changes: 21 additions & 23 deletions src/services/MCServer/ConnectionMgr.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,42 +5,39 @@
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

const { Socket } = require('net') // lgtm [js/unused-local-variable]
const { appSettings } = require('../../../config/app-settings')
const { DatabaseManager } = require('../../shared/DatabaseManager') // lgtm [js/unused-local-variable]
const { ConnectionObj } = require('./ConnectionObj')
const { defaultHandler } = require('./MCOTS/TCPManager')
const { NPSPacketManager } = require('./npsPacketManager')
const Debug = require('debug')
const { MessageNode, NPS_COMMANDS } = require('../../structures')
const { defaultHandler } = require('./MCOTS/TCPManager')
const { ConnectionObj } = require('./ConnectionObj')
const { NPSPacketManager } = require('./npsPacketManager')

const debug = Debug('mcoserver:ConnectionManager')

/**
* @module Conne
* @module ConnectionMgr
*/

/**
* @class
* @property {Logger} logger
* @property {module:MCO_Logger.logger} logger
* @property {IAppSettings} config
* @property {DatabaseManager} databaseManager
* @property {ConnectionObj[]} connections
* @property {module:DatabaseManager} databaseManager
* @property {module:ConnectionObj[]} connections
* @property {string[]} banList
*/
module.exports.ConnectionMgr = class ConnectionMgr {
class ConnectionMgr {

/**
* Creates an instance of ConnectionMgr.
* @param {import('../../shared/logger').Logger} logger
* @param {DatabaseManager} databaseManager
* @param {module:MCO_Logger.logger} logger
* @param {module:DatabaseManager} databaseManager
*/
constructor (logger, databaseManager) {
constructor (logger, databaseManager, appSettings) {
this.logger = logger.child({ service: 'mcoserver:ConnectionMgr' })
this.config = appSettings
this.databaseMgr = databaseManager
/**
* @type {ConnectionObj[]}
* @type {module:ConnectionObj[]}
*/
this.connections = []
this.newConnectionId = 1
Expand All @@ -53,10 +50,10 @@ module.exports.ConnectionMgr = class ConnectionMgr {
/**
* Check incoming data and route it to the correct handler based on localPort
* @param {IRawPacket} rawPacket
* @returns {Promise<ConnectionObj>}
* @returns {Promise} {@link module:ConnectionObj~ConnectionObj}
*/
async processData (rawPacket) {
const npsPacketManager = new NPSPacketManager(this.databaseMgr, this.logger)
const npsPacketManager = new NPSPacketManager(this.databaseMgr, this.logger, this.config)

const { remoteAddress, localPort, data } = rawPacket

Expand Down Expand Up @@ -155,7 +152,7 @@ module.exports.ConnectionMgr = class ConnectionMgr {
* @param {string} remoteAddress
* @param {number} localPort
* @memberof ConnectionMgr
* @return {ConnectionObj | undefined}
* @return {module:ConnectionObj}
*/
findConnectionByAddressAndPort (remoteAddress, localPort) {
return this.connections.find(connection => {
Expand All @@ -169,7 +166,7 @@ module.exports.ConnectionMgr = class ConnectionMgr {
/**
* Locate connection by id in the connections array
* @param {string} connectionId
* @return {ConnectionObj | undefined}
* @return {module:ConnectionObj}
*/
findConnectionById (connectionId) {
const results = this.connections.find(connection => {
Expand All @@ -185,7 +182,7 @@ module.exports.ConnectionMgr = class ConnectionMgr {
*
* @param {string} address
* @param {number} port
* @param {ConnectionObj} newConnection
* @param {module:ConnectionObj} newConnection
* @returns {Promise<void>}
*/
async _updateConnectionByAddressAndPort (address, port, newConnection) {
Expand Down Expand Up @@ -216,8 +213,8 @@ module.exports.ConnectionMgr = class ConnectionMgr {
/**
* Return an existing connection, or a new one
*
* @param {Socket} socket
* @return {ConnectionObj}
* @param {module:net.Socket} socket
* @return {module:ConnectionObj}
*/
findOrNewConnection (socket) {
const { remoteAddress, localPort } = socket
Expand Down Expand Up @@ -265,12 +262,13 @@ module.exports.ConnectionMgr = class ConnectionMgr {
/**
* Dump all connections for debugging
*
* @return {ConnectionObj[]}
* @return {module:ConnectionObj[]}
*/
dumpConnections () {
return this.connections
}
}
module.exports.ConnectionMgr = ConnectionMgr

process.on('unhandledRejection', (reason, p) => {
console.log('Unhandled Rejection at:', p, 'reason:', reason)
Expand Down
13 changes: 6 additions & 7 deletions src/services/MCServer/ConnectionObj.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

const crypto = require('crypto')
const { Socket } = require('net') // lgtm [js/unused-local-variable]
const { ConnectionMgr } = require('./ConnectionMgr') // lgtm [js/unused-local-variable]
const { EncryptionManager } = require('./EncryptionMgr')

/**
Expand All @@ -26,7 +24,7 @@ const { EncryptionManager } = require('./EncryptionMgr')
*/

/**
* @class ConnectionObj
* @class
* @property {string} id
* @property {number} appId
* @property {ConnectionStatus} status
Expand All @@ -39,18 +37,18 @@ const { EncryptionManager } = require('./EncryptionMgr')
* @property {LobbyCiphers} encLobby
* @property {EncryptionManager} enc
* @property {boolean} isSetupComplete
* @property {ConnectionMgr} mgr
* @property {module:ConnectionMgr.ConnectionMgr} mgr
* @property {boolean} inQueue
* @property {Buffer} decryptedCmd
* @property {Buffer} encryptedCmd
*/
module.exports.ConnectionObj = class ConnectionObj {
class ConnectionObj {

/**
*
* @param {string} connectionId
* @param {Socket} sock
* @param {ConnectionMgr} mgr
* @param {module:net/Socket} sock
* @param {module:ConnectionMgr.ConnectionMgr} mgr
*/
constructor (connectionId, sock, mgr) {
this.id = connectionId
Expand Down Expand Up @@ -148,3 +146,4 @@ module.exports.ConnectionObj = class ConnectionObj {
throw new Error('No DES decipher set on connection')
}
}
module.exports.ConnectionObj = ConnectionObj
2 changes: 1 addition & 1 deletion src/services/MCServer/GenericReplyMsg.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ const { logger } = require("../../shared/logger")

/**
* @class
* @property {Logger} logger
* @property {module:MCO_Logger.logger} logger
* @property {number} msgNo
* @property {number} toFrom
* @property {number} appId
Expand Down
2 changes: 1 addition & 1 deletion src/services/MCServer/GenericRequestMsg.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ const { logger } = require('../../shared/logger')
*
*
* @class
* @property {Logger} logger
* @property {module:MCO_Logger.logger} logger
* @property {number} msgNo
* @property {Buffer} data
* @property {Buffer} data2
Expand Down
2 changes: 1 addition & 1 deletion src/services/MCServer/LobbyServer/npsUserInfo.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const debug = require('debug')
/**
* @class
* @extends {NPSMsg}
* @property {Logger} logger
* @property {module:MCO_Logger.logger} logger
* @property {number} userId
* @property {Buffer} userName
* @property {Buffer} userData
Expand Down
2 changes: 1 addition & 1 deletion src/services/MCServer/LoginServer/LoginServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ const { NPSMsg } = require('../MCOTS/NPSMsg')

/**
* @class
* @property {Logger} logger
* @property {module:MCO_Logger.logger} logger
* @property {DatabaseManager} databaseManager
*/
class LoginServer {
Expand Down
2 changes: 1 addition & 1 deletion src/services/MCServer/LoginServer/npsUserStatus.js
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ class NPSUserStatus extends NPSMsg {

/**
*
* @return {import('../MCOTS/NPSMsg').INPSMsgJSON}
* @return {module:NPSMsg.INPSMsgJSON}
*/
toJSON () {
return {
Expand Down
2 changes: 1 addition & 1 deletion src/services/MCServer/MCOTS/LoginMsg.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ struct.register('LoginMsg', loginMsgSchema)

/**
* @class
* @property {Logger} logger
* @property {module:MCO_Logger.logger} logger
* @property {number} newMsgNo
* @property {number} toFrom
* @property {number} appId
Expand Down
4 changes: 2 additions & 2 deletions src/services/MCServer/MCOTS/MCOTServer.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,14 @@ const debug = require('debug')

/**
* @class
* @property {Logger} logger
* @property {module:MCO_Logger.logger} logger
*/
class MCOTServer {

/**
* Creates an instance of MCOTServer.
* @class
* @param {import('../../../shared/logger').Logger} logger
* @param {module:MCO_Logger.logger} logger
*/
constructor (logger) {
this.logger = logger
Expand Down
6 changes: 3 additions & 3 deletions src/services/MCServer/MCOTS/NPSMsg.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ const debug = require('debug')
* @property {number} msgVersion
* @property {string} content
* @property {string} contextId
* @property {import('./MessageNode').MESSAGE_DIRECTION} direction
* @property {module:MessageNode.MESSAGE_DIRECTION} direction
* @property {string | null } sessionkey
* @property {string} rawBuffer
*/
Expand All @@ -36,7 +36,7 @@ const debug = require('debug')

/**
* @class
* @property {Logger} logger
* @property {module:MCO_Logger.logger} logger
* @property {number} msgNo
* @property {number} msgVersion
* @property {number} reserved
Expand All @@ -48,7 +48,7 @@ class NPSMsg {

/**
*
* @param {import('./MessageNode').MESSAGE_DIRECTION} direction - the direction of the message flow
* @param {module:MessageNode.MESSAGE_DIRECTION} direction - the direction of the message flow
*/
constructor (direction) {
this.logger = logger.child({ service: 'mcoserver:NPSMsg' })
Expand Down

0 comments on commit 052b5e3

Please sign in to comment.