Skip to content

Commit ef8d79d

Browse files
committed
feat: add eslint-plugin-import-x
This enables the "recommended" ruleset for eslint-plugin-import-x, and validates that imports are in a consistent order (and alphabetized).
1 parent 285d68c commit ef8d79d

File tree

4 files changed

+570
-2
lines changed

4 files changed

+570
-2
lines changed

configs/envylabs-js.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,28 @@
11
import js from "@eslint/js";
2+
import { importX } from "eslint-plugin-import-x";
23
import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
34

45
export default [
56
js.configs.recommended,
7+
importX.flatConfigs.recommended,
68
eslintPluginPrettierRecommended,
79
{
810
rules: {
11+
"import-x/order": [
12+
"warn",
13+
{
14+
alphabetize: { order: "asc" },
15+
groups: [
16+
"builtin",
17+
"external",
18+
"internal",
19+
"parent",
20+
"sibling",
21+
"index",
22+
],
23+
"newlines-between": "always",
24+
},
25+
],
926
"prettier/prettier": "warn",
1027
},
1128
},

configs/envylabs-ts.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
import tseslint from "typescript-eslint";
1+
import { importX } from "eslint-plugin-import-x";
2+
import { configs as tseslintConfigs } from "typescript-eslint";
3+
24
import eslintPluginEnvylabs from "./envylabs-js.js";
35

46
export default [
57
...eslintPluginEnvylabs,
6-
...tseslint.configs.recommended,
8+
...tseslintConfigs.recommended,
9+
importX.flatConfigs.typescript,
710
{
811
files: ["**/*.ts", "**/*.tsx"],
912
languageOptions: {
@@ -15,6 +18,9 @@ export default [
1518
},
1619
sourceType: "module",
1720
},
21+
rules: {
22+
"@typescript-eslint/no-require-imports": "error",
23+
},
1824
},
1925
{
2026
files: ["**/*.ts"],

0 commit comments

Comments
 (0)