Adds Biome - Removes ESLint & Prettier (!383)

Boogidy, boogidy, boogidy. Let's go racing! 🏎️

Removes the over-complicated and super-slow setup we had with ESLint & Prettier in favour of Biome. The largest change with the formatting is moving from Allman braces to 1TBS braces. Other than that, it's *pretty much* the same. Ah, and that Biome runs formatting and linting on the entire project about x10 faster than the old system ran formatting on one file. Seriously, the guy who came up with that last solution should be fired. :runs:

I've kept all of the formatting and linting commands the same as before, with the main mamma-jamma being: `npm run format`, which applies formatting and linting changes to the entire project.

Formatting-on-save works (quickly!) by (1) ensuring that you're working within the VSC workspace (as you should be), and (2) have the recommended Biome VSC extension installed. The link to the Biome extension is in the README.

This limits our options on code formatting going forward; Biome, like prettier, is very opinionated with very few formatting options available. But I see this as a good thing. I'd rather spend my time arguing about which gun in Tarkov is the best, rather than coding brace styles...

...It's the TOZ, and it always will be. Don't DM me.

Co-authored-by: chomp <chomp@noreply.dev.sp-tarkov.com>
Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/383
Co-authored-by: Refringe <me@refringe.com>
Co-committed-by: Refringe <me@refringe.com>

# Conflicts:
#	project/src/callbacks/GameCallbacks.ts
#	project/src/callbacks/MatchCallbacks.ts
#	project/src/routers/static/GameStaticRouter.ts

Resolved by Refringe
This commit is contained in:
Refringe 2024-07-22 21:15:57 +00:00
parent 6613d997cc
commit afda0d5255
No known key found for this signature in database
72 changed files with 109 additions and 346 deletions

View File

@ -33,9 +33,7 @@ There are a number of VSC extensions that we recommended for this project. VSC w
- [EditorConfig](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig) - Editor Settings Synchronization - [EditorConfig](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig) - Editor Settings Synchronization
- [Vitest](https://marketplace.visualstudio.com/items?itemName=vitest.explorer) - Debugging Tests - [Vitest](https://marketplace.visualstudio.com/items?itemName=vitest.explorer) - Debugging Tests
- [SPT ID Highlighter](https://marketplace.visualstudio.com/items?itemName=refringe.spt-id-highlighter) - Converts IDs to Names - [SPT ID Highlighter](https://marketplace.visualstudio.com/items?itemName=refringe.spt-id-highlighter) - Converts IDs to Names
- [Format Code Action](https://marketplace.visualstudio.com/items?itemName=rohit-gohri.format-code-action) - Custom Format-on-save Actions - [Biome](https://marketplace.visualstudio.com/items?itemName=biomejs.biome) - Automatic Formatting & Code Standards Linting
- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - Code Formatting
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - Linting for Coding Issues & Naming Conventions
### Initial Setup ### Initial Setup
@ -53,27 +51,27 @@ To prepare the project for development you will need to:
The following commands are available after the initial setup. Run them with `npm run <command>`. The following commands are available after the initial setup. Run them with `npm run <command>`.
| Command | Description | | Command | Description |
| -------------------- | ----------------------------------------------------------------------------- | | -------------------- | ------------------------------------------------------------------------- |
| `check:circular` | Check for circular dependencies in the project. | | `check:circular` | Check for circular dependencies in the project. |
| `lint` | Check the project for coding standards and post-Prettier formatting issues. | | `lint` | Check the project for coding standards issues using Biome. |
| `lint:fix` | Automatically fix coding standard issues and post-Prettier formatting issues. | | `lint:fix` | Automatically fix coding standards issues using Biome. |
| `style` | Check the project for coding standards and post-Prettier formatting issues. | | `style` | Check the project for formatting issues using Biome. |
| `style:fix` | Automatically fix coding standard issues and post-Prettier formatting issues. | | `style:fix` | Automatically fix formatting issues using Biome. |
| `format` | Run Prettier and then ESLint Stylistic to fix code formatting. | | `format` | Automatically fix all coding standards and formatting issues using Biome. |
| `test` | Run all tests. | | `test` | Run all tests. |
| `test:watch` | Run tests in watch mode. Tests will re-run when files are changed. | | `test:watch` | Run tests in watch mode. Tests will re-run when files are changed. |
| `test:coverage` | Run tests and generate a coverage report. | | `test:coverage` | Run tests and generate a coverage report. |
| `test:ui` | Run tests in UI mode. This will open a browser window to view tests. | | `test:ui` | Run tests in UI mode. This will open a browser window to view tests. |
| `build:release` | Build the project for release. | | `build:release` | Build the project for release. |
| `build:debug` | Build the project for debugging. | | `build:debug` | Build the project for debugging. |
| `build:bleeding` | Build the project on the bleeding edge. | | `build:bleeding` | Build the project on the bleeding edge. |
| `build:bleedingmods` | Build the project on the bleeding edge with mods. | | `build:bleedingmods` | Build the project on the bleeding edge with mods. |
| `run:build` | Run the project in build mode. | | `run:build` | Run the project in build mode. |
| `run:debug` | Run the project in debug mode. | | `run:debug` | Run the project in debug mode. |
| `run:profiler` | Run the project in profiler mode. | | `run:profiler` | Run the project in profiler mode. |
| `gen:types` | Generate types for the project. | | `gen:types` | Generate types for the project. |
| `gen:docs` | Generate documentation for the project. | | `gen:docs` | Generate documentation for the project. |
### Debugging ### Debugging
@ -91,9 +89,9 @@ We're really excited that you're interested in contributing! Before submitting y
- **master** - **master**
The default branch used for the latest stable release. This branch is protected and typically is only merges with release branches. The default branch used for the latest stable release. This branch is protected and typically is only merges with release branches.
- **3.9.0-DEV** - **3.9.4-DEV**
Development for the next minor release of SPT. Minor releases target the latest version of EFT. Late in the minor release cycle the EFT version is frozen for stability to prepare for release. Larger changes to the project structure may be included in minor releases. Development for the next minor release of SPT. Minor releases target the latest version of EFT. Late in the minor release cycle the EFT version is frozen for stability to prepare for release. Larger changes to the project structure may be included in minor releases.
- **3.8.4-DEV** - **3.10.0-DEV**
Development for the next hotfix release of SPT. Hotfix releases include bug fixes and minor features that do not effect the coding structure of the project. Special care is taken to not break server mod stability. These always target the same version of EFT as the last minor release. Development for the next hotfix release of SPT. Hotfix releases include bug fixes and minor features that do not effect the coding structure of the project. Special care is taken to not break server mod stability. These always target the same version of EFT as the last minor release.
### Pull Request Guidelines ### Pull Request Guidelines
@ -111,7 +109,7 @@ We're really excited that you're interested in contributing! Before submitting y
### Style Guide ### Style Guide
We use a combination of Prettier and ESLint Stylistic to enforce a consistent code style. Please run `npm run format` before submitting your changes. This is made easier by using the recommended VSC extensions to automatically format your code whenever you save a file. We use Biome to enforce a consistent code style. Please run `npm run format` before submitting any changes. This is made easier by opening the VSC workspace and installing the recommended VSC extensions; this will ensure that your code is automatically formatted whenever you save a file.
### Tests ### Tests

View File

@ -1,15 +0,0 @@
# Exclude these folders from linting
node_modules/
out/
obj/
build/
types/
user/mods/
# Exclude these filetypes from linting
*.json
*.png
*.ico
*.jpg
*.txt
*.exe

View File

@ -1,118 +0,0 @@
{
"extends": [
"plugin:@typescript-eslint/recommended",
"plugin:@stylistic/recommended-extends",
"plugin:import/recommended",
"plugin:import/typescript",
"prettier"
],
"plugins": ["@typescript-eslint", "@stylistic", "import", "unused-imports", "switch-allman"],
"settings": {
"import/resolver": {
"typescript": {
"project": "tsconfig.json"
},
"node": {
"extensions": [".ts", ".mjs"]
}
}
},
"rules": {
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-dynamic-delete": "off",
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/no-empty-interface": "off",
"@typescript-eslint/no-var-requires": "error",
"@typescript-eslint/explicit-module-boundary-types": [
"error",
{
"allowArgumentsExplicitlyTypedAsAny": true
}
],
"@typescript-eslint/naming-convention": [
"error",
{
"selector": "default",
"format": ["camelCase"],
"leadingUnderscore": "allow"
},
{
"selector": "typeLike",
"format": ["PascalCase"]
},
{
"selector": "objectLiteralProperty",
"format": ["PascalCase", "camelCase", "snake_case"],
"leadingUnderscore": "allow"
},
{
"selector": "typeProperty",
"format": ["PascalCase", "camelCase"],
"leadingUnderscore": "allow"
},
{
"selector": "enumMember",
"format": ["UPPER_CASE"]
},
{
"selector": "property",
"modifiers": ["readonly", "static"],
"format": ["UPPER_CASE"]
}
],
"@stylistic/indent": ["error", 4, { "MemberExpression": 1, "SwitchCase": 1 }],
"@stylistic/brace-style": ["error", "allman", { "allowSingleLine": false }],
"@stylistic/semi": ["error", "always"],
"@stylistic/quotes": ["error", "double", { "avoidEscape": true }],
"@stylistic/operator-linebreak": ["error", "before"],
"@stylistic/arrow-parens": ["error", "always"],
"@stylistic/max-len": [
"warn",
{
"code": 121, // +1 to prevent conflicts with Prettier rule.
"tabWidth": 4,
"ignoreComments": true,
"ignoreTrailingComments": true,
"ignoreUrls": true,
"ignoreStrings": true,
"ignoreTemplateLiterals": true,
"ignoreRegExpLiterals": true
}
],
"@stylistic/multiline-ternary": ["error", "always-multiline"],
"import/order": [
"error",
{
"groups": ["builtin", "external", "internal", "parent", "sibling", "index"],
"pathGroups": [
{
"pattern": "tsyringe",
"group": "builtin",
"position": "before"
}
],
"newlines-between": "never",
"alphabetize": {
"order": "asc",
"caseInsensitive": true
}
}
],
"unused-imports/no-unused-imports-ts": "error",
"switch-allman/case-allman": "error"
},
"overrides": [
{
"files": ["src/di/**/*.ts"],
"rules": {
"@typescript-eslint/no-extraneous-class": "off"
}
},
{
"files": ["src/loaders/**/*.ts"],
"rules": {
"@typescript-eslint/no-var-requires": "off"
}
}
]
}

View File

@ -1,10 +0,0 @@
**/.git
**/.pkg-cache
**/.vscode
**/build
**/node_modules
**/types
**/tests/__cache__
**/tests/__coverage__
.editorconfig
src/services/ModCompilerService.ts

View File

@ -1,3 +0,0 @@
{
"quoteProps": "consistent"
}

View File

@ -1,26 +1,25 @@
{ {
"folders": [ "folders": [
{ {
"path": ".", "path": "."
}, }
], ],
"settings": { "settings": {
"window.title": "SPT Server", "window.title": "SPT Server",
"editor.formatOnSave": false, // We use an extension to format on save. "editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode", "editor.defaultFormatter": "biomejs.biome",
"editor.codeActionsOnSave": ["source.formatDocument", "source.fixAll.eslint"], "editor.codeActionsOnSave": {
"eslint.debug": false, "source.organizeImports.biome": "explicit",
"eslint.experimental.useFlatConfig": false, "quickfix.biome": "explicit"
}
}, },
"extensions": { "extensions": {
"recommendations": [ "recommendations": [
"EditorConfig.EditorConfig", // EditorConfig file format support. "EditorConfig.EditorConfig", // EditorConfig file support.
"vitest.explorer", // ViTest test runner. "vitest.explorer", // ViTest test runner.
"refringe.spt-id-highlighter", // Highly SPT IDs. "refringe.spt-id-highlighter", // SPT ID information of hover.
"rohit-gohri.format-code-action", // Custom format on save actions. "biomejs.biome" // Biome code formatting, linting, and refactoring.
"esbenp.prettier-vscode", // Prettier code formatter. ]
"dbaeumer.vscode-eslint", // ESLint code linter and formatter.
],
}, },
"launch": { "launch": {
"version": "0.2.0", "version": "0.2.0",
@ -35,7 +34,7 @@
"runtimeArgs": ["run", "run:debug"], "runtimeArgs": ["run", "run:debug"],
"outFiles": ["!**/node_modules/**"], "outFiles": ["!**/node_modules/**"],
"cwd": "${workspaceFolder}", "cwd": "${workspaceFolder}",
"outputCapture": "std", "outputCapture": "std"
}, },
{ {
"name": "Run Vitest Tests", "name": "Run Vitest Tests",
@ -45,8 +44,8 @@
"request": "launch", "request": "launch",
"runtimeArgs": ["run", "test"], "runtimeArgs": ["run", "test"],
"console": "integratedTerminal", "console": "integratedTerminal",
"internalConsoleOptions": "neverOpen", "internalConsoleOptions": "neverOpen"
}, }
], ]
}, }
} }

