mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-07-07 08:52:17 +02:00
Added and enforced no-fallthrough
This commit is contained in:
parent
6dc2a7fddc
commit
ba2bf7dd01
11
biome.jsonc
11
biome.jsonc
@ -38,6 +38,9 @@
|
|||||||
"src/data/balance/tms.ts"
|
"src/data/balance/tms.ts"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// While it'd be nice to enable consistent sorting, this stuff screws with circular import resolution order
|
||||||
|
// TODO: Remove if we ever get down to 0 circular imports
|
||||||
"organizeImports": { "enabled": false },
|
"organizeImports": { "enabled": false },
|
||||||
"linter": {
|
"linter": {
|
||||||
"ignore": [
|
"ignore": [
|
||||||
@ -55,13 +58,13 @@
|
|||||||
},
|
},
|
||||||
"style": {
|
"style": {
|
||||||
"noVar": "error",
|
"noVar": "error",
|
||||||
"useEnumInitializers": "off",
|
"useEnumInitializers": "off", // have fun explicitly numbering all 1000+ species, moves, etc. lol
|
||||||
"useBlockStatements": "error",
|
"useBlockStatements": "error",
|
||||||
"useConst": "error",
|
"useConst": "error",
|
||||||
"useImportType": "error",
|
"useImportType": "error",
|
||||||
"noNonNullAssertion": "off", // TODO: Turn this on ASAP and fix all non-null assertions
|
"noNonNullAssertion": "off", // TODO: Turn this on ASAP and fix all non-null assertions
|
||||||
"noParameterAssign": "off",
|
"noParameterAssign": "off",
|
||||||
"useExponentiationOperator": "off",
|
"useExponentiationOperator": "off", // Too typo-prone and easy to mixup with standard multiplication
|
||||||
"useDefaultParameterLast": "off", // TODO: Fix spots in the codebase where this flag would be triggered, and then enable
|
"useDefaultParameterLast": "off", // TODO: Fix spots in the codebase where this flag would be triggered, and then enable
|
||||||
"useSingleVarDeclarator": "off",
|
"useSingleVarDeclarator": "off",
|
||||||
"useNodejsImportProtocol": "off",
|
"useNodejsImportProtocol": "off",
|
||||||
@ -70,10 +73,10 @@
|
|||||||
},
|
},
|
||||||
"suspicious": {
|
"suspicious": {
|
||||||
"noDoubleEquals": "error",
|
"noDoubleEquals": "error",
|
||||||
"noExplicitAny": "off",
|
"noExplicitAny": "off", // TODO: Refactor and make this an error after save data refactored
|
||||||
"noAssignInExpressions": "off",
|
"noAssignInExpressions": "off",
|
||||||
"noPrototypeBuiltins": "off",
|
"noPrototypeBuiltins": "off",
|
||||||
"noFallthroughSwitchClause": "off",
|
"noFallthroughSwitchClause": "off", // Handled by ESLint due to not supporting simple "falls through" commenst
|
||||||
"noImplicitAnyLet": "info", // TODO: Refactor and make this an error
|
"noImplicitAnyLet": "info", // TODO: Refactor and make this an error
|
||||||
"noRedeclare": "off", // TODO: Refactor and make this an error
|
"noRedeclare": "off", // TODO: Refactor and make this an error
|
||||||
"noGlobalIsNan": "off",
|
"noGlobalIsNan": "off",
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
import tseslint from "@typescript-eslint/eslint-plugin";
|
/** @ts-check */
|
||||||
|
import tseslint from "typescript-eslint";
|
||||||
import stylisticTs from "@stylistic/eslint-plugin-ts";
|
import stylisticTs from "@stylistic/eslint-plugin-ts";
|
||||||
import parser from "@typescript-eslint/parser";
|
import parser from "@typescript-eslint/parser";
|
||||||
import importX from "eslint-plugin-import-x";
|
import importX from "eslint-plugin-import-x";
|
||||||
|
|
||||||
export default [
|
export default tseslint.config(
|
||||||
{
|
{
|
||||||
name: "eslint-config",
|
name: "eslint-config",
|
||||||
files: ["src/**/*.{ts,tsx,js,jsx}", "test/**/*.{ts,tsx,js,jsx}"],
|
files: ["src/**/*.{ts,tsx,js,jsx}", "test/**/*.{ts,tsx,js,jsx}"],
|
||||||
@ -14,12 +15,14 @@ export default [
|
|||||||
plugins: {
|
plugins: {
|
||||||
"import-x": importX,
|
"import-x": importX,
|
||||||
"@stylistic/ts": stylisticTs,
|
"@stylistic/ts": stylisticTs,
|
||||||
"@typescript-eslint": tseslint,
|
"@typescript-eslint": tseslint.plugin,
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
"prefer-const": "error", // Enforces the use of `const` for variables that are never reassigned
|
// Prevent fallthrough on switch without an explicit "falls through" comment.
|
||||||
|
// Note: Move to biome if/when they add "falls through" comments
|
||||||
|
"no-fallthrough": ["error", { commentPattern: "falls through" }],
|
||||||
"no-undef": "off", // Disables the rule that disallows the use of undeclared variables (TypeScript handles this)
|
"no-undef": "off", // Disables the rule that disallows the use of undeclared variables (TypeScript handles this)
|
||||||
"no-extra-semi": ["error"], // Disallows unnecessary semicolons for TypeScript-specific syntax
|
"no-extra-semi": "error", // Disallows unnecessary semicolons for TypeScript-specific syntax
|
||||||
"import-x/extensions": ["error", "never", { json: "always" }], // Enforces no extension for imports unless json
|
"import-x/extensions": ["error", "never", { json: "always" }], // Enforces no extension for imports unless json
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -33,11 +36,11 @@ export default [
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
plugins: {
|
plugins: {
|
||||||
"@typescript-eslint": tseslint,
|
"@typescript-eslint": tseslint.plugin,
|
||||||
},
|
},
|
||||||
rules: {
|
rules: {
|
||||||
"@typescript-eslint/no-floating-promises": "error", // Require Promise-like statements to be handled appropriately. - https://typescript-eslint.io/rules/no-floating-promises/
|
"@typescript-eslint/no-floating-promises": "error", // Require Promise-like statements to be handled appropriately. - https://typescript-eslint.io/rules/no-floating-promises/
|
||||||
"@typescript-eslint/no-misused-promises": "error", // Disallow Promises in places not designed to handle them. - https://typescript-eslint.io/rules/no-misused-promises/
|
"@typescript-eslint/no-misused-promises": "error", // Disallow Promises in places not designed to handle them. - https://typescript-eslint.io/rules/no-misused-promises/
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
];
|
);
|
||||||
|
20
package-lock.json
generated
20
package-lock.json
generated
@ -19,7 +19,8 @@
|
|||||||
"json-stable-stringify": "^1.2.0",
|
"json-stable-stringify": "^1.2.0",
|
||||||
"jszip": "^3.10.1",
|
"jszip": "^3.10.1",
|
||||||
"phaser": "^3.88.2",
|
"phaser": "^3.88.2",
|
||||||
"phaser3-rex-plugins": "^1.80.15"
|
"phaser3-rex-plugins": "^1.80.15",
|
||||||
|
"save-dev": "^0.0.1-security"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@biomejs/biome": "1.9.4",
|
"@biomejs/biome": "1.9.4",
|
||||||
@ -5226,6 +5227,18 @@
|
|||||||
"moo-color": "^1.0.2"
|
"moo-color": "^1.0.2"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/jiti": {
|
||||||
|
"version": "2.4.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.2.tgz",
|
||||||
|
"integrity": "sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==",
|
||||||
|
"dev": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true,
|
||||||
|
"bin": {
|
||||||
|
"jiti": "lib/jiti-cli.mjs"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/js-tokens": {
|
"node_modules/js-tokens": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
|
||||||
@ -6671,6 +6684,11 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/save-dev": {
|
||||||
|
"version": "0.0.1-security",
|
||||||
|
"resolved": "https://registry.npmjs.org/save-dev/-/save-dev-0.0.1-security.tgz",
|
||||||
|
"integrity": "sha512-k6knZTDNK8PKKbIqnvxiOveJinuw2LcQjqDoaorZWP9M5AR2EPsnpDeSbeoZZ0pHr5ze1uoaKdK8NBGQrJ34Uw=="
|
||||||
|
},
|
||||||
"node_modules/saxes": {
|
"node_modules/saxes": {
|
||||||
"version": "6.0.0",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz",
|
||||||
|
@ -64,7 +64,8 @@
|
|||||||
"json-stable-stringify": "^1.2.0",
|
"json-stable-stringify": "^1.2.0",
|
||||||
"jszip": "^3.10.1",
|
"jszip": "^3.10.1",
|
||||||
"phaser": "^3.88.2",
|
"phaser": "^3.88.2",
|
||||||
"phaser3-rex-plugins": "^1.80.15"
|
"phaser3-rex-plugins": "^1.80.15",
|
||||||
|
"save-dev": "^0.0.1-security"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=22.0.0"
|
"node": ">=22.0.0"
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit 18c1963ef309612a5a7fef76f9879709a7202189
|
Subproject commit e98f0eb9c2022bc78b53f0444424c636498e725a
|
@ -488,6 +488,7 @@ export abstract class PokemonSpeciesForm {
|
|||||||
if (formSpriteKey.startsWith("behemoth")) {
|
if (formSpriteKey.startsWith("behemoth")) {
|
||||||
formSpriteKey = "crowned";
|
formSpriteKey = "crowned";
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
ret += `-${formSpriteKey}`;
|
ret += `-${formSpriteKey}`;
|
||||||
break;
|
break;
|
||||||
|
@ -369,6 +369,7 @@ export function getRandomWeatherType(arena: Arena): WeatherType {
|
|||||||
if (hasSun) {
|
if (hasSun) {
|
||||||
weatherPool.push({ weatherType: WeatherType.SUNNY, weight: 2 });
|
weatherPool.push({ weatherType: WeatherType.SUNNY, weight: 2 });
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
case Biome.VOLCANO:
|
case Biome.VOLCANO:
|
||||||
weatherPool = [
|
weatherPool = [
|
||||||
{
|
{
|
||||||
|
@ -804,6 +804,7 @@ export function setSetting(setting: string, value: number): boolean {
|
|||||||
break;
|
break;
|
||||||
case SettingKeys.Candy_Upgrade_Display:
|
case SettingKeys.Candy_Upgrade_Display:
|
||||||
globalScene.candyUpgradeDisplay = value;
|
globalScene.candyUpgradeDisplay = value;
|
||||||
|
break;
|
||||||
case SettingKeys.Money_Format:
|
case SettingKeys.Money_Format:
|
||||||
switch (Setting[index].options[value].value) {
|
switch (Setting[index].options[value].value) {
|
||||||
case "Normal":
|
case "Normal":
|
||||||
|
@ -176,11 +176,13 @@ export class UiInputs {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
switch (globalScene.ui?.getMode()) {
|
switch (globalScene.ui?.getMode()) {
|
||||||
case UiMode.MESSAGE:
|
case UiMode.MESSAGE: {
|
||||||
const messageHandler = globalScene.ui.getHandler<MessageUiHandler>();
|
const messageHandler = globalScene.ui.getHandler<MessageUiHandler>();
|
||||||
if (!messageHandler.pendingPrompt || messageHandler.isTextAnimationInProgress()) {
|
if (!messageHandler.pendingPrompt || messageHandler.isTextAnimationInProgress()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// falls through
|
||||||
|
}
|
||||||
case UiMode.TITLE:
|
case UiMode.TITLE:
|
||||||
case UiMode.COMMAND:
|
case UiMode.COMMAND:
|
||||||
case UiMode.MODIFIER_SELECT:
|
case UiMode.MODIFIER_SELECT:
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
"strictNullChecks": true,
|
"strictNullChecks": true,
|
||||||
"sourceMap": false,
|
"sourceMap": false,
|
||||||
"strict": false,
|
"strict": false, // TODO: Enable this eventually
|
||||||
"rootDir": ".",
|
"rootDir": ".",
|
||||||
"baseUrl": "./src",
|
"baseUrl": "./src",
|
||||||
"paths": {
|
"paths": {
|
||||||
|
Loading…
Reference in New Issue
Block a user