diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2019-02-05 06:43:36 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2019-02-05 06:43:36 +0900 |
| commit | d3c7129e1f457f99cf10490a10ddff55fbeb29e2 (patch) | |
| tree | 8ac6380f724214ce072661a957b289aaed82f410 /src/index.ts | |
| parent | Improve doc (diff) | |
| download | sharkey-d3c7129e1f457f99cf10490a10ddff55fbeb29e2.tar.gz sharkey-d3c7129e1f457f99cf10490a10ddff55fbeb29e2.tar.bz2 sharkey-d3c7129e1f457f99cf10490a10ddff55fbeb29e2.zip | |
Refactoring: Extract checkMongoDB function
Diffstat (limited to 'src/index.ts')
| -rw-r--r-- | src/index.ts | 37 |
1 files changed, 2 insertions, 35 deletions
diff --git a/src/index.ts b/src/index.ts index 9158737231..af18977a2c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -13,7 +13,6 @@ import * as portscanner from 'portscanner'; import * as isRoot from 'is-root'; import Xev from 'xev'; import * as sysUtils from 'systeminformation'; -import { nativeDbConn } from './db/mongodb'; import Logger from './misc/logger'; import serverStats from './daemons/server-stats'; @@ -23,6 +22,7 @@ import { Config } from './config/types'; import { lessThan } from './prelude/array'; import * as pkg from '../package.json'; import { program } from './argv'; +import { checkMongoDB } from './misc/check-mongodb'; const logger = new Logger('core', 'cyan'); const bootLogger = logger.createSubLogger('boot', 'magenta'); @@ -199,7 +199,7 @@ async function init(): Promise<Config> { // Try to connect to MongoDB try { - await checkMongoDB(config); + await checkMongoDB(config, bootLogger); } catch (e) { bootLogger.error('Cannot connect to database', true); process.exit(1); @@ -208,39 +208,6 @@ async function init(): Promise<Config> { return config; } -const requiredMongoDBVersion = [3, 6]; - -function checkMongoDB(config: Config) { - return new Promise((res, rej) => { - const mongoDBLogger = bootLogger.createSubLogger('db'); - const u = config.mongodb.user ? encodeURIComponent(config.mongodb.user) : null; - const p = config.mongodb.pass ? encodeURIComponent(config.mongodb.pass) : null; - const uri = `mongodb://${u && p ? `${u}:****@` : ''}${config.mongodb.host}:${config.mongodb.port}/${config.mongodb.db}`; - mongoDBLogger.info(`Connecting to ${uri} ...`); - - nativeDbConn().then(db => { - mongoDBLogger.succ('Connectivity confirmed'); - - db.admin().serverInfo().then(x => { - const version = x.version as string; - mongoDBLogger.info(`Version: ${version}`); - if (lessThan(version.split('.').map(x => parseInt(x, 10)), requiredMongoDBVersion)) { - mongoDBLogger.error(`MongoDB version is less than ${requiredMongoDBVersion.join('.')}. Please upgrade it.`); - rej('outdated version'); - } else { - res(); - } - }).catch(err => { - mongoDBLogger.error(`Failed to fetch server info: ${err.message}`); - rej(err); - }); - }).catch(err => { - mongoDBLogger.error(err.message); - rej(err); - }); - }); -} - async function spawnWorkers(limit: number = Infinity) { const workers = Math.min(limit, os.cpus().length); bootLogger.info(`Starting ${workers} worker${workers === 1 ? '' : 's'}...`); |