61
project/biome.jsonc Normal file
View File

@ -0,0 +1,61 @@
{
"$schema": "https://biomejs.dev/schemas/1.8.3/schema.json",
"organizeImports": {
"enabled": true
},
"files": {
"ignore": [
".editorconfig",
".git/*",
".pkg-cache/*",
".vscode/*",
"build/*",
"node_modules/*",
"obj/*",
"out/*",
"src/services/ModCompilerService.ts",
"tests/__cache__/*",
"tests/__coverage__/*",
"types/*",
"user/mods/*"
]
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"style": {
"useImportType": "off"
}
}
},
"formatter": {
"enabled": true,
"formatWithErrors": false,
"ignore": [],
"attributePosition": "auto",
"indentStyle": "space",
"indentWidth": 4,
"lineWidth": 120,
"lineEnding": "lf"
},
"javascript": {
"formatter": {
"arrowParentheses": "always",
"bracketSameLine": false,
"bracketSpacing": true,
"jsxQuoteStyle": "double",
"quoteProperties": "asNeeded",
"semicolons": "always",
"trailingCommas": "all"
},
"parser": {
"unsafeParameterDecoratorsEnabled": true
}
},
"json": {
"formatter": {
"trailingCommas": "none"
}
}
}

View File

@ -9,7 +9,6 @@ import download from "gulp-download";
import { exec } from "gulp-execa"; import { exec } from "gulp-execa";
import rename from "gulp-rename"; import rename from "gulp-rename";
import minimist from "minimist"; import minimist from "minimist";
// eslint-disable-next-line @typescript-eslint/naming-convention
import * as ResEdit from "resedit"; import * as ResEdit from "resedit";
import manifest from "./package.json" assert { type: "json" }; import manifest from "./package.json" assert { type: "json" };

View File

