Source version from package.json

Signed-off-by: Jonas Zohren <jonas.zohren@adesso.de>
This commit is contained in:
Jonas Zohren 2020-10-05 20:39:35 +02:00 committed by Jonas
parent feb42b6d63
commit 8fbca1bf79

View file

@ -1,9 +1,39 @@
import { Injectable } from '@nestjs/common'; import { Injectable } from '@nestjs/common';
import { ServerStatusDto } from './server-status.dto'; import { ServerStatusDto } from './server-status.dto';
import { promises as fs } from 'fs';
import { join as joinPath } from 'path';
let versionCache: null | {
major: number;
minor: number;
patch: number;
preRelease?: string;
commit?: string;
} = null;
async function getServerVersionFromPackageJson() {
if (versionCache === null) {
const rawFileContent: string = await fs.readFile(
joinPath(__dirname, '../../package.json'),
{ encoding: 'utf8' },
);
const packageInfo: { version: string } = JSON.parse(rawFileContent);
const versionParts: number[] = packageInfo.version
.split('.')
.map((x) => parseInt(x, 10));
versionCache = {
major: versionParts[0],
minor: versionParts[1],
patch: versionParts[2],
preRelease: 'dev', // TODO: Replace this?
};
}
return versionCache;
}
@Injectable() @Injectable()
export class MonitoringService { export class MonitoringService {
getServerStatus(): ServerStatusDto { async getServerStatus(): Promise<ServerStatusDto> {
return { return {
connectionSocketQueueLenght: 0, connectionSocketQueueLenght: 0,
destictOnlineUsers: 0, destictOnlineUsers: 0,
@ -16,12 +46,7 @@ export class MonitoringService {
onlineRegisteredUsers: 0, onlineRegisteredUsers: 0,
onlineUsers: 0, onlineUsers: 0,
registeredUsers: 0, registeredUsers: 0,
serverVersion: { serverVersion: await getServerVersionFromPackageJson(),
major: 2,
minor: 0,
patch: 0,
preRelease: 'dev',
},
}; };
} }
} }