mirror of
https://github.com/pagefaultgames/pokerogue.git
synced 2025-06-21 00:52:47 +02:00
* Added `MoveUseType` and refactored MEP * Fixed Wimp out tests & ME code finally i think all the booleans are gone i hope * Added version migration for last resort and co. buh gumbug * Fixed various bugs and added tests for previous bugfixes * Reverted a couple doc changes * WIP * Update pokemon-species.ts Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> * Update pokemon-phase.ts Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> * Fixed remaining tests (I think) * Reverted rollout test changes * Fixed command phase bug causing metronome test timeout * Revert early_bird.test.ts * Fix biome.jsonc * Made `MoveUseType` start at 1 As per @DayKev's request * Fixed a thing * Fixed bolt beak condition to be marginally less jank * Applied some review suggestions * Reverted move phase operations * Added helper functions complete with markdown tables * Fixed things * Update battler-tags.ts * Fixed random issues * Fixed code * Fixed comment * Fixed import issues * Fix disable.test.ts conflicts * Update instruct.test.ts * Update `biome.jsonc` * Renamed `MoveUseType` to `MoveUseMode`; applied review comments * Fixed space * Fixed phasemanager bugs * Fixed instruct test to not bork * Fixed gorilla tactics bug * Battler Tags doc fixes * Fixed formatting and suttff * Minor comment updates and remove unused imports in `move.ts` * Re-add `public`, remove unnecessary default value in `battler-tags.ts` * Restore `{}` in `turn-start-phase.ts` Fixes `lint/correctness/noSwitchDeclarations` * Remove extra space in TSDoc in `move-phase.ts` * Use `game.field` instead of `game.scene` in `instruct.test.ts` Also `game.toEndOfTurn()` instead of `game.phaseInterceptor.to("BerryPhase")` * Use `game.field` instead of `game.scene` in `metronome.test.ts` * Use `toEndOfTurn()` instead of `to("BerryPhase")` in `powder.test.ts` * Convert `MoveUseMode` enum to `const` object * Update move-phase.ts Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com> * Add `enumValueToKey` utility function * Apply Biome --------- Co-authored-by: NightKev <34855794+DayKev@users.noreply.github.com>
147 lines
5.1 KiB
Plaintext
147 lines
5.1 KiB
Plaintext
{
|
|
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
|
|
"vcs": {
|
|
"enabled": false,
|
|
"clientKind": "git",
|
|
"useIgnoreFile": true,
|
|
"defaultBranch": "beta"
|
|
},
|
|
"formatter": {
|
|
"enabled": true,
|
|
"useEditorconfig": true,
|
|
"indentStyle": "space",
|
|
"ignore": ["src/enums/*", "src/data/balance/*"],
|
|
"lineWidth": 120
|
|
},
|
|
"files": {
|
|
"ignoreUnknown": true,
|
|
// Adding folders to the ignore list is GREAT for performance because it prevents biome from descending into them
|
|
// and having to verify whether each individual file is ignored
|
|
"ignore": [
|
|
"**/*.d.ts",
|
|
"dist/*",
|
|
"build/*",
|
|
"coverage/*",
|
|
"public/*",
|
|
".github/*",
|
|
"node_modules/*",
|
|
".vscode/*",
|
|
"*.css", // TODO?
|
|
"*.html", // TODO?
|
|
// TODO: these files are too big and complex, ignore them until their respective refactors
|
|
"src/data/moves/move.ts",
|
|
|
|
// this file is just too big:
|
|
"src/data/balance/tms.ts"
|
|
]
|
|
},
|
|
|
|
// While it'd be nice to enable consistent sorting, enabling this causes issues due to circular import resolution order
|
|
// TODO: Remove if we ever get down to 0 circular imports
|
|
"organizeImports": { "enabled": false },
|
|
"linter": {
|
|
"enabled": true,
|
|
"rules": {
|
|
"recommended": true,
|
|
"correctness": {
|
|
"noUndeclaredVariables": "off",
|
|
"noUnusedVariables": "error",
|
|
"noSwitchDeclarations": "error",
|
|
"noVoidTypeReturn": "error",
|
|
"noUnusedImports": "error"
|
|
},
|
|
"style": {
|
|
"noVar": "error",
|
|
"useEnumInitializers": "off", // large enums like Moves/Species would make this cumbersome
|
|
"useBlockStatements": "error",
|
|
"useConst": "error",
|
|
"useImportType": "error",
|
|
"noNonNullAssertion": "off", // TODO: Turn this on ASAP and fix all non-null assertions in non-test files
|
|
"noParameterAssign": "off",
|
|
"useExponentiationOperator": "off", // Too typo-prone and easy to mixup with standard multiplication (* vs **)
|
|
"useDefaultParameterLast": "off", // TODO: Fix spots in the codebase where this flag would be triggered, and then enable
|
|
"useSingleVarDeclarator": "off",
|
|
"useNodejsImportProtocol": "off",
|
|
"useTemplate": "off", // string concatenation is faster: https://stackoverflow.com/questions/29055518/are-es6-template-literals-faster-than-string-concatenation
|
|
"noNamespaceImport": "error"
|
|
},
|
|
"suspicious": {
|
|
"noDoubleEquals": "error",
|
|
// While this would be a nice rule to enable, the current structure of the codebase makes this infeasible
|
|
// due to being used for move/ability `args` params and save data-related code.
|
|
// This can likely be enabled for all non-utils files once these are eventually reworked, but until then we leave it off.
|
|
"noExplicitAny": "off",
|
|
"noAssignInExpressions": "off",
|
|
"noPrototypeBuiltins": "off",
|
|
"noFallthroughSwitchClause": "error", // Prevents accidental automatic fallthroughs in switch cases (use disable comment if needed)
|
|
"noImplicitAnyLet": "warn", // TODO: Refactor and make this an error
|
|
"noRedeclare": "info", // TODO: Refactor and make this an error
|
|
"noGlobalIsNan": "off",
|
|
"noAsyncPromiseExecutor": "warn" // TODO: Refactor and make this an error
|
|
},
|
|
"complexity": {
|
|
"noExcessiveCognitiveComplexity": "warn", // TODO: Refactor and make this an error
|
|
"useLiteralKeys": "off",
|
|
"noForEach": "off", // Foreach vs for of is not that simple.
|
|
"noUselessSwitchCase": "off", // Explicit > Implicit
|
|
"noUselessConstructor": "error",
|
|
"noBannedTypes": "warn" // TODO: Refactor and make this an error
|
|
},
|
|
"nursery": {
|
|
"noRestrictedTypes": {
|
|
"level": "error",
|
|
"options": {
|
|
"types": {
|
|
"integer": {
|
|
"message": "This is an alias for 'number' that can provide false impressions of what values can actually be contained in this variable. Use 'number' instead.",
|
|
"use": "number"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"javascript": {
|
|
"formatter": { "quoteStyle": "double", "arrowParentheses": "asNeeded" }
|
|
},
|
|
"overrides": [
|
|
{
|
|
"include": ["test/**/*.test.ts"],
|
|
"javascript": { "globals": [] },
|
|
"linter": {
|
|
"rules": {
|
|
"performance": {
|
|
"noDelete": "off" // TODO: evaluate if this is necessary for the test(s) to function
|
|
},
|
|
"style": {
|
|
"noNamespaceImport": "off" // this is required for `vi.spyOn` to work in some tests
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
// Overrides to prevent unused import removal inside `overrides.ts` and enums files (for TSDoc linkcodes)
|
|
{
|
|
"include": ["src/overrides.ts", "src/enums/*"],
|
|
"linter": {
|
|
"rules": {
|
|
"correctness": {
|
|
"noUnusedImports": "off"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"include": ["src/overrides.ts"],
|
|
"linter": {
|
|
"rules": {
|
|
"style": {
|
|
"useImportType": "off"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|