4ac12ef70a
These are the formatting & linting configuration changes from the `3.8.0` branch and the changes that they make to the overall project. The majority of these changes are from running two commands: `npm run lint:fix` `npm run style:fix` This has already been run on the `3.8.0` branch and this PR should make `master` play nicer when it comes to merges going forward. There are now four VSCode plugins recommended for server development. They've been added to the workspace file and a user should get a UI notification when the workspace is opened if they're not installed. The four plugins are: https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig https://marketplace.visualstudio.com/items?itemName=dprint.dprint https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint https://marketplace.visualstudio.com/items?itemName=biomejs.biome Once installed they should just work within the workspace. Also, be sure to `npm i` to get the new dprint application. Co-authored-by: Refringe <brownelltyler@gmail.com> Reviewed-on: https://dev.sp-tarkov.com/SPT-AKI/Server/pulls/168
42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { container } from "tsyringe";
|
|
|
|
import { ErrorHandler } from "@spt-aki/ErrorHandler";
|
|
import { Container } from "@spt-aki/di/Container";
|
|
import type { PreAkiModLoader } from "@spt-aki/loaders/PreAkiModLoader";
|
|
import { App } from "@spt-aki/utils/App";
|
|
import { Watermark } from "@spt-aki/utils/Watermark";
|
|
|
|
export class Program
|
|
{
|
|
private errorHandler: ErrorHandler;
|
|
constructor()
|
|
{
|
|
// set window properties
|
|
process.stdout.setEncoding("utf8");
|
|
process.title = "SPT-AKI Server";
|
|
this.errorHandler = new ErrorHandler();
|
|
}
|
|
|
|
public async start(): Promise<void>
|
|
{
|
|
try
|
|
{
|
|
Container.registerTypes(container);
|
|
const childContainer = container.createChildContainer();
|
|
const watermark = childContainer.resolve<Watermark>("Watermark");
|
|
watermark.initialize();
|
|
|
|
const preAkiModLoader = childContainer.resolve<PreAkiModLoader>("PreAkiModLoader");
|
|
Container.registerListTypes(childContainer);
|
|
await preAkiModLoader.load(childContainer);
|
|
|
|
Container.registerPostLoadTypes(container, childContainer);
|
|
childContainer.resolve<App>("App").load();
|
|
}
|
|
catch (err: any)
|
|
{
|
|
this.errorHandler.handleCriticalError(err instanceof Error ? err : new Error(err));
|
|
}
|
|
}
|
|
}
|