@ -12,11 +12,11 @@
}, },
"scripts": { "scripts": {
"check:circular": "madge --circular --ts-config tsconfig.json --extensions ts ./src/", "check:circular": "madge --circular --ts-config tsconfig.json --extensions ts ./src/",
"lint": "eslint src", "lint": "npx @biomejs/biome lint ./",
"lint:fix": "eslint src --fix", "lint:fix": "npx @biomejs/biome lint --write ./",
"style": "prettier src --check", "style": "npx @biomejs/biome format ./",
"style:fix": "prettier src --write", "style:fix": "npx @biomejs/biome format --write ./",
"format": "npm run style:fix && npm run lint:fix", "format": "npx @biomejs/biome check --write ./",
"test": "vitest run", "test": "vitest run",
"test:watch": "vitest", "test:watch": "vitest",
"test:coverage": "vitest run --coverage", "test:coverage": "vitest run --coverage",
@ -53,9 +53,8 @@
"ws": "~8.17" "ws": "~8.17"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "~9.2", "@biomejs/biome": "1.8.3",
"@pnpm/exe": "8.15.4", "@pnpm/exe": "8.15.4",
"@stylistic/eslint-plugin": "~1.8",
"@swc/cli": "~0.3", "@swc/cli": "~0.3",
"@swc/core": "~1.4", "@swc/core": "~1.4",
"@types/i18n": "~0.13", "@types/i18n": "~0.13",
@ -63,20 +62,11 @@
"@types/proper-lockfile": "~4.1", "@types/proper-lockfile": "~4.1",
"@types/semver": "~7.5", "@types/semver": "~7.5",
"@types/ws": "~8.5", "@types/ws": "~8.5",
"@typescript-eslint/eslint-plugin": "~7.11",
"@typescript-eslint/parser": "~7.11",
"@vitest/coverage-istanbul": "~1.6", "@vitest/coverage-istanbul": "~1.6",
"@vitest/ui": "~1.6", "@vitest/ui": "~1.6",
"@yao-pkg/pkg": "5.11.5", "@yao-pkg/pkg": "5.11.5",
"@yao-pkg/pkg-fetch": "3.5.9", "@yao-pkg/pkg-fetch": "3.5.9",
"cross-env": "~7.0", "cross-env": "~7.0",
"eslint": "~8.57",
"eslint-config-prettier": "~9.1",
"eslint-import-resolver-typescript": "~3.6",
"eslint-plugin-import": "~2.29",
"eslint-plugin-prettier": "~5.1",
"eslint-plugin-switch-allman": "~1.0",
"eslint-plugin-unused-imports": "~3.2",
"fs-extra": "~11.2", "fs-extra": "~11.2",
"gulp": "~4.0", "gulp": "~4.0",
"gulp-decompress": "~3.0", "gulp-decompress": "~3.0",
@ -85,14 +75,11 @@
"gulp-rename": "~2.0", "gulp-rename": "~2.0",
"madge": "~6.1", "madge": "~6.1",
"minimist": "~1.2", "minimist": "~1.2",
"prettier": "~3.3",
"resedit": "~2.0", "resedit": "~2.0",
"ts-node-dev": "~2.0", "ts-node-dev": "~2.0",
"tsconfig-paths": "~4.2", "tsconfig-paths": "~4.2",
"tslint-config-prettier": "~1.18",
"typedoc": "~0.25", "typedoc": "~0.25",
"typemoq": "~2.1", "typemoq": "~2.1",
"typescript-eslint": "~7.11",
"vitest": "~1.6" "vitest": "~1.6"
}, },
"targets": { "targets": {

View File

@ -20,7 +20,6 @@ export class AchievementCallbacks
/** /**
* Handle client/achievement/list * Handle client/achievement/list
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public getAchievements( public getAchievements(
url: string, url: string,
info: IEmptyRequestData, info: IEmptyRequestData,
@ -33,7 +32,6 @@ export class AchievementCallbacks
/** /**
* Handle client/achievement/statistic * Handle client/achievement/statistic
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public statistic( public statistic(
url: string, url: string,
info: IEmptyRequestData, info: IEmptyRequestData,

View File

@ -21,7 +21,6 @@ export class BuildsCallbacks
/** /**
* Handle client/builds/list * Handle client/builds/list
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public getBuilds(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IUserBuilds> public getBuilds(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IUserBuilds>
{ {
return this.httpResponse.getBody(this.buildController.getUserBuilds(sessionID)); return this.httpResponse.getBody(this.buildController.getUserBuilds(sessionID));
@ -30,7 +29,6 @@ export class BuildsCallbacks
/** /**
* Handle client/builds/magazine/save * Handle client/builds/magazine/save
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public createMagazineTemplate(url: string, request: ISetMagazineRequest, sessionID: string): INullResponseData public createMagazineTemplate(url: string, request: ISetMagazineRequest, sessionID: string): INullResponseData
{ {
this.buildController.createMagazineTemplate(sessionID, request); this.buildController.createMagazineTemplate(sessionID, request);
@ -41,7 +39,6 @@ export class BuildsCallbacks
/** /**
* Handle client/builds/weapon/save * Handle client/builds/weapon/save
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public setWeapon(url: string, info: IPresetBuildActionRequestData, sessionID: string): INullResponseData public setWeapon(url: string, info: IPresetBuildActionRequestData, sessionID: string): INullResponseData
{ {
this.buildController.saveWeaponBuild(sessionID, info); this.buildController.saveWeaponBuild(sessionID, info);
@ -52,7 +49,6 @@ export class BuildsCallbacks
/** /**
* Handle client/builds/equipment/save * Handle client/builds/equipment/save
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public setEquipment(url: string, info: IPresetBuildActionRequestData, sessionID: string): INullResponseData public setEquipment(url: string, info: IPresetBuildActionRequestData, sessionID: string): INullResponseData
{ {
this.buildController.saveEquipmentBuild(sessionID, info); this.buildController.saveEquipmentBuild(sessionID, info);
@ -63,7 +59,6 @@ export class BuildsCallbacks
/** /**
* Handle client/builds/delete * Handle client/builds/delete
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public deleteBuild(url: string, info: IRemoveBuildRequestData, sessionID: string): INullResponseData public deleteBuild(url: string, info: IRemoveBuildRequestData, sessionID: string): INullResponseData
{ {
this.buildController.removeBuild(sessionID, info); this.buildController.removeBuild(sessionID, info);

View File

@ -222,11 +222,9 @@ export class DataCallbacks
supplyNextTime: this.traderHelper.getNextUpdateTimestamp(traderId), supplyNextTime: this.traderHelper.getNextUpdateTimestamp(traderId),
prices: handbookPrices, prices: handbookPrices,
currencyCourses: { currencyCourses: {
/* eslint-disable @typescript-eslint/naming-convention */
"5449016a4bdc2d6f028b456f": handbookPrices[Money.ROUBLES], "5449016a4bdc2d6f028b456f": handbookPrices[Money.ROUBLES],
"569668774bdc2da2298b4568": handbookPrices[Money.EUROS], "569668774bdc2da2298b4568": handbookPrices[Money.EUROS],
"5696686a4bdc2da3298b456a": handbookPrices[Money.DOLLARS], "5696686a4bdc2da3298b456a": handbookPrices[Money.DOLLARS],
/* eslint-enable @typescript-eslint/naming-convention */
}, },
}; };

View File

