Skip to content

Commit 14ace40

Browse files
authored
[Misc] eslint rule to prevent .js imports (pagefaultgames#4160)
* add `eslint-plugin-import-x` module * add import eslint rules * remove .js extensions * rename account.spec to account.test * move fontFace.setup into `setupFiles` instead of importing it in `vitest.setup.ts`
1 parent d1b058f commit 14ace40

9 files changed

+214
-13
lines changed

eslint.config.js

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import tseslint from '@typescript-eslint/eslint-plugin';
22
import stylisticTs from '@stylistic/eslint-plugin-ts'
33
import parser from '@typescript-eslint/parser';
4-
// import imports from 'eslint-plugin-import'; // Disabled due to not being compatible with eslint v9
4+
import importX from 'eslint-plugin-import-x';
55

66
export default [
77
{
@@ -11,7 +11,7 @@ export default [
1111
parser: parser
1212
},
1313
plugins: {
14-
// imports: imports.configs.recommended // Disabled due to not being compatible with eslint v9
14+
"import-x": importX,
1515
'@stylistic/ts': stylisticTs,
1616
'@typescript-eslint': tseslint
1717
},
@@ -39,7 +39,8 @@ export default [
3939
}],
4040
"space-before-blocks": ["error", "always"], // Enforces a space before blocks
4141
"keyword-spacing": ["error", { "before": true, "after": true }], // Enforces spacing before and after keywords
42-
"comma-spacing": ["error", { "before": false, "after": true }] // Enforces spacing after comma
42+
"comma-spacing": ["error", { "before": false, "after": true }], // Enforces spacing after comma
43+
"import-x/extensions": ["error", "never", { "json": "always" }], // Enforces no extension for imports unless json
4344
}
4445
}
4546
]

package-lock.json

+200
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"@vitest/coverage-istanbul": "^2.0.4",
3333
"dependency-cruiser": "^16.3.10",
3434
"eslint": "^9.7.0",
35+
"eslint-plugin-import-x": "^4.2.1",
3536
"jsdom": "^24.0.0",
3637
"lefthook": "^1.6.12",
3738
"phaser3spectorjs": "^0.0.8",

src/phases/weather-effect-phase.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import BattleScene from "#app/battle-scene";
2-
import { applyPreWeatherEffectAbAttrs, SuppressWeatherEffectAbAttr, PreWeatherDamageAbAttr, applyAbAttrs, BlockNonDirectDamageAbAttr, applyPostWeatherLapseAbAttrs, PostWeatherLapseAbAttr } from "#app/data/ability.js";
2+
import { applyPreWeatherEffectAbAttrs, SuppressWeatherEffectAbAttr, PreWeatherDamageAbAttr, applyAbAttrs, BlockNonDirectDamageAbAttr, applyPostWeatherLapseAbAttrs, PostWeatherLapseAbAttr } from "#app/data/ability";
33
import { CommonAnim } from "#app/data/battle-anims";
44
import { Weather, getWeatherDamageMessage, getWeatherLapseMessage } from "#app/data/weather";
55
import { BattlerTagType } from "#app/enums/battler-tag-type";

src/system/version-converter.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { allSpecies } from "#app/data/pokemon-species.js";
1+
import { allSpecies } from "#app/data/pokemon-species";
22
import { AbilityAttr, defaultStarterSpecies, DexAttr, SessionSaveData, SystemSaveData } from "./game-data";
33
import { SettingKeys } from "./settings/settings";
44

File renamed without changes.

src/test/items/double_battle_chance_booster.test.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import { Moves } from "#app/enums/moves.js";
2-
import { Species } from "#app/enums/species.js";
1+
import { Moves } from "#app/enums/moves";
2+
import { Species } from "#app/enums/species";
33
import { DoubleBattleChanceBoosterModifier } from "#app/modifier/modifier";
44
import GameManager from "#test/utils/gameManager";
55
import Phaser from "phaser";
66
import { afterEach, beforeAll, beforeEach, describe, expect, it } from "vitest";
7-
import { ShopCursorTarget } from "#app/enums/shop-cursor-target.js";
8-
import { Mode } from "#app/ui/ui.js";
9-
import ModifierSelectUiHandler from "#app/ui/modifier-select-ui-handler.js";
10-
import { Button } from "#app/enums/buttons.js";
7+
import { ShopCursorTarget } from "#app/enums/shop-cursor-target";
8+
import { Mode } from "#app/ui/ui";
9+
import ModifierSelectUiHandler from "#app/ui/modifier-select-ui-handler";
10+
import { Button } from "#app/enums/buttons";
1111

1212
describe("Items - Double Battle Chance Boosters", () => {
1313
let phaserGame: Phaser.Game;

src/test/vitest.setup.ts

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import "#test/fontFace.setup";
21
import "vitest-canvas-mock";
32

43
import { initLoggedInUser } from "#app/account";

vitest.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { defineProject, UserWorkspaceConfig } from 'vitest/config';
22
import { defaultConfig } from './vite.config';
33

44
export const defaultProjectTestConfig: UserWorkspaceConfig["test"] = {
5-
setupFiles: ['./src/test/vitest.setup.ts'],
5+
setupFiles: ['./src/test/fontFace.setup.ts', './src/test/vitest.setup.ts'],
66
server: {
77
deps: {
88
inline: ['vitest-canvas-mock'],

0 commit comments

Comments
 (0)