mirror of
https://github.com/sp-tarkov/server.git
synced 2025-02-13 09:10:43 -05:00
Moved Program statics into their own class to reduce circular dep errors from 19 to 2
Fixed various ILogger warnings
This commit is contained in:
parent
dd5d1373fb
commit
b5936286bd
@ -1,23 +1,11 @@
|
||||
import { ErrorHandler } from "@spt/ErrorHandler";
|
||||
import { Container } from "@spt/di/Container";
|
||||
import buildInfo from "@spt/entry/build.json" assert { type: "json" };
|
||||
import type { PreSptModLoader } from "@spt/loaders/PreSptModLoader";
|
||||
import { EntryType } from "@spt/models/enums/EntryType";
|
||||
import { App } from "@spt/utils/App";
|
||||
import { Watermark } from "@spt/utils/Watermark";
|
||||
import { container } from "tsyringe";
|
||||
|
||||
export class Program {
|
||||
private static _ENTRY_TYPE: EntryType;
|
||||
|
||||
private static _DEBUG: boolean;
|
||||
private static _COMPILED: boolean;
|
||||
private static _MODS: boolean;
|
||||
|
||||
private static _SPT_VERSION: string;
|
||||
private static _COMMIT: string;
|
||||
private static _BUILD_TIME: number;
|
||||
|
||||
private errorHandler: ErrorHandler;
|
||||
|
||||
constructor() {
|
||||
@ -44,58 +32,4 @@ export class Program {
|
||||
this.errorHandler.handleCriticalError(err instanceof Error ? err : new Error(String(err)));
|
||||
}
|
||||
}
|
||||
|
||||
public static initialize(): void {
|
||||
Program._ENTRY_TYPE = buildInfo.entryType as EntryType;
|
||||
Program._SPT_VERSION = buildInfo.sptVersion ?? "";
|
||||
Program._COMMIT = buildInfo.commit ?? "";
|
||||
Program._BUILD_TIME = buildInfo.buildTime ?? 0;
|
||||
|
||||
switch (Program._ENTRY_TYPE) {
|
||||
case EntryType.RELEASE:
|
||||
Program._DEBUG = false;
|
||||
Program._COMPILED = true;
|
||||
Program._MODS = true;
|
||||
break;
|
||||
case EntryType.BLEEDING_EDGE:
|
||||
Program._DEBUG = true;
|
||||
Program._COMPILED = true;
|
||||
Program._MODS = false;
|
||||
break;
|
||||
case EntryType.DEBUG:
|
||||
case EntryType.BLEEDING_EDGE_MODS:
|
||||
Program._DEBUG = true;
|
||||
Program._COMPILED = true;
|
||||
Program._MODS = true;
|
||||
break;
|
||||
default: // EntryType.LOCAL
|
||||
Program._DEBUG = true;
|
||||
Program._COMPILED = false;
|
||||
Program._MODS = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Public Static Getters
|
||||
public static get ENTRY_TYPE(): EntryType {
|
||||
return Program._ENTRY_TYPE;
|
||||
}
|
||||
public static get DEBUG(): boolean {
|
||||
return Program._DEBUG;
|
||||
}
|
||||
public static get COMPILED(): boolean {
|
||||
return Program._COMPILED;
|
||||
}
|
||||
public static get MODS(): boolean {
|
||||
return Program._MODS;
|
||||
}
|
||||
public static get SPT_VERSION(): string {
|
||||
return Program._SPT_VERSION;
|
||||
}
|
||||
public static get COMMIT(): string {
|
||||
return Program._COMMIT;
|
||||
}
|
||||
public static get BUILD_TIME(): number {
|
||||
return Program._BUILD_TIME;
|
||||
}
|
||||
}
|
||||
|
69
project/src/ProgramStatics.ts
Normal file
69
project/src/ProgramStatics.ts
Normal file
@ -0,0 +1,69 @@
|
||||
import buildInfo from "@spt/entry/build.json" assert { type: "json" };
|
||||
import { EntryType } from "./models/enums/EntryType";
|
||||
|
||||
// biome-ignore lint/complexity/noStaticOnlyClass:
|
||||
export class ProgramStatics {
|
||||
private static _ENTRY_TYPE: EntryType;
|
||||
|
||||
private static _DEBUG: boolean;
|
||||
private static _COMPILED: boolean;
|
||||
private static _MODS: boolean;
|
||||
|
||||
private static _SPT_VERSION: string;
|
||||
private static _COMMIT: string;
|
||||
private static _BUILD_TIME: number;
|
||||
|
||||
public static initialize(): void {
|
||||
ProgramStatics._ENTRY_TYPE = buildInfo.entryType as EntryType;
|
||||
ProgramStatics._SPT_VERSION = buildInfo.sptVersion ?? "";
|
||||
ProgramStatics._COMMIT = buildInfo.commit ?? "";
|
||||
ProgramStatics._BUILD_TIME = buildInfo.buildTime ?? 0;
|
||||
|
||||
switch (ProgramStatics._ENTRY_TYPE) {
|
||||
case EntryType.RELEASE:
|
||||
ProgramStatics._DEBUG = false;
|
||||
ProgramStatics._COMPILED = true;
|
||||
ProgramStatics._MODS = true;
|
||||
break;
|
||||
case EntryType.BLEEDING_EDGE:
|
||||
ProgramStatics._DEBUG = true;
|
||||
ProgramStatics._COMPILED = true;
|
||||
ProgramStatics._MODS = false;
|
||||
break;
|
||||
case EntryType.DEBUG:
|
||||
case EntryType.BLEEDING_EDGE_MODS:
|
||||
ProgramStatics._DEBUG = true;
|
||||
ProgramStatics._COMPILED = true;
|
||||
ProgramStatics._MODS = true;
|
||||
break;
|
||||
default: // EntryType.LOCAL
|
||||
ProgramStatics._DEBUG = true;
|
||||
ProgramStatics._COMPILED = false;
|
||||
ProgramStatics._MODS = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Public Static Getters
|
||||
public static get ENTRY_TYPE(): EntryType {
|
||||
return ProgramStatics._ENTRY_TYPE;
|
||||
}
|
||||
public static get DEBUG(): boolean {
|
||||
return ProgramStatics._DEBUG;
|
||||
}
|
||||
public static get COMPILED(): boolean {
|
||||
return ProgramStatics._COMPILED;
|
||||
}
|
||||
public static get MODS(): boolean {
|
||||
return ProgramStatics._MODS;
|
||||
}
|
||||
public static get SPT_VERSION(): string {
|
||||
return ProgramStatics._SPT_VERSION;
|
||||
}
|
||||
public static get COMMIT(): string {
|
||||
return ProgramStatics._COMMIT;
|
||||
}
|
||||
public static get BUILD_TIME(): number {
|
||||
return ProgramStatics._BUILD_TIME;
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
import { Program } from "@spt/Program";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
import { ClientLogController } from "@spt/controllers/ClientLogController";
|
||||
import { ModLoadOrder } from "@spt/loaders/ModLoadOrder";
|
||||
import { INullResponseData } from "@spt/models/eft/httpResponse/INullResponseData";
|
||||
@ -36,7 +36,7 @@ export class ClientLogCallbacks {
|
||||
public releaseNotes(): string {
|
||||
const data: IRelease = this.configServer.getConfig<ICoreConfig>(ConfigTypes.CORE).release;
|
||||
|
||||
data.betaDisclaimerText = Program.MODS
|
||||
data.betaDisclaimerText = ProgramStatics.MODS
|
||||
? this.localisationService.getText("release-beta-disclaimer-mods-enabled")
|
||||
: this.localisationService.getText("release-beta-disclaimer");
|
||||
|
||||
@ -50,8 +50,9 @@ export class ClientLogCallbacks {
|
||||
data.releaseSummaryText = this.localisationService.getText("release-summary");
|
||||
|
||||
data.isBeta =
|
||||
Program.ENTRY_TYPE === EntryType.BLEEDING_EDGE || Program.ENTRY_TYPE === EntryType.BLEEDING_EDGE_MODS;
|
||||
data.isModdable = Program.MODS;
|
||||
ProgramStatics.ENTRY_TYPE === EntryType.BLEEDING_EDGE ||
|
||||
ProgramStatics.ENTRY_TYPE === EntryType.BLEEDING_EDGE_MODS;
|
||||
data.isModdable = ProgramStatics.MODS;
|
||||
data.isModded = this.modLoadOrder.getLoadOrder().length > 0;
|
||||
|
||||
return this.httpResponse.noBody(data);
|
||||
|
@ -1,9 +1,9 @@
|
||||
import { Program } from "@spt/Program";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
import { OnLoad } from "@spt/di/OnLoad";
|
||||
import { PostSptModLoader } from "@spt/loaders/PostSptModLoader";
|
||||
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
||||
import { IHttpConfig } from "@spt/models/spt/config/IHttpConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import type { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { HttpFileUtil } from "@spt/utils/HttpFileUtil";
|
||||
@ -26,7 +26,7 @@ export class ModCallbacks implements OnLoad {
|
||||
}
|
||||
|
||||
public async onLoad(): Promise<void> {
|
||||
if (Program.MODS) {
|
||||
if (ProgramStatics.MODS) {
|
||||
await this.postSptModLoader.load();
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { Program } from "@spt/Program";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
import { ApplicationContext } from "@spt/context/ApplicationContext";
|
||||
import { ContextVariableType } from "@spt/context/ContextVariableType";
|
||||
import { HideoutHelper } from "@spt/helpers/HideoutHelper";
|
||||
@ -567,9 +567,11 @@ export class GameController {
|
||||
|
||||
protected logProfileDetails(fullProfile: ISptProfile): void {
|
||||
this.logger.debug(`Profile made with: ${fullProfile.spt.version}`);
|
||||
this.logger.debug(`Server version: ${Program.SPT_VERSION || this.coreConfig.sptVersion} ${Program.COMMIT}`);
|
||||
this.logger.debug(`Debug enabled: ${Program.DEBUG}`);
|
||||
this.logger.debug(`Mods enabled: ${Program.MODS}`);
|
||||
this.logger.debug(
|
||||
`Server version: ${ProgramStatics.SPT_VERSION || this.coreConfig.sptVersion} ${ProgramStatics.COMMIT}`,
|
||||
);
|
||||
this.logger.debug(`Debug enabled: ${ProgramStatics.DEBUG}`);
|
||||
this.logger.debug(`Mods enabled: ${ProgramStatics.MODS}`);
|
||||
}
|
||||
|
||||
public getSurvey(sessionId: string): ISurveyResponseData {
|
||||
|
@ -1,7 +1,8 @@
|
||||
import "reflect-metadata";
|
||||
import "source-map-support/register";
|
||||
import { Program } from "@spt/Program";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
|
||||
Program.initialize();
|
||||
ProgramStatics.initialize();
|
||||
const program = new Program();
|
||||
program.start();
|
||||
|
@ -1,11 +1,11 @@
|
||||
import { Program } from "@spt/Program";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
import { OnLoad } from "@spt/di/OnLoad";
|
||||
import { BundleLoader } from "@spt/loaders/BundleLoader";
|
||||
import { ModTypeCheck } from "@spt/loaders/ModTypeCheck";
|
||||
import { PreSptModLoader } from "@spt/loaders/PreSptModLoader";
|
||||
import { IPostDBLoadMod } from "@spt/models/external/IPostDBLoadMod";
|
||||
import { IPostDBLoadModAsync } from "@spt/models/external/IPostDBLoadModAsync";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import type { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { DependencyContainer, inject, injectable } from "tsyringe";
|
||||
|
||||
@ -22,7 +22,7 @@ export class PostDBModLoader implements OnLoad {
|
||||
) {}
|
||||
|
||||
public async onLoad(): Promise<void> {
|
||||
if (Program.MODS) {
|
||||
if (ProgramStatics.MODS) {
|
||||
this.container = this.preSptModLoader.getContainer();
|
||||
await this.executeModsAsync();
|
||||
this.addBundles();
|
||||
|
@ -1,10 +1,10 @@
|
||||
import { Program } from "@spt/Program";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
import { ModTypeCheck } from "@spt/loaders/ModTypeCheck";
|
||||
import { PreSptModLoader } from "@spt/loaders/PreSptModLoader";
|
||||
import { IPostSptLoadMod } from "@spt/models/external/IPostSptLoadMod";
|
||||
import { IPostSptLoadModAsync } from "@spt/models/external/IPostSptLoadModAsync";
|
||||
import { IModLoader } from "@spt/models/spt/mod/IModLoader";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import type { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { DependencyContainer, inject, injectable } from "tsyringe";
|
||||
|
||||
@ -24,7 +24,7 @@ export class PostSptModLoader implements IModLoader {
|
||||
}
|
||||
|
||||
public async load(): Promise<void> {
|
||||
if (Program.MODS) {
|
||||
if (ProgramStatics.MODS) {
|
||||
this.container = this.preSptModLoader.getContainer();
|
||||
await this.executeModsAsync();
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
import { execSync } from "node:child_process";
|
||||
import os from "node:os";
|
||||
import path from "node:path";
|
||||
import { Program } from "@spt/Program";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
import { ModLoadOrder } from "@spt/loaders/ModLoadOrder";
|
||||
import { ModTypeCheck } from "@spt/loaders/ModTypeCheck";
|
||||
import { IModDetails } from "@spt/models/eft/profile/ISptProfile";
|
||||
@ -11,7 +11,7 @@ import { IPreSptLoadModAsync } from "@spt/models/external/IPreSptLoadModAsync";
|
||||
import { ICoreConfig } from "@spt/models/spt/config/ICoreConfig";
|
||||
import { IModLoader } from "@spt/models/spt/mod/IModLoader";
|
||||
import { IPackageJsonData } from "@spt/models/spt/mod/IPackageJsonData";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import type { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
import { ModCompilerService } from "@spt/services/ModCompilerService";
|
||||
@ -50,7 +50,7 @@ export class PreSptModLoader implements IModLoader {
|
||||
}
|
||||
|
||||
public async load(container: DependencyContainer): Promise<void> {
|
||||
if (Program.MODS) {
|
||||
if (ProgramStatics.MODS) {
|
||||
this.container = container;
|
||||
await this.importModsAsync();
|
||||
await this.executeModsAsync();
|
||||
@ -286,7 +286,7 @@ export class PreSptModLoader implements IModLoader {
|
||||
* @returns True if compatible
|
||||
*/
|
||||
protected isModCombatibleWithSpt(mod: IPackageJsonData): boolean {
|
||||
const sptVersion = Program.SPT_VERSION || this.sptConfig.sptVersion;
|
||||
const sptVersion = ProgramStatics.SPT_VERSION || this.sptConfig.sptVersion;
|
||||
const modName = `${mod.author}-${mod.name}`;
|
||||
|
||||
// Error and prevent loading If no sptVersion property exists
|
||||
@ -397,7 +397,7 @@ export class PreSptModLoader implements IModLoader {
|
||||
const typeScriptFiles = this.vfs.getFilesOfType(`${modPath}src`, ".ts");
|
||||
|
||||
if (typeScriptFiles.length > 0) {
|
||||
if (Program.COMPILED) {
|
||||
if (ProgramStatics.COMPILED) {
|
||||
// compile ts into js if ts files exist and the program is compiled
|
||||
await this.modCompilerService.compileMod(mod, modPath, typeScriptFiles);
|
||||
} else {
|
||||
@ -456,7 +456,10 @@ export class PreSptModLoader implements IModLoader {
|
||||
this.localisationService.getText("modloader-installing_external_dependencies_disabled", {
|
||||
name: pkg.name,
|
||||
author: pkg.author,
|
||||
configPath: path.join(Program.COMPILED ? "SPT_Data/Server/configs" : "assets/configs", "core.json"),
|
||||
configPath: path.join(
|
||||
ProgramStatics.COMPILED ? "SPT_Data/Server/configs" : "assets/configs",
|
||||
"core.json",
|
||||
),
|
||||
configOption: "autoInstallModDependencies",
|
||||
}),
|
||||
);
|
||||
@ -478,7 +481,7 @@ export class PreSptModLoader implements IModLoader {
|
||||
|
||||
const pnpmPath = path.join(
|
||||
process.cwd(),
|
||||
Program.COMPILED ? "SPT_Data/Server/@pnpm/exe" : "node_modules/@pnpm/exe",
|
||||
ProgramStatics.COMPILED ? "SPT_Data/Server/@pnpm/exe" : "node_modules/@pnpm/exe",
|
||||
os.platform() === "win32" ? "pnpm.exe" : "pnpm",
|
||||
);
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import { Program } from "@spt/Program";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import type { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { JsonUtil } from "@spt/utils/JsonUtil";
|
||||
import { VFS } from "@spt/utils/VFS";
|
||||
import { inject, injectable } from "tsyringe";
|
||||
@ -34,7 +34,7 @@ export class ConfigServer {
|
||||
this.logger.debug("Importing configs...");
|
||||
|
||||
// Get all filepaths
|
||||
const filepath = Program.COMPILED ? "SPT_Data/Server/configs/" : "./assets/configs/";
|
||||
const filepath = ProgramStatics.COMPILED ? "SPT_Data/Server/configs/" : "./assets/configs/";
|
||||
const files = this.vfs.getFiles(filepath);
|
||||
|
||||
// Add file content to result
|
||||
@ -60,7 +60,7 @@ export class ConfigServer {
|
||||
}
|
||||
}
|
||||
|
||||
this.logger.info(`Commit hash: ${Program.COMMIT || "DEBUG"}`);
|
||||
this.logger.info(`Build date: ${Program.BUILD_TIME || "DEBUG"}`);
|
||||
this.logger.info(`Commit hash: ${ProgramStatics.COMMIT || "DEBUG"}`);
|
||||
this.logger.info(`Build date: ${ProgramStatics.BUILD_TIME || "DEBUG"}`);
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
import http, { IncomingMessage } from "node:http";
|
||||
import { Program } from "@spt/Program";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
import { HttpServerHelper } from "@spt/helpers/HttpServerHelper";
|
||||
import type { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { IWebSocketConnectionHandler } from "@spt/servers/ws/IWebSocketConnectionHandler";
|
||||
@ -49,7 +49,7 @@ export class WebSocketServer {
|
||||
return this.localisationService.getRandomTextThatMatchesPartialKey("server_start_meme_");
|
||||
}
|
||||
|
||||
return Program.COMPILED
|
||||
return ProgramStatics.COMPILED
|
||||
? `${this.localisationService.getText("server_start_success")}!`
|
||||
: this.localisationService.getText("server_start_success");
|
||||
}
|
||||
|
@ -1,10 +1,10 @@
|
||||
import { IncomingHttpHeaders, IncomingMessage, ServerResponse } from "node:http";
|
||||
import util from "node:util";
|
||||
import zlib from "node:zlib";
|
||||
import { Program } from "@spt/Program";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
import { Serializer } from "@spt/di/Serializer";
|
||||
import { EntryType } from "@spt/models/enums/EntryType";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import type { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { HttpRouter } from "@spt/routers/HttpRouter";
|
||||
import { IHttpListener } from "@spt/servers/http/IHttpListener";
|
||||
import { LocalisationService } from "@spt/services/LocalisationService";
|
||||
@ -134,7 +134,7 @@ export class SptHttpListener implements IHttpListener {
|
||||
*/
|
||||
protected logRequest(req: IncomingMessage, output: string): void {
|
||||
//
|
||||
if (Program.ENTRY_TYPE !== EntryType.RELEASE) {
|
||||
if (ProgramStatics.ENTRY_TYPE !== EntryType.RELEASE) {
|
||||
const log = new Response(req.method, output);
|
||||
this.requestsLogger.info(`RESPONSE=${this.jsonUtil.serialize(log)}`);
|
||||
}
|
||||
@ -142,7 +142,7 @@ export class SptHttpListener implements IHttpListener {
|
||||
|
||||
public async getResponse(sessionID: string, req: IncomingMessage, body: Buffer | undefined): Promise<string> {
|
||||
const info = this.getBodyInfo(body, req.url);
|
||||
if (Program.ENTRY_TYPE !== EntryType.RELEASE) {
|
||||
if (ProgramStatics.ENTRY_TYPE !== EntryType.RELEASE) {
|
||||
// Parse quest info into object
|
||||
const data = typeof info === "object" ? info : this.jsonUtil.deserialize(info);
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
import path from "node:path";
|
||||
import { Program } from "@spt/Program";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
import type { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
import { LocaleService } from "@spt/services/LocaleService";
|
||||
import { RandomUtil } from "@spt/utils/RandomUtil";
|
||||
@ -22,7 +22,7 @@ export class LocalisationService {
|
||||
) {
|
||||
const localeFileDirectory = path.join(
|
||||
process.cwd(),
|
||||
Program.COMPILED ? "SPT_Data/Server/database/locales/server" : "./assets/database/locales/server",
|
||||
ProgramStatics.COMPILED ? "SPT_Data/Server/database/locales/server" : "./assets/database/locales/server",
|
||||
);
|
||||
this.i18n = new I18n({
|
||||
locales: this.localeService.getServerSupportedLocales(),
|
||||
|
@ -2,7 +2,7 @@ import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { inject, injectable } from "tsyringe";
|
||||
import { ScriptTarget, ModuleKind, ModuleResolutionKind, transpileModule, CompilerOptions } from "typescript";
|
||||
import { Program } from "@spt/Program";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
import type { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ModHashCacheService } from "@spt/services/cache/ModHashCacheService";
|
||||
import { VFS } from "@spt/utils/VFS";
|
||||
@ -95,7 +95,7 @@ export class ModCompilerService
|
||||
const text = fs.readFileSync(filePath).toString();
|
||||
let replacedText: string;
|
||||
|
||||
if (Program.COMPILED) {
|
||||
if (ProgramStatics.COMPILED) {
|
||||
replacedText = text.replace(/(@spt)/g, `${baseDir}/obj`);
|
||||
for (const dependency of this.serverDependencies)
|
||||
{
|
||||
|
@ -1,10 +1,10 @@
|
||||
import os from "node:os";
|
||||
import { Program } from "@spt/Program";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
import { OnLoad } from "@spt/di/OnLoad";
|
||||
import { OnUpdate } from "@spt/di/OnUpdate";
|
||||
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
||||
import { ICoreConfig } from "@spt/models/spt/config/ICoreConfig";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import type { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { HttpServer } from "@spt/servers/HttpServer";
|
||||
import { DatabaseService } from "@spt/services/DatabaseService";
|
||||
@ -41,14 +41,14 @@ export class App {
|
||||
this.logger.debug(`RAM: ${(os.totalmem() / 1024 / 1024 / 1024).toFixed(2)}GB`);
|
||||
this.logger.debug(`PATH: ${this.encodingUtil.toBase64(process.argv[0])}`);
|
||||
this.logger.debug(`PATH: ${this.encodingUtil.toBase64(process.execPath)}`);
|
||||
this.logger.debug(`Server: ${Program.SPT_VERSION || this.coreConfig.sptVersion}`);
|
||||
this.logger.debug(`Server: ${ProgramStatics.SPT_VERSION || this.coreConfig.sptVersion}`);
|
||||
|
||||
if (Program.BUILD_TIME) {
|
||||
this.logger.debug(`Date: ${Program.BUILD_TIME}`);
|
||||
if (ProgramStatics.BUILD_TIME) {
|
||||
this.logger.debug(`Date: ${ProgramStatics.BUILD_TIME}`);
|
||||
}
|
||||
|
||||
if (Program.COMMIT) {
|
||||
this.logger.debug(`Commit: ${Program.COMMIT}`);
|
||||
if (ProgramStatics.COMMIT) {
|
||||
this.logger.debug(`Commit: ${ProgramStatics.COMMIT}`);
|
||||
}
|
||||
|
||||
for (const onLoad of this.onLoadComponents) {
|
||||
|
@ -1,9 +1,9 @@
|
||||
import { Program } from "@spt/Program";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
import { OnLoad } from "@spt/di/OnLoad";
|
||||
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
||||
import { IHttpConfig } from "@spt/models/spt/config/IHttpConfig";
|
||||
import { IDatabaseTables } from "@spt/models/spt/server/IDatabaseTables";
|
||||
import { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import type { ILogger } from "@spt/models/spt/utils/ILogger";
|
||||
import { ImageRouter } from "@spt/routers/ImageRouter";
|
||||
import { ConfigServer } from "@spt/servers/ConfigServer";
|
||||
import { DatabaseServer } from "@spt/servers/DatabaseServer";
|
||||
@ -42,13 +42,13 @@ export class DatabaseImporter implements OnLoad {
|
||||
* @returns path to data
|
||||
*/
|
||||
public getSptDataPath(): string {
|
||||
return Program.COMPILED ? "SPT_Data/Server/" : "./assets/";
|
||||
return ProgramStatics.COMPILED ? "SPT_Data/Server/" : "./assets/";
|
||||
}
|
||||
|
||||
public async onLoad(): Promise<void> {
|
||||
this.filepath = this.getSptDataPath();
|
||||
|
||||
if (Program.COMPILED) {
|
||||
if (ProgramStatics.COMPILED) {
|
||||
try {
|
||||
// Reading the dynamic SHA1 file
|
||||
const file = "checks.dat";
|
||||
@ -105,7 +105,7 @@ export class DatabaseImporter implements OnLoad {
|
||||
|
||||
protected onReadValidate(fileWithPath: string, data: string): void {
|
||||
// Validate files
|
||||
if (Program.COMPILED && this.hashedFile && !this.validateFile(fileWithPath, data)) {
|
||||
if (ProgramStatics.COMPILED && this.hashedFile && !this.validateFile(fileWithPath, data)) {
|
||||
this.valid = VaildationResult.FAILED;
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { Program } from "@spt/Program";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
import { ConfigTypes } from "@spt/models/enums/ConfigTypes";
|
||||
import { ICoreConfig } from "@spt/models/spt/config/ICoreConfig";
|
||||
import { LogTextColor } from "@spt/models/spt/logging/LogTextColor";
|
||||
@ -79,10 +79,10 @@ export class Watermark {
|
||||
this.text = [this.versionLabel];
|
||||
this.text = [...this.text, ...description];
|
||||
|
||||
if (Program.DEBUG) {
|
||||
if (ProgramStatics.DEBUG) {
|
||||
this.text = this.text.concat([...warning]);
|
||||
}
|
||||
if (!Program.MODS) {
|
||||
if (!ProgramStatics.MODS) {
|
||||
this.text = this.text.concat([...modding]);
|
||||
}
|
||||
|
||||
@ -105,8 +105,8 @@ export class Watermark {
|
||||
* @returns string
|
||||
*/
|
||||
public getVersionTag(withEftVersion = false): string {
|
||||
const sptVersion = Program.SPT_VERSION || this.sptConfig.sptVersion;
|
||||
const versionTag = Program.DEBUG
|
||||
const sptVersion = ProgramStatics.SPT_VERSION || this.sptConfig.sptVersion;
|
||||
const versionTag = ProgramStatics.DEBUG
|
||||
? `${sptVersion} - ${this.localisationService.getText("bleeding_edge_build")}`
|
||||
: sptVersion;
|
||||
|
||||
@ -124,10 +124,10 @@ export class Watermark {
|
||||
* @returns string
|
||||
*/
|
||||
public getInGameVersionLabel(): string {
|
||||
const sptVersion = Program.SPT_VERSION || this.sptConfig.sptVersion;
|
||||
const versionTag = Program.DEBUG
|
||||
? `${sptVersion} - BLEEDINGEDGE ${Program.COMMIT?.slice(0, 6) ?? ""}`
|
||||
: `${sptVersion} - ${Program.COMMIT?.slice(0, 6) ?? ""}`;
|
||||
const sptVersion = ProgramStatics.SPT_VERSION || this.sptConfig.sptVersion;
|
||||
const versionTag = ProgramStatics.DEBUG
|
||||
? `${sptVersion} - BLEEDINGEDGE ${ProgramStatics.COMMIT?.slice(0, 6) ?? ""}`
|
||||
: `${sptVersion} - ${ProgramStatics.COMMIT?.slice(0, 6) ?? ""}`;
|
||||
|
||||
return `${this.sptConfig.projectName} ${versionTag}`;
|
||||
}
|
||||
@ -139,7 +139,7 @@ export class Watermark {
|
||||
|
||||
/** Reset console cursor to top */
|
||||
protected resetCursor(): void {
|
||||
if (!Program.COMPILED) {
|
||||
if (!ProgramStatics.COMPILED) {
|
||||
process.stdout.write("\u001B[2J\u001B[0;0f");
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ import crypto from "node:crypto";
|
||||
import fs from "node:fs";
|
||||
import path from "node:path";
|
||||
import { promisify } from "node:util";
|
||||
import { Program } from "@spt/Program";
|
||||
import { ProgramStatics } from "@spt/ProgramStatics";
|
||||
import { IDaum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
|
||||
import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
|
||||
import { LogTextColor } from "@spt/models/spt/logging/LogTextColor";
|
||||
@ -38,7 +38,7 @@ export abstract class AbstractWinstonLogger implements ILogger {
|
||||
constructor(protected asyncQueue: IAsyncQueue) {
|
||||
this.filePath = path.join(this.getFilePath(), this.getFileName());
|
||||
this.writeFilePromisify = promisify(fs.writeFile);
|
||||
this.showDebugInConsole = Program.DEBUG;
|
||||
this.showDebugInConsole = ProgramStatics.DEBUG;
|
||||
if (!fs.existsSync(this.getFilePath())) {
|
||||
fs.mkdirSync(this.getFilePath(), { recursive: true });
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user