@tractorbeam/eslint-config 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -51,28 +51,6 @@ export default defineConfig([
51
51
 
52
52
  ## Customization
53
53
 
54
- ### Setting `tsconfigRootDir` (Required)
55
-
56
- The `typescript` config uses type-checked linting, which requires `tsconfigRootDir` to be set in your config:
57
-
58
- ```typescript
59
- import { defineConfig } from "eslint/config";
60
-
61
- import { base, typescript } from "@tractorbeam/eslint-config";
62
-
63
- export default defineConfig([
64
- base,
65
- {
66
- extends: [typescript],
67
- languageOptions: {
68
- parserOptions: {
69
- tsconfigRootDir: import.meta.dirname,
70
- },
71
- },
72
- },
73
- ]);
74
- ```
75
-
76
54
  ### Disabling Type Checking for JS Files
77
55
 
78
56
  If you have JavaScript files alongside TypeScript, disable type checking for them:
@@ -85,12 +63,7 @@ import { base, typescript } from "@tractorbeam/eslint-config";
85
63
 
86
64
  export default defineConfig([
87
65
  base,
88
- {
89
- extends: [typescript],
90
- languageOptions: {
91
- parserOptions: { tsconfigRootDir: import.meta.dirname },
92
- },
93
- },
66
+ typescript,
94
67
  { files: ["**/*.js"], extends: [tseslint.configs.disableTypeChecked] },
95
68
  ]);
96
69
  ```
@@ -106,12 +79,7 @@ import { base, playwright, typescript } from "@tractorbeam/eslint-config";
106
79
 
107
80
  export default defineConfig([
108
81
  base,
109
- {
110
- extends: [typescript],
111
- languageOptions: {
112
- parserOptions: { tsconfigRootDir: import.meta.dirname },
113
- },
114
- },
82
+ eslint,
115
83
  { files: ["**/e2e/**/*.ts"], extends: [playwright] },
116
84
  ]);
117
85
  ```
@@ -127,12 +95,7 @@ import { base, react, typescript } from "@tractorbeam/eslint-config";
127
95
 
128
96
  export default defineConfig([
129
97
  base,
130
- {
131
- extends: [typescript],
132
- languageOptions: {
133
- parserOptions: { tsconfigRootDir: import.meta.dirname },
134
- },
135
- },
98
+ typescript,
136
99
  {
137
100
  extends: [react],
138
101
  rules: {
@@ -154,40 +117,12 @@ import { base, typescript } from "@tractorbeam/eslint-config";
154
117
 
155
118
  export default defineConfig([
156
119
  base,
157
- {
158
- extends: [typescript],
159
- languageOptions: {
160
- parserOptions: { tsconfigRootDir: import.meta.dirname },
161
- },
162
- },
120
+ typescript
163
121
  includeIgnoreFile(".gitignore"),
164
122
  globalIgnores(["dist/**", "*.gen.ts"]),
165
123
  ]);
166
124
  ```
167
125
 
168
- ## Monorepo Setup
169
-
170
- For monorepos with multiple `tsconfig.json` files, configure the `project` array:
171
-
172
- ```typescript
173
- import { defineConfig } from "eslint/config";
174
-
175
- import { base, typescript } from "@tractorbeam/eslint-config";
176
-
177
- export default defineConfig([
178
- base,
179
- {
180
- extends: [typescript],
181
- languageOptions: {
182
- parserOptions: {
183
- project: ["./tsconfig.eslint.json", "./packages/*/tsconfig.json"],
184
- tsconfigRootDir: import.meta.dirname,
185
- },
186
- },
187
- },
188
- ]);
189
- ```
190
-
191
126
  ## Peer Dependencies
192
127
 
193
128
  - `eslint >= 9`
@@ -1 +1 @@
1
- {"version":3,"file":"tanstack-router.d.ts","sourceRoot":"","sources":["../src/tanstack-router.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAIrC,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAYxC,CAAC"}
1
+ {"version":3,"file":"tanstack-router.d.ts","sourceRoot":"","sources":["../src/tanstack-router.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGrC,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAExC,CAAC"}
@@ -1,17 +1,6 @@
1
1
  import pluginTanStackRouter from "@tanstack/eslint-plugin-router";
2
2
  import { defineConfig } from "eslint/config";
3
- import tseslint from "typescript-eslint";
4
3
  export const tanstackRouter = defineConfig([
5
- {
6
- files: ["**/*.tsx", "**/*.jsx"],
7
- extends: [pluginTanStackRouter.configs["flat/recommended"]],
8
- plugins: {
9
- "@typescript-eslint": tseslint,
10
- },
11
- rules: {
12
- // tanstack throws notFound and similar to redirect immediately
13
- "@typescript-eslint/only-throw-error": "off",
14
- },
15
- },
4
+ pluginTanStackRouter.configs["flat/recommended"],
16
5
  ]);
17
6
  //# sourceMappingURL=tanstack-router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tanstack-router.js","sourceRoot":"","sources":["../src/tanstack-router.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAEzC,MAAM,CAAC,MAAM,cAAc,GAAoB,YAAY,CAAC;IAC1D;QACE,KAAK,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC;QAC/B,OAAO,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAC3D,OAAO,EAAE;YACP,oBAAoB,EAAE,QAAQ;SAC/B;QACD,KAAK,EAAE;YACL,+DAA+D;YAC/D,qCAAqC,EAAE,KAAK;SAC7C;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"tanstack-router.js","sourceRoot":"","sources":["../src/tanstack-router.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,gCAAgC,CAAC;AAElE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,CAAC,MAAM,cAAc,GAAoB,YAAY,CAAC;IAC1D,oBAAoB,CAAC,OAAO,CAAC,kBAAkB,CAAC;CACjD,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../src/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOrC,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAqCpC,CAAC"}
1
+ {"version":3,"file":"typescript.d.ts","sourceRoot":"","sources":["../src/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAOrC,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EA0DpC,CAAC"}
@@ -11,6 +11,7 @@ export const typescript = defineConfig([
11
11
  tseslint.configs.stylisticTypeChecked,
12
12
  pluginUnicorn.configs.recommended,
13
13
  pluginRegexp.configs["flat/recommended"],
14
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
14
15
  pluginImportLite.configs.recommended,
15
16
  ],
16
17
  languageOptions: {
@@ -22,9 +23,26 @@ export const typescript = defineConfig([
22
23
  "@typescript-eslint/no-floating-promises": "off",
23
24
  "@typescript-eslint/restrict-template-expressions": "off",
24
25
  "@typescript-eslint/ban-ts-comment": "warn",
25
- "@typescript-eslint/consistent-type-imports": "error",
26
26
  "@typescript-eslint/no-empty-object-type": "warn",
27
27
  "@typescript-eslint/no-explicit-any": "warn",
28
+ "@typescript-eslint/consistent-type-imports": "error",
29
+ "@typescript-eslint/only-throw-error": [
30
+ "error",
31
+ {
32
+ allow: [
33
+ {
34
+ from: "package",
35
+ package: "@tanstack/router-core",
36
+ name: "Redirect",
37
+ },
38
+ {
39
+ from: "package",
40
+ package: "@tanstack/router-core",
41
+ name: "NotFoundError",
42
+ },
43
+ ],
44
+ },
45
+ ],
28
46
  "@typescript-eslint/no-unused-vars": [
29
47
  "error",
30
48
  {
@@ -1 +1 @@
1
- {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../src/typescript.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,2BAA2B,CAAC;AACzD,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAEzC,MAAM,CAAC,MAAM,UAAU,GAAoB,YAAY,CAAC;IACtD;QACE,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;QAC9B,OAAO,EAAE;YACP,QAAQ,CAAC,OAAO,CAAC,iBAAiB;YAClC,QAAQ,CAAC,OAAO,CAAC,oBAAoB;YACrC,aAAa,CAAC,OAAO,CAAC,WAAW;YACjC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC;YACxC,gBAAgB,CAAC,OAAO,CAAC,WAAW;SACrC;QACD,eAAe,EAAE;YACf,aAAa,EAAE;gBACb,cAAc,EAAE,IAAI;aACrB;SACF;QACD,KAAK,EAAE;YACL,yCAAyC,EAAE,KAAK;YAChD,kDAAkD,EAAE,KAAK;YACzD,mCAAmC,EAAE,MAAM;YAC3C,4CAA4C,EAAE,OAAO;YACrD,yCAAyC,EAAE,MAAM;YACjD,oCAAoC,EAAE,MAAM;YAC5C,mCAAmC,EAAE;gBACnC,OAAO;gBACP;oBACE,iBAAiB,EAAE,IAAI;oBACvB,iBAAiB,EAAE,IAAI;oBACvB,8BAA8B,EAAE,IAAI;iBACrC;aACF;YACD,2BAA2B,EAAE,KAAK;YAClC,iBAAiB,EAAE,KAAK;YACxB,+BAA+B,EAAE,KAAK;YACtC,mCAAmC,EAAE,KAAK;YAC1C,uBAAuB,EAAE,KAAK;SAC/B;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../src/typescript.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,2BAA2B,CAAC;AACzD,OAAO,YAAY,MAAM,sBAAsB,CAAC;AAChD,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AAEzC,MAAM,CAAC,MAAM,UAAU,GAAoB,YAAY,CAAC;IACtD;QACE,KAAK,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;QAC9B,OAAO,EAAE;YACP,QAAQ,CAAC,OAAO,CAAC,iBAAiB;YAClC,QAAQ,CAAC,OAAO,CAAC,oBAAoB;YACrC,aAAa,CAAC,OAAO,CAAC,WAAW;YACjC,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC;YACxC,sEAAsE;YACtE,gBAAgB,CAAC,OAAO,CAAC,WAAW;SACrC;QACD,eAAe,EAAE;YACf,aAAa,EAAE;gBACb,cAAc,EAAE,IAAI;aACrB;SACF;QACD,KAAK,EAAE;YACL,yCAAyC,EAAE,KAAK;YAChD,kDAAkD,EAAE,KAAK;YAEzD,mCAAmC,EAAE,MAAM;YAC3C,yCAAyC,EAAE,MAAM;YACjD,oCAAoC,EAAE,MAAM;YAE5C,4CAA4C,EAAE,OAAO;YACrD,qCAAqC,EAAE;gBACrC,OAAO;gBACP;oBACE,KAAK,EAAE;wBACL;4BACE,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,uBAAuB;4BAChC,IAAI,EAAE,UAAU;yBACjB;wBACD;4BACE,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,uBAAuB;4BAChC,IAAI,EAAE,eAAe;yBACtB;qBACF;iBACF;aACF;YACD,mCAAmC,EAAE;gBACnC,OAAO;gBACP;oBACE,iBAAiB,EAAE,IAAI;oBACvB,iBAAiB,EAAE,IAAI;oBACvB,8BAA8B,EAAE,IAAI;iBACrC;aACF;YAED,2BAA2B,EAAE,KAAK;YAClC,iBAAiB,EAAE,KAAK;YACxB,+BAA+B,EAAE,KAAK;YACtC,mCAAmC,EAAE,KAAK;YAC1C,uBAAuB,EAAE,KAAK;SAC/B;KACF;CACF,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tractorbeam/eslint-config",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "Shared ESLint configuration for Tractorbeam projects",
5
5
  "keywords": [
6
6
  "tractorbeam",
@@ -66,25 +66,25 @@
66
66
  "dependencies": {
67
67
  "@eslint/js": "^9.39.2",
68
68
  "@tanstack/eslint-plugin-router": "^1.141.0",
69
- "eslint-config-prettier": "^10.1.5",
70
- "eslint-plugin-import-lite": "^0.3.0",
69
+ "eslint-config-prettier": "^10.1.8",
70
+ "eslint-plugin-import-lite": "^0.4.0",
71
71
  "eslint-plugin-jsx-a11y": "^6.10.2",
72
72
  "eslint-plugin-playwright": "^2.4.0",
73
73
  "eslint-plugin-react": "^7.37.5",
74
74
  "eslint-plugin-react-compiler": "^19.1.0-rc.2",
75
75
  "eslint-plugin-react-hooks": "^7.0.1",
76
- "eslint-plugin-react-refresh": "^0.4.25",
76
+ "eslint-plugin-react-refresh": "^0.4.26",
77
77
  "eslint-plugin-regexp": "^2.10.0",
78
78
  "eslint-plugin-unicorn": "^62.0.0",
79
79
  "globals": "^16.5.0",
80
- "typescript-eslint": "^8.49.0"
80
+ "typescript-eslint": "^8.50.0"
81
81
  },
82
82
  "devDependencies": {
83
83
  "@types/eslint": "^9.6.1",
84
84
  "@types/eslint-plugin-jsx-a11y": "^6.10.1",
85
- "@types/node": "^22.19.3",
85
+ "@types/node": "^25.0.3",
86
86
  "typescript": "^5.9.3",
87
- "@tractorbeam/typescript-config": "0.1.1"
87
+ "@tractorbeam/typescript-config": "0.1.2"
88
88
  },
89
89
  "peerDependencies": {
90
90
  "eslint": ">= 9",