@ -40,7 +40,6 @@ import { TimeUtil } from "@spt/utils/TimeUtil";
@injectable() @injectable()
export class DialogueCallbacks implements OnUpdate export class DialogueCallbacks implements OnUpdate
{ {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
constructor( constructor(
@inject("HashUtil") protected hashUtil: HashUtil, @inject("HashUtil") protected hashUtil: HashUtil,
@inject("TimeUtil") protected timeUtil: TimeUtil, @inject("TimeUtil") protected timeUtil: TimeUtil,
@ -66,7 +65,6 @@ export class DialogueCallbacks implements OnUpdate
* Handle client/chatServer/list * Handle client/chatServer/list
* @returns IChatServer[] * @returns IChatServer[]
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public getChatServerList( public getChatServerList(
url: string, url: string,
info: IGetChatServerListRequestData, info: IGetChatServerListRequestData,
@ -171,7 +169,6 @@ export class DialogueCallbacks implements OnUpdate
} }
/** Handle client/friend/request/list/outbox */ /** Handle client/friend/request/list/outbox */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public listOutbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<any[]> public listOutbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<any[]>
{ {
return this.httpResponse.getBody([]); return this.httpResponse.getBody([]);
@ -180,7 +177,6 @@ export class DialogueCallbacks implements OnUpdate
/** /**
* Handle client/friend/request/list/inbox * Handle client/friend/request/list/inbox
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public listInbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<any[]> public listInbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<any[]>
{ {
return this.httpResponse.getBody([]); return this.httpResponse.getBody([]);
@ -189,7 +185,6 @@ export class DialogueCallbacks implements OnUpdate
/** /**
* Handle client/friend/request/send * Handle client/friend/request/send
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public sendFriendRequest( public sendFriendRequest(
url: string, url: string,
request: IFriendRequestData, request: IFriendRequestData,
@ -202,7 +197,6 @@ export class DialogueCallbacks implements OnUpdate
/** /**
* Handle client/friend/request/accept-all * Handle client/friend/request/accept-all
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public acceptAllFriendRequests(url: string, request: IEmptyRequestData, sessionID: string): INullResponseData public acceptAllFriendRequests(url: string, request: IEmptyRequestData, sessionID: string): INullResponseData
{ {
return this.httpResponse.nullResponse(); return this.httpResponse.nullResponse();
@ -211,7 +205,6 @@ export class DialogueCallbacks implements OnUpdate
/** /**
* Handle client/friend/request/accept * Handle client/friend/request/accept
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public acceptFriendRequest( public acceptFriendRequest(
url: string, url: string,
request: IAcceptFriendRequestData, request: IAcceptFriendRequestData,
@ -224,7 +217,6 @@ export class DialogueCallbacks implements OnUpdate
/** /**
* Handle client/friend/request/decline * Handle client/friend/request/decline
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public declineFriendRequest( public declineFriendRequest(
url: string, url: string,
request: IDeclineFriendRequestData, request: IDeclineFriendRequestData,
@ -237,7 +229,6 @@ export class DialogueCallbacks implements OnUpdate
/** /**
* Handle client/friend/request/cancel * Handle client/friend/request/cancel
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public cancelFriendRequest( public cancelFriendRequest(
url: string, url: string,
request: ICancelFriendRequestData, request: ICancelFriendRequestData,
@ -248,33 +239,28 @@ export class DialogueCallbacks implements OnUpdate
} }
/** Handle client/friend/delete */ /** Handle client/friend/delete */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData public deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData
{ {
return this.httpResponse.nullResponse(); return this.httpResponse.nullResponse();
} }
/** Handle client/friend/ignore/set */ /** Handle client/friend/ignore/set */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public ignoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData public ignoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData
{ {
return this.httpResponse.nullResponse(); return this.httpResponse.nullResponse();
} }
/** Handle client/friend/ignore/remove */ /** Handle client/friend/ignore/remove */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public unIgnoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData public unIgnoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData
{ {
return this.httpResponse.nullResponse(); return this.httpResponse.nullResponse();
} }
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]> public clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>
{ {
return this.httpResponse.emptyArrayResponse(); return this.httpResponse.emptyArrayResponse();
} }
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]> public removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>
{ {
return this.httpResponse.emptyArrayResponse(); return this.httpResponse.emptyArrayResponse();
@ -308,7 +294,6 @@ export class DialogueCallbacks implements OnUpdate
throw new Error("Method not implemented."); throw new Error("Method not implemented.");
} }
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public async onUpdate(timeSinceLastRun: number): Promise<boolean> public async onUpdate(timeSinceLastRun: number): Promise<boolean>
{ {
this.dialogueController.update(); this.dialogueController.update();

View File

@ -172,7 +172,6 @@ export class GameCallbacks implements OnLoad
* Handle singleplayer/settings/getRaidTime * Handle singleplayer/settings/getRaidTime
* @returns string * @returns string
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public getRaidTime(url: string, request: IGetRaidTimeRequest, sessionID: string): IGetRaidTimeResponse public getRaidTime(url: string, request: IGetRaidTimeRequest, sessionID: string): IGetRaidTimeResponse
{ {
return this.httpResponse.noBody(this.gameController.getRaidTime(sessionID, request)); return this.httpResponse.noBody(this.gameController.getRaidTime(sessionID, request));

View File

@ -33,21 +33,18 @@ export class MatchCallbacks
{} {}
/** Handle client/match/updatePing */ /** Handle client/match/updatePing */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public updatePing(url: string, info: IUpdatePingRequestData, sessionID: string): INullResponseData public updatePing(url: string, info: IUpdatePingRequestData, sessionID: string): INullResponseData
{ {
return this.httpResponse.nullResponse(); return this.httpResponse.nullResponse();
} }
// Handle client/match/exit // Handle client/match/exit
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public exitMatch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData public exitMatch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
{ {
return this.httpResponse.nullResponse(); return this.httpResponse.nullResponse();
} }
/** Handle client/match/group/exit_from_menu */ /** Handle client/match/group/exit_from_menu */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public exitToMenu(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData public exitToMenu(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
{ {
return this.httpResponse.nullResponse(); return this.httpResponse.nullResponse();
@ -62,20 +59,17 @@ export class MatchCallbacks
return this.httpResponse.getBody({ squad: [] }); return this.httpResponse.getBody({ squad: [] });
} }
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public startGroupSearch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData public startGroupSearch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
{ {
return this.httpResponse.nullResponse(); return this.httpResponse.nullResponse();
} }
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public stopGroupSearch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData public stopGroupSearch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
{ {
return this.httpResponse.nullResponse(); return this.httpResponse.nullResponse();
} }
/** Handle client/match/group/invite/send */ /** Handle client/match/group/invite/send */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public sendGroupInvite( public sendGroupInvite(
url: string, url: string,
info: IMatchGroupInviteSendRequest, info: IMatchGroupInviteSendRequest,
@ -86,7 +80,6 @@ export class MatchCallbacks
} }
/** Handle client/match/group/invite/accept */ /** Handle client/match/group/invite/accept */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public acceptGroupInvite( public acceptGroupInvite(
url: string, url: string,
info: IRequestIdRequest, info: IRequestIdRequest,
@ -94,28 +87,24 @@ export class MatchCallbacks
): IGetBodyResponseData<IGroupCharacter[]> ): IGetBodyResponseData<IGroupCharacter[]>
{ {
const result = []; const result = [];
// eslint-disable-next-line strict-null-checks/all
result.push({}); result.push({});
return this.httpResponse.getBody(result); return this.httpResponse.getBody(result);
} }
/** Handle client/match/group/invite/decline */ /** Handle client/match/group/invite/decline */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public declineGroupInvite(url: string, info: IRequestIdRequest, sessionId: string): IGetBodyResponseData<boolean> public declineGroupInvite(url: string, info: IRequestIdRequest, sessionId: string): IGetBodyResponseData<boolean>
{ {
return this.httpResponse.getBody(true); return this.httpResponse.getBody(true);
} }
/** Handle client/match/group/invite/cancel */ /** Handle client/match/group/invite/cancel */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public cancelGroupInvite(url: string, info: IRequestIdRequest, sessionID: string): IGetBodyResponseData<boolean> public cancelGroupInvite(url: string, info: IRequestIdRequest, sessionID: string): IGetBodyResponseData<boolean>
{ {
return this.httpResponse.getBody(true); return this.httpResponse.getBody(true);
} }
/** Handle client/match/group/transfer */ /** Handle client/match/group/transfer */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public transferGroup( public transferGroup(
url: string, url: string,
info: IMatchGroupTransferRequest, info: IMatchGroupTransferRequest,
@ -126,7 +115,6 @@ export class MatchCallbacks
} }
/** Handle client/match/group/invite/cancel-all */ /** Handle client/match/group/invite/cancel-all */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public cancelAllGroupInvite( public cancelAllGroupInvite(
url: string, url: string,
info: IEmptyRequestData, info: IEmptyRequestData,
@ -137,14 +125,12 @@ export class MatchCallbacks
} }
/** @deprecated - not called on raid start/end or game start/exit */ /** @deprecated - not called on raid start/end or game start/exit */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public putMetrics(url: string, info: IPutMetricsRequestData, sessionId: string): INullResponseData public putMetrics(url: string, info: IPutMetricsRequestData, sessionId: string): INullResponseData
{ {
return this.httpResponse.nullResponse(); return this.httpResponse.nullResponse();
} }
// Handle client/match/available // Handle client/match/available
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public serverAvailable(url: string, info: IEmptyRequestData, sessionId: string): IGetBodyResponseData<boolean> public serverAvailable(url: string, info: IEmptyRequestData, sessionId: string): IGetBodyResponseData<boolean>
{ {
const output = this.matchController.getEnabled(); const output = this.matchController.getEnabled();
@ -163,7 +149,6 @@ export class MatchCallbacks
} }
/** Handle client/getMetricsConfig */ /** Handle client/getMetricsConfig */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public getMetrics(url: string, info: any, sessionID: string): IGetBodyResponseData<string> public getMetrics(url: string, info: any, sessionID: string): IGetBodyResponseData<string>
{ {
return this.httpResponse.getBody(this.jsonUtil.serialize(this.databaseService.getMatch().metrics)); return this.httpResponse.getBody(this.jsonUtil.serialize(this.databaseService.getMatch().metrics));
@ -174,7 +159,6 @@ export class MatchCallbacks
* Handle client/match/group/status * Handle client/match/group/status
* @returns * @returns
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public getGroupStatus( public getGroupStatus(
url: string, url: string,
info: IMatchGroupStatusRequest, info: IMatchGroupStatusRequest,
@ -185,7 +169,6 @@ export class MatchCallbacks
} }
/** Handle client/match/group/delete */ /** Handle client/match/group/delete */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public deleteGroup(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<boolean> public deleteGroup(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<boolean>
{ {
this.matchController.deleteGroup(info); this.matchController.deleteGroup(info);
@ -193,14 +176,12 @@ export class MatchCallbacks
} }
// Handle client/match/group/leave // Handle client/match/group/leave
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public leaveGroup(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<boolean> public leaveGroup(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<boolean>
{ {
return this.httpResponse.getBody(true); return this.httpResponse.getBody(true);
} }
/** Handle client/match/group/player/remove */ /** Handle client/match/group/player/remove */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public removePlayerFromGroup( public removePlayerFromGroup(
url: string, url: string,
info: IMatchGroupPlayerRemoveRequest, info: IMatchGroupPlayerRemoveRequest,

View File

@ -26,7 +26,6 @@ export class NotifierCallbacks
* until we actually have something to send because otherwise we'd spam the client * until we actually have something to send because otherwise we'd spam the client
* and the client would abort the connection due to spam. * and the client would abort the connection due to spam.
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public sendNotification(sessionID: string, req: any, resp: any, data: any): void public sendNotification(sessionID: string, req: any, resp: any, data: any): void
{ {
const splittedUrl = req.url.split("/"); const splittedUrl = req.url.split("/");
@ -45,7 +44,6 @@ export class NotifierCallbacks
/** Handle push/notifier/get */ /** Handle push/notifier/get */
/** Handle push/notifier/getwebsocket */ /** Handle push/notifier/getwebsocket */
// TODO: removed from client? // TODO: removed from client?
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData<any[]> public getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData<any[]>
{ {
return this.httpResponse.emptyArrayResponse(); return this.httpResponse.emptyArrayResponse();
@ -65,7 +63,6 @@ export class NotifierCallbacks
* Handle client/game/profile/select * Handle client/game/profile/select
* @returns ISelectProfileResponse * @returns ISelectProfileResponse
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public selectProfile( public selectProfile(
url: string, url: string,
info: IUIDRequestData, info: IUIDRequestData,
@ -75,7 +72,6 @@ export class NotifierCallbacks
return this.httpResponse.getBody({ status: "ok" }); return this.httpResponse.getBody({ status: "ok" });
} }
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public notify(url: string, info: any, sessionID: string): string public notify(url: string, info: any, sessionID: string): string
{ {
return "NOTIFY"; return "NOTIFY";

View File

@ -70,7 +70,6 @@ export class DialogueController
* Handle client/friend/list * Handle client/friend/list
* @returns IGetFriendListDataResponse * @returns IGetFriendListDataResponse
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public getFriendList(sessionID: string): IGetFriendListDataResponse public getFriendList(sessionID: string): IGetFriendListDataResponse
{ {
// Force a fake friend called SPT into friend list // Force a fake friend called SPT into friend list
@ -379,7 +378,6 @@ export class DialogueController
} }
/** client/mail/msg/send */ /** client/mail/msg/send */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public sendMessage(sessionId: string, request: ISendMessageRequest): string public sendMessage(sessionId: string, request: ISendMessageRequest): string
{ {
this.mailSendService.sendPlayerMessageToNpc(sessionId, request.dialogId, request.text); this.mailSendService.sendPlayerMessageToNpc(sessionId, request.dialogId, request.text);

View File

@ -172,13 +172,10 @@ export class HealthController
const payMoneyRequest: IProcessBuyTradeRequestData = { const payMoneyRequest: IProcessBuyTradeRequestData = {
Action: healthTreatmentRequest.Action, Action: healthTreatmentRequest.Action,
tid: Traders.THERAPIST, tid: Traders.THERAPIST,
// eslint-disable-next-line @typescript-eslint/naming-convention
scheme_items: healthTreatmentRequest.items, scheme_items: healthTreatmentRequest.items,
type: "", type: "",
// eslint-disable-next-line @typescript-eslint/naming-convention
item_id: "", item_id: "",
count: 0, count: 0,
// eslint-disable-next-line @typescript-eslint/naming-convention
scheme_id: 0, scheme_id: 0,
}; };
@ -230,7 +227,6 @@ export class HealthController
* @param info Request data * @param info Request data
* @param sessionID * @param sessionID
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public applyWorkoutChanges(pmcData: IPmcData, info: IWorkoutData, sessionId: string): void public applyWorkoutChanges(pmcData: IPmcData, info: IWorkoutData, sessionId: string): void
{ {
// https://dev.sp-tarkov.com/SPT/Server/issues/2674 // https://dev.sp-tarkov.com/SPT/Server/issues/2674

View File

@ -1150,7 +1150,6 @@ export class HideoutController
* @param sessionId Session id * @param sessionId Session id
* @returns IQteData array * @returns IQteData array
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public getQteList(sessionId: string): IQteData[] public getQteList(sessionId: string): IQteData[]
{ {
return this.databaseService.getHideout().qte; return this.databaseService.getHideout().qte;
@ -1163,7 +1162,6 @@ export class HideoutController
* @param pmcData Profile to adjust * @param pmcData Profile to adjust
* @param request QTE result object * @param request QTE result object
*/ */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public handleQTEEventOutcome( public handleQTEEventOutcome(
sessionId: string, sessionId: string,
pmcData: IPmcData, pmcData: IPmcData,

View File

@ -75,7 +75,6 @@ export class MatchController
} }
/** Handle match/group/start_game */ /** Handle match/group/start_game */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public joinMatch(info: IMatchGroupStartGameRequest, sessionId: string): IProfileStatusResponse public joinMatch(info: IMatchGroupStartGameRequest, sessionId: string): IProfileStatusResponse
{ {
const output: IProfileStatusResponse = { maxPveCountExceeded: false, profiles: [] }; const output: IProfileStatusResponse = { maxPveCountExceeded: false, profiles: [] };
@ -93,7 +92,6 @@ export class MatchController
raidMode: "Online", raidMode: "Online",
mode: "deathmatch", mode: "deathmatch",
shortId: undefined, shortId: undefined,
// eslint-disable-next-line @typescript-eslint/naming-convention
additional_info: undefined, additional_info: undefined,
}); });
@ -101,7 +99,6 @@ export class MatchController
} }
/** Handle client/match/group/status */ /** Handle client/match/group/status */
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public getGroupStatus(info: IMatchGroupStatusRequest): IMatchGroupStatusResponse public getGroupStatus(info: IMatchGroupStatusRequest): IMatchGroupStatusResponse
{ {
return { players: [], maxPveCountExceeded: false }; return { players: [], maxPveCountExceeded: false };

View File

@ -665,7 +665,6 @@ export class QuestController
startTime: 0, startTime: 0,
status: QuestStatus.AvailableAfter, status: QuestStatus.AvailableAfter,
statusTimers: { statusTimers: {
// eslint-disable-next-line @typescript-eslint/naming-convention
9: this.timeUtil.getTimestamp(), 9: this.timeUtil.getTimestamp(),
}, },
availableAfter: availableAfterTimestamp, availableAfter: availableAfterTimestamp,

View File

@ -212,12 +212,9 @@ export class TradeController
Action: "TradingConfirm", Action: "TradingConfirm",
type: "buy_from_ragfair", type: "buy_from_ragfair",
tid: "ragfair", tid: "ragfair",
// eslint-disable-next-line @typescript-eslint/naming-convention
item_id: fleaOffer._id, // Store ragfair offerId in buyRequestData.item_id item_id: fleaOffer._id, // Store ragfair offerId in buyRequestData.item_id
count: requestOffer.count, count: requestOffer.count,
// eslint-disable-next-line @typescript-eslint/naming-convention
scheme_id: 0, scheme_id: 0,
// eslint-disable-next-line @typescript-eslint/naming-convention
scheme_items: requestOffer.items, scheme_items: requestOffer.items,
}; };

View File

@ -366,7 +366,6 @@ export class BotLootGenerator
{ {
// surv12 // surv12
this.addLootFromPool( this.addLootFromPool(
// eslint-disable-next-line @typescript-eslint/naming-convention
{ "5d02797c86f774203f38e30a": 1 }, { "5d02797c86f774203f38e30a": 1 },
[EquipmentSlots.SECURED_CONTAINER], [EquipmentSlots.SECURED_CONTAINER],
1, 1,
@ -379,7 +378,6 @@ export class BotLootGenerator
// AFAK // AFAK
this.addLootFromPool( this.addLootFromPool(
// eslint-disable-next-line @typescript-eslint/naming-convention
{ "60098ad7c2240c0fe85c570a": 1 }, { "60098ad7c2240c0fe85c570a": 1 },
[EquipmentSlots.SECURED_CONTAINER], [EquipmentSlots.SECURED_CONTAINER],
10, 10,

View File

@ -478,7 +478,6 @@ export class BotWeaponGenerator
// Define min/max of how many grenades bot will have // Define min/max of how many grenades bot will have
const ubglMinMax: GenerationData = { const ubglMinMax: GenerationData = {
// eslint-disable-next-line @typescript-eslint/naming-convention
weights: { 1: 1, 2: 1 }, weights: { 1: 1, 2: 1 },
whitelist: {}, whitelist: {},
}; };

View File

@ -29,7 +29,6 @@ export class ExternalInventoryMagGen implements IInventoryMagGen
return 99; return 99;
} }
// eslint-disable-next-line @typescript-eslint/no-unused-vars
canHandleInventoryMagGen(inventoryMagGen: InventoryMagGen): boolean canHandleInventoryMagGen(inventoryMagGen: InventoryMagGen): boolean
{ {
return true; // Fallback, if code reaches here it means no other implementation can handle this type of magazine return true; // Fallback, if code reaches here it means no other implementation can handle this type of magazine

View File

@ -56,7 +56,6 @@ export class HttpServerHelper
public sendTextJson(resp: any, output: any): void public sendTextJson(resp: any, output: any): void
{ {
// eslint-disable-next-line @typescript-eslint/naming-convention
resp.writeHead(200, "OK", { "Content-Type": this.mime.json }); resp.writeHead(200, "OK", { "Content-Type": this.mime.json });
resp.end(output); resp.end(output);
} }

View File

@ -1266,7 +1266,6 @@ export class InventoryHelper
} }
} }
// eslint-disable-next-line @typescript-eslint/no-namespace
namespace InventoryHelper namespace InventoryHelper
{ {
export interface InventoryItemHash export interface InventoryItemHash

View File

@ -1922,7 +1922,6 @@ export class ItemHelper
} }
} }
// eslint-disable-next-line @typescript-eslint/no-namespace
namespace ItemHelper namespace ItemHelper
{ {
export interface ItemSize export interface ItemSize

View File

@ -52,7 +52,6 @@ export class PostDBModLoader implements OnLoad
this.preSptModLoader.getImportedModDetails()[modName].main this.preSptModLoader.getImportedModDetails()[modName].main
}`; }`;
const modpath = `${process.cwd()}/${filepath}`; const modpath = `${process.cwd()}/${filepath}`;
// eslint-disable-next-line @typescript-eslint/no-var-requires
const mod = require(modpath); const mod = require(modpath);
if (this.modTypeCheck.isPostDBLoadAsync(mod.mod)) if (this.modTypeCheck.isPostDBLoadAsync(mod.mod))

View File

@ -44,7 +44,6 @@ export class PostSptModLoader implements IModLoader
this.preSptModLoader.getImportedModDetails()[modName].main this.preSptModLoader.getImportedModDetails()[modName].main
}`; }`;
const modpath = `${process.cwd()}/${filepath}`; const modpath = `${process.cwd()}/${filepath}`;
// eslint-disable-next-line @typescript-eslint/no-var-requires
const mod = require(modpath); const mod = require(modpath);
if (this.modTypeCheck.isPostSptLoadAsync(mod.mod)) if (this.modTypeCheck.isPostSptLoadAsync(mod.mod))

View File

@ -382,7 +382,6 @@ export class PreSptModLoader implements IModLoader
// Import class // Import class
const modFilePath = `${process.cwd()}/${filepath}`; const modFilePath = `${process.cwd()}/${filepath}`;
// eslint-disable-next-line @typescript-eslint/no-var-requires
const requiredMod = require(modFilePath); const requiredMod = require(modFilePath);
if (!this.modTypeCheck.isPostV3Compatible(requiredMod.mod)) if (!this.modTypeCheck.isPostV3Compatible(requiredMod.mod))

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { Ixyz } from "@spt/models/eft/common/Ixyz"; import { Ixyz } from "@spt/models/eft/common/Ixyz";
import { Item } from "@spt/models/eft/common/tables/IItem"; import { Item } from "@spt/models/eft/common/tables/IItem";

View File

@ -1,7 +1,6 @@
import { MinMax } from "@spt/models/common/MinMax"; import { MinMax } from "@spt/models/common/MinMax";
import { Ixyz } from "@spt/models/eft/common/Ixyz"; import { Ixyz } from "@spt/models/eft/common/Ixyz";
/* eslint-disable @typescript-eslint/naming-convention */
export interface ILocationBase export interface ILocationBase
{ {
AccessKeys: string[] AccessKeys: string[]

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
export interface IBotCore export interface IBotCore
{ {
SAVAGE_KILL_DIST: number SAVAGE_KILL_DIST: number

View File

@ -49,7 +49,6 @@ export interface EquipmentChances
TacticalVest: number TacticalVest: number
} }
/* eslint-disable @typescript-eslint/naming-convention */
export interface ModsChances export interface ModsChances
{ {
mod_charge: number mod_charge: number

View File

@ -3,7 +3,6 @@ import { Dialogue, IUserBuilds } from "@spt/models/eft/profile/ISptProfile";
export interface IProfileTemplates export interface IProfileTemplates
{ {
/* eslint-disable @typescript-eslint/naming-convention */
"Standard": IProfileSides "Standard": IProfileSides
"Left Behind": IProfileSides "Left Behind": IProfileSides
"Prepare To Escape": IProfileSides "Prepare To Escape": IProfileSides
@ -13,7 +12,6 @@ export interface IProfileTemplates
"SPT Developer": IProfileSides "SPT Developer": IProfileSides
"SPT Easy start": IProfileSides "SPT Easy start": IProfileSides
"SPT Zero to hero": IProfileSides "SPT Zero to hero": IProfileSides
/* eslint-enable @typescript-eslint/naming-convention */
} }
export interface IProfileSides export interface IProfileSides

View File

@ -295,9 +295,7 @@ export interface Props
foodUseTime?: number foodUseTime?: number
foodEffectType?: string foodEffectType?: string
StimulatorBuffs?: string StimulatorBuffs?: string
// eslint-disable-next-line @typescript-eslint/naming-convention
effects_health?: IHealthEffect[] | Record<string, Record<string, number>> effects_health?: IHealthEffect[] | Record<string, Record<string, number>>
// eslint-disable-next-line @typescript-eslint/naming-convention
effects_damage?: Record<string, IEffectDamageProps> effects_damage?: Record<string, IEffectDamageProps>
MaximumNumberOfUsage?: number MaximumNumberOfUsage?: number
knifeHitDelay?: number knifeHitDelay?: number
@ -473,7 +471,6 @@ export interface Slot
_id: string _id: string
_parent: string _parent: string
_props: SlotProps _props: SlotProps
// eslint-disable-next-line @typescript-eslint/naming-convention
_max_count?: number _max_count?: number
_required?: boolean _required?: boolean
_mergeSlotWithChildren?: boolean _mergeSlotWithChildren?: boolean
@ -502,7 +499,6 @@ export interface StackSlot
_name?: string _name?: string
_id: string _id: string
_parent: string _parent: string
// eslint-disable-next-line @typescript-eslint/naming-convention
_max_count: number _max_count: number
_props: StackSlotProps _props: StackSlotProps
_proto: string _proto: string

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { Item } from "@spt/models/eft/common/tables/IItem"; import { Item } from "@spt/models/eft/common/tables/IItem";
import { DogtagExchangeSide } from "@spt/models/enums/DogtagExchangeSide"; import { DogtagExchangeSide } from "@spt/models/enums/DogtagExchangeSide";
import { ITraderServiceModel } from "@spt/models/spt/services/ITraderServiceModel"; import { ITraderServiceModel } from "@spt/models/spt/services/ITraderServiceModel";

View File

@ -1,5 +1,4 @@
export interface IDeleteFriendRequest export interface IDeleteFriendRequest
{ {
// eslint-disable-next-line @typescript-eslint/naming-convention
friend_id: string friend_id: string
} }

View File

@ -8,7 +8,6 @@ export interface IGameConfigResponse
activeProfileId: string activeProfileId: string
backend: Backend backend: Backend
useProtobuf: boolean useProtobuf: boolean
// eslint-disable-next-line @typescript-eslint/naming-convention
utc_time: number utc_time: number
/** Total in game time */ /** Total in game time */
totalInGame: number totalInGame: number

View File

@ -1,6 +1,5 @@
export interface IGameKeepAliveResponse export interface IGameKeepAliveResponse
{ {
msg: string msg: string
// eslint-disable-next-line @typescript-eslint/naming-convention
utc_time: number utc_time: number
} }

View File

@ -1,5 +1,4 @@
export interface IGameStartResponse export interface IGameStartResponse
{ {
// eslint-disable-next-line @typescript-eslint/naming-convention
utc_time: number utc_time: number
} }

View File

@ -9,6 +9,5 @@ export interface AddItem
{ {
count: number count: number
sptIsPreset?: boolean sptIsPreset?: boolean
// eslint-disable-next-line @typescript-eslint/naming-convention
item_id: string item_id: string
} }

View File

@ -11,6 +11,5 @@ export interface ISessionStatus
raidMode?: string raidMode?: string
mode?: string mode?: string
shortId?: string shortId?: string
// eslint-disable-next-line @typescript-eslint/naming-convention
additional_info?: any[] additional_info?: any[]
} }

View File

@ -1,7 +1,6 @@
export interface INotifierChannel export interface INotifierChannel
{ {
server: string server: string
// eslint-disable-next-line @typescript-eslint/naming-convention
channel_id: string channel_id: string
url: string url: string
notifierServer: string notifierServer: string

View File

@ -17,6 +17,5 @@ export interface ProfileData
raidMode?: string raidMode?: string
mode?: string mode?: string
shortId?: string shortId?: string
// eslint-disable-next-line @typescript-eslint/naming-convention
additional_info?: any[] additional_info?: any[]
} }

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { IProcessBaseTradeRequestData } from "@spt/models/eft/trade/IProcessBaseTradeRequestData"; import { IProcessBaseTradeRequestData } from "@spt/models/eft/trade/IProcessBaseTradeRequestData";
export interface IProcessBuyTradeRequestData extends IProcessBaseTradeRequestData export interface IProcessBuyTradeRequestData extends IProcessBaseTradeRequestData

View File

@ -13,6 +13,5 @@ export interface Item
{ {
id: string id: string
count: number count: number
// eslint-disable-next-line @typescript-eslint/naming-convention
scheme_id: number scheme_id: number
} }

View File

@ -15,14 +15,10 @@ export interface IWeather
pressure: number pressure: number
temp: number temp: number
fog: number fog: number
// eslint-disable-next-line @typescript-eslint/naming-convention
rain_intensity: number rain_intensity: number
rain: number rain: number
// eslint-disable-next-line @typescript-eslint/naming-convention
wind_gustiness: number wind_gustiness: number
// eslint-disable-next-line @typescript-eslint/naming-convention
wind_direction: WindDirection wind_direction: WindDirection
// eslint-disable-next-line @typescript-eslint/naming-convention
wind_speed: number wind_speed: number
cloud: number cloud: number
time: string time: string

View File

@ -15,6 +15,5 @@ export interface IWsUserConfirmed extends IWsNotificationEvent
raidMode: RaidMode raidMode: RaidMode
mode: string mode: string
shortId: string shortId: string
// eslint-disable-next-line @typescript-eslint/naming-convention
additional_info: any[] additional_info: any[]
} }

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
export enum QuestStatus export enum QuestStatus
{ {
Locked = 0, Locked = 0,

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { IncomingMessage, ServerResponse } from "node:http"; import { IncomingMessage, ServerResponse } from "node:http";
import { injectable } from "tsyringe"; import { injectable } from "tsyringe";
import { HttpMethods } from "@spt/servers/http/HttpMethods"; import { HttpMethods } from "@spt/servers/http/HttpMethods";

View File

@ -92,9 +92,7 @@ export interface LootMultiplier
{ {
bigmap: number bigmap: number
develop: number develop: number
// eslint-disable-next-line @typescript-eslint/naming-convention
factory4_day: number factory4_day: number
// eslint-disable-next-line @typescript-eslint/naming-convention
factory4_night: number factory4_night: number
interchange: number interchange: number
laboratory: number laboratory: number

View File

@ -4,8 +4,6 @@ import { IBarterScheme } from "@spt/models/eft/common/tables/ITrader";
export interface ICreateFenceAssortsResult export interface ICreateFenceAssortsResult
{ {
sptItems: Item[][] sptItems: Item[][]
// eslint-disable-next-line @typescript-eslint/naming-convention
barter_scheme: Record<string, IBarterScheme[][]> barter_scheme: Record<string, IBarterScheme[][]>
// eslint-disable-next-line @typescript-eslint/naming-convention
loyal_level_items: Record<string, number> loyal_level_items: Record<string, number>
} }

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import { ILocation } from "@spt/models/eft/common/ILocation"; import { ILocation } from "@spt/models/eft/common/ILocation";
import { ILocationsBase } from "@spt/models/eft/common/tables/ILocationsBase"; import { ILocationsBase } from "@spt/models/eft/common/tables/ILocationsBase";

View File

@ -13,7 +13,6 @@ export class AchievementStaticRouter extends StaticRouter
super([ super([
new RouteAction( new RouteAction(
"/client/achievement/list", "/client/achievement/list",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async ( async (
url: string, url: string,
info: any, info: any,
@ -27,7 +26,6 @@ export class AchievementStaticRouter extends StaticRouter
new RouteAction( new RouteAction(
"/client/achievement/statistic", "/client/achievement/statistic",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async ( async (
url: string, url: string,
info: any, info: any,

View File

@ -13,7 +13,6 @@ export class BuildsStaticRouter extends StaticRouter
super([ super([
new RouteAction( new RouteAction(
"/client/builds/list", "/client/builds/list",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async ( async (
url: string, url: string,
info: any, info: any,
@ -26,7 +25,6 @@ export class BuildsStaticRouter extends StaticRouter
), ),
new RouteAction( new RouteAction(
"/client/builds/magazine/save", "/client/builds/magazine/save",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> => async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
{ {
return this.buildsCallbacks.createMagazineTemplate(url, info, sessionID); return this.buildsCallbacks.createMagazineTemplate(url, info, sessionID);
@ -34,7 +32,6 @@ export class BuildsStaticRouter extends StaticRouter
), ),
new RouteAction( new RouteAction(
"/client/builds/weapon/save", "/client/builds/weapon/save",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> => async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
{ {
return this.buildsCallbacks.setWeapon(url, info, sessionID); return this.buildsCallbacks.setWeapon(url, info, sessionID);
@ -42,7 +39,6 @@ export class BuildsStaticRouter extends StaticRouter
), ),
new RouteAction( new RouteAction(
"/client/builds/equipment/save", "/client/builds/equipment/save",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> => async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
{ {
return this.buildsCallbacks.setEquipment(url, info, sessionID); return this.buildsCallbacks.setEquipment(url, info, sessionID);
@ -50,7 +46,6 @@ export class BuildsStaticRouter extends StaticRouter
), ),
new RouteAction( new RouteAction(
"/client/builds/delete", "/client/builds/delete",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> => async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
{ {
return this.buildsCallbacks.deleteBuild(url, info, sessionID); return this.buildsCallbacks.deleteBuild(url, info, sessionID);

View File

@ -151,7 +151,6 @@ export class GameStaticRouter extends StaticRouter
), ),
new RouteAction( new RouteAction(
"/singleplayer/settings/getRaidTime", "/singleplayer/settings/getRaidTime",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async (url: string, info: any, sessionID: string, output: string): Promise<IGetRaidTimeResponse> => async (url: string, info: any, sessionID: string, output: string): Promise<IGetRaidTimeResponse> =>
{ {
return this.gameCallbacks.getRaidTime(url, info, sessionID); return this.gameCallbacks.getRaidTime(url, info, sessionID);

View File

@ -265,7 +265,6 @@ export class MatchStaticRouter extends StaticRouter
), ),
new RouteAction( new RouteAction(
"/client/raid/configuration-by-profile", "/client/raid/configuration-by-profile",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> => async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
{ {
return this.matchCallbacks.getConfigurationByProfile(url, info, sessionID); return this.matchCallbacks.getConfigurationByProfile(url, info, sessionID);

View File

@ -108,7 +108,6 @@ export class ProfileStaticRouter extends StaticRouter
), ),
new RouteAction( new RouteAction(
"/client/profile/view", "/client/profile/view",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async ( async (
url: string, url: string,
info: any, info: any,

View File

@ -15,7 +15,6 @@ export class RagfairStaticRouter extends StaticRouter
super([ super([
new RouteAction( new RouteAction(
"/client/ragfair/search", "/client/ragfair/search",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async ( async (
url: string, url: string,
info: any, info: any,
@ -28,7 +27,6 @@ export class RagfairStaticRouter extends StaticRouter
), ),
new RouteAction( new RouteAction(
"/client/ragfair/find", "/client/ragfair/find",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async ( async (
url: string, url: string,
info: any, info: any,
@ -41,7 +39,6 @@ export class RagfairStaticRouter extends StaticRouter
), ),
new RouteAction( new RouteAction(
"/client/ragfair/itemMarketPrice", "/client/ragfair/itemMarketPrice",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async ( async (
url: string, url: string,
info: any, info: any,
@ -54,7 +51,6 @@ export class RagfairStaticRouter extends StaticRouter
), ),
new RouteAction( new RouteAction(
"/client/ragfair/offerfees", "/client/ragfair/offerfees",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> => async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
{ {
return this.ragfairCallbacks.storePlayerOfferTaxAmount(url, info, sessionID); return this.ragfairCallbacks.storePlayerOfferTaxAmount(url, info, sessionID);
@ -62,7 +58,6 @@ export class RagfairStaticRouter extends StaticRouter
), ),
new RouteAction( new RouteAction(
"/client/reports/ragfair/send", "/client/reports/ragfair/send",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> => async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
{ {
return this.ragfairCallbacks.sendReport(url, info, sessionID); return this.ragfairCallbacks.sendReport(url, info, sessionID);
@ -70,7 +65,6 @@ export class RagfairStaticRouter extends StaticRouter
), ),
new RouteAction( new RouteAction(
"/client/items/prices", "/client/items/prices",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async ( async (
url: string, url: string,
info: any, info: any,
@ -83,7 +77,6 @@ export class RagfairStaticRouter extends StaticRouter
), ),
new RouteAction( new RouteAction(
"/client/ragfair/offer/findbyid", "/client/ragfair/offer/findbyid",
// eslint-disable-next-line @typescript-eslint/no-unused-vars
async ( async (
url: string, url: string,
info: any, info: any,

View File

@ -166,7 +166,6 @@ export class SptHttpListener implements IHttpListener
public sendJson(resp: ServerResponse, output: string, sessionID: string): void public sendJson(resp: ServerResponse, output: string, sessionID: string): void
{ {
// eslint-disable-next-line @typescript-eslint/naming-convention
resp.writeHead(200, "OK", { "Content-Type": "application/json", "Set-Cookie": `PHPSESSID=${sessionID}` }); resp.writeHead(200, "OK", { "Content-Type": "application/json", "Set-Cookie": `PHPSESSID=${sessionID}` });
resp.end(output); resp.end(output);
} }

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import fs from "node:fs"; import fs from "node:fs";
import path from "node:path"; import path from "node:path";
import { inject, injectable } from "tsyringe"; import { inject, injectable } from "tsyringe";

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
/** /**
* An object containing item name overrides for use with ItemTplGenerator * An object containing item name overrides for use with ItemTplGenerator

View File

@ -17,7 +17,6 @@ export class AsyncQueue implements IAsyncQueue
// Add to the queue // Add to the queue
this.commandsQueue.push(command); this.commandsQueue.push(command);
// eslint-disable-next-line no-constant-condition
while (this.commandsQueue[0].uuid !== command.uuid) while (this.commandsQueue[0].uuid !== command.uuid)
{ {
await new Promise<void>((resolve) => await new Promise<void>((resolve) =>

View File

@ -3,8 +3,6 @@ import { Queue } from "@spt/utils/collections/queue/Queue";
import { JsonUtil } from "@spt/utils/JsonUtil"; import { JsonUtil } from "@spt/utils/JsonUtil";
import { VFS } from "@spt/utils/VFS"; import { VFS } from "@spt/utils/VFS";
/* eslint-disable @typescript-eslint/no-empty-function */
/* eslint-disable @typescript-eslint/brace-style */
@injectable() @injectable()
export class ImporterUtil export class ImporterUtil
{ {

View File

@ -2,7 +2,6 @@ import crypto from "node:crypto";
import fs from "node:fs"; import fs from "node:fs";
import { promisify } from "node:util"; import { promisify } from "node:util";
import winston, { createLogger, format, transports, addColors } from "winston"; import winston, { createLogger, format, transports, addColors } from "winston";
// eslint-disable-next-line @typescript-eslint/naming-convention
import DailyRotateFile from "winston-daily-rotate-file"; import DailyRotateFile from "winston-daily-rotate-file";
import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest"; import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor"; import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import "reflect-metadata"; import "reflect-metadata";
import { container } from "tsyringe"; import { container } from "tsyringe";

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import "reflect-metadata"; import "reflect-metadata";
import { container } from "tsyringe"; import { container } from "tsyringe";

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import "reflect-metadata"; import "reflect-metadata";
import { container } from "tsyringe"; import { container } from "tsyringe";

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import "reflect-metadata"; import "reflect-metadata";
import { container } from "tsyringe"; import { container } from "tsyringe";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";

View File

@ -1,4 +1,3 @@
/* eslint-disable @typescript-eslint/naming-convention */
import "reflect-metadata"; import "reflect-metadata";
import { container } from "tsyringe"; import { container } from "tsyringe";
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";