@jimmy.codes/eslint-config 7.6.0 → 7.7.0
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/dist/{astro-B0kgVZlh.mjs → astro-BMlbg_8j.mjs} +1 -0
- package/dist/globs.d.mts +2 -1
- package/dist/globs.mjs +2 -1
- package/dist/index.d.mts +233 -91
- package/dist/index.mjs +4 -4
- package/dist/{nextjs-Buyxv06i.mjs → nextjs-D_XQzWJz.mjs} +5 -3
- package/dist/{react-C7mZF3Qf.mjs → react-CWFVE51B.mjs} +8 -3
- package/dist/{testing-library-B1I63Phd.mjs → testing-library-Dqon1Cou.mjs} +21 -3
- package/package.json +15 -15
|
@@ -42,6 +42,7 @@ async function astroConfig(options) {
|
|
|
42
42
|
"astro/no-deprecated-astro-resolve": "error",
|
|
43
43
|
"astro/no-deprecated-getentrybyslug": "error",
|
|
44
44
|
"astro/no-exports-from-components": "off",
|
|
45
|
+
"astro/no-prerender-export-outside-pages": "error",
|
|
45
46
|
"astro/no-unsafe-inline-scripts": "error",
|
|
46
47
|
"astro/no-unused-define-vars-in-style": "error",
|
|
47
48
|
"astro/valid-compile": "error",
|
package/dist/globs.d.mts
CHANGED
|
@@ -10,6 +10,7 @@ declare const GLOB_TYPE_TESTS: readonly ["**/*.test-d.?([cm])ts", "**/*.test-d.?
|
|
|
10
10
|
declare const GLOB_PLAYWRIGHT: readonly ["**/e2e/**/*.spec.?([cm])[jt]s?(x)", "**/e2e/**/*.test.?([cm])[jt]s?(x)"];
|
|
11
11
|
declare const GLOB_E2E: readonly ["**/e2e/**/*.spec.?([cm])[jt]s?(x)", "**/e2e/**/*.test.?([cm])[jt]s?(x)", "**/cypress/**/*.spec.?([cm])[jt]s?(x)", "**/cypress/**/*.test.?([cm])[jt]s?(x)"];
|
|
12
12
|
declare const GLOB_NEXTJS: readonly ["**/*.?([cm])js", "**/*.?([cm])jsx", "**/*.?([cm])ts", "**/*.?([cm])tsx"];
|
|
13
|
+
declare const GLOB_NEXTJS_ENV: readonly ["**/next-env.d.ts"];
|
|
13
14
|
declare const GLOB_IGNORES: readonly ["**/node_modules", "**/dist", "**/package-lock.json", "**/yarn.lock", "**/pnpm-lock.yaml", "**/bun.lockb", "**/output", "**/coverage", "**/temp", "**/.temp", "**/tmp", "**/.tmp", "**/.history", "**/.vitepress/cache", "**/.nuxt", "**/.next", "**/.vercel", "**/.changeset", "**/.idea", "**/.cache", "**/.output", "**/.vite-inspect", "**/.yarn", "**/storybook-static", "**/.eslint-config-inspector", "**/playwright-report", "**/.astro", "**/.vinxi", "**/app.config.timestamp_*.js", "**/.tanstack", "**/.nitro", "**/CHANGELOG*.md", "**/*.min.*", "**/LICENSE*", "**/__snapshots__", "**/auto-import?(s).d.ts", "**/components.d.ts", "**/vite.config.ts.*.mjs", "**/*.gen.*", "!.storybook"];
|
|
14
15
|
//#endregion
|
|
15
|
-
export { GLOB_ASTRO, GLOB_CJS, GLOB_E2E, GLOB_IGNORES, GLOB_JS, GLOB_JSX, GLOB_NEXTJS, GLOB_PLAYWRIGHT, GLOB_TESTS, GLOB_TS, GLOB_TSX, GLOB_TYPE_TESTS };
|
|
16
|
+
export { GLOB_ASTRO, GLOB_CJS, GLOB_E2E, GLOB_IGNORES, GLOB_JS, GLOB_JSX, GLOB_NEXTJS, GLOB_NEXTJS_ENV, GLOB_PLAYWRIGHT, GLOB_TESTS, GLOB_TS, GLOB_TSX, GLOB_TYPE_TESTS };
|
package/dist/globs.mjs
CHANGED
|
@@ -33,6 +33,7 @@ const GLOB_NEXTJS = [
|
|
|
33
33
|
GLOB_TS,
|
|
34
34
|
GLOB_TSX
|
|
35
35
|
];
|
|
36
|
+
const GLOB_NEXTJS_ENV = ["**/next-env.d.ts"];
|
|
36
37
|
const GLOB_IGNORES = [
|
|
37
38
|
"**/node_modules",
|
|
38
39
|
"**/dist",
|
|
@@ -76,4 +77,4 @@ const GLOB_IGNORES = [
|
|
|
76
77
|
"!.storybook"
|
|
77
78
|
];
|
|
78
79
|
//#endregion
|
|
79
|
-
export { GLOB_ASTRO, GLOB_CJS, GLOB_E2E, GLOB_IGNORES, GLOB_JS, GLOB_JSX, GLOB_NEXTJS, GLOB_PLAYWRIGHT, GLOB_TESTS, GLOB_TS, GLOB_TSX, GLOB_TYPE_TESTS };
|
|
80
|
+
export { GLOB_ASTRO, GLOB_CJS, GLOB_E2E, GLOB_IGNORES, GLOB_JS, GLOB_JSX, GLOB_NEXTJS, GLOB_NEXTJS_ENV, GLOB_PLAYWRIGHT, GLOB_TESTS, GLOB_TS, GLOB_TSX, GLOB_TYPE_TESTS };
|
package/dist/index.d.mts
CHANGED
|
@@ -1627,6 +1627,11 @@ interface RuleOptions {
|
|
|
1627
1627
|
* @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-exports-from-components/
|
|
1628
1628
|
*/
|
|
1629
1629
|
'astro/no-exports-from-components'?: Linter.RuleEntry<[]>;
|
|
1630
|
+
/**
|
|
1631
|
+
* disallow `prerender` export outside of pages/ directory
|
|
1632
|
+
* @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-prerender-export-outside-pages/
|
|
1633
|
+
*/
|
|
1634
|
+
'astro/no-prerender-export-outside-pages'?: Linter.RuleEntry<[]>;
|
|
1630
1635
|
/**
|
|
1631
1636
|
* disallow use of `set:html` to prevent XSS attack
|
|
1632
1637
|
* @see https://ota-meshi.github.io/eslint-plugin-astro/rules/no-set-html-directive/
|
|
@@ -2244,357 +2249,357 @@ interface RuleOptions {
|
|
|
2244
2249
|
'jest-dom/prefer-to-have-value'?: Linter.RuleEntry<[]>;
|
|
2245
2250
|
/**
|
|
2246
2251
|
* Enforce `test` and `it` usage conventions
|
|
2247
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2252
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/consistent-test-it.md
|
|
2248
2253
|
*/
|
|
2249
2254
|
'jest/consistent-test-it'?: Linter.RuleEntry<JestConsistentTestIt>;
|
|
2250
2255
|
/**
|
|
2251
2256
|
* Enforce assertion to be made in a test body
|
|
2252
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2257
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/expect-expect.md
|
|
2253
2258
|
*/
|
|
2254
2259
|
'jest/expect-expect'?: Linter.RuleEntry<JestExpectExpect>;
|
|
2255
2260
|
/**
|
|
2256
2261
|
* Enforces a maximum number assertion calls in a test body
|
|
2257
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2262
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/max-expects.md
|
|
2258
2263
|
*/
|
|
2259
2264
|
'jest/max-expects'?: Linter.RuleEntry<JestMaxExpects>;
|
|
2260
2265
|
/**
|
|
2261
2266
|
* Enforces a maximum depth to nested describe calls
|
|
2262
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2267
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/max-nested-describe.md
|
|
2263
2268
|
*/
|
|
2264
2269
|
'jest/max-nested-describe'?: Linter.RuleEntry<JestMaxNestedDescribe>;
|
|
2265
2270
|
/**
|
|
2266
2271
|
* Disallow alias methods
|
|
2267
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2272
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-alias-methods.md
|
|
2268
2273
|
*/
|
|
2269
2274
|
'jest/no-alias-methods'?: Linter.RuleEntry<[]>;
|
|
2270
2275
|
/**
|
|
2271
2276
|
* Disallow commented out tests
|
|
2272
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2277
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-commented-out-tests.md
|
|
2273
2278
|
*/
|
|
2274
2279
|
'jest/no-commented-out-tests'?: Linter.RuleEntry<[]>;
|
|
2275
2280
|
/**
|
|
2276
2281
|
* Disallow calling `expect` conditionally
|
|
2277
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2282
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-conditional-expect.md
|
|
2278
2283
|
*/
|
|
2279
2284
|
'jest/no-conditional-expect'?: Linter.RuleEntry<[]>;
|
|
2280
2285
|
/**
|
|
2281
2286
|
* Disallow conditional logic in tests
|
|
2282
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2287
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-conditional-in-test.md
|
|
2283
2288
|
*/
|
|
2284
2289
|
'jest/no-conditional-in-test'?: Linter.RuleEntry<JestNoConditionalInTest>;
|
|
2285
2290
|
/**
|
|
2286
2291
|
* Disallow confusing usages of jest.setTimeout
|
|
2287
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2292
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-confusing-set-timeout.md
|
|
2288
2293
|
*/
|
|
2289
2294
|
'jest/no-confusing-set-timeout'?: Linter.RuleEntry<[]>;
|
|
2290
2295
|
/**
|
|
2291
2296
|
* Disallow use of deprecated functions
|
|
2292
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2297
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-deprecated-functions.md
|
|
2293
2298
|
*/
|
|
2294
2299
|
'jest/no-deprecated-functions'?: Linter.RuleEntry<[]>;
|
|
2295
2300
|
/**
|
|
2296
2301
|
* Disallow disabled tests
|
|
2297
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2302
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-disabled-tests.md
|
|
2298
2303
|
*/
|
|
2299
2304
|
'jest/no-disabled-tests'?: Linter.RuleEntry<[]>;
|
|
2300
2305
|
/**
|
|
2301
2306
|
* Disallow using a callback in asynchronous tests and hooks
|
|
2302
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2307
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-done-callback.md
|
|
2303
2308
|
*/
|
|
2304
2309
|
'jest/no-done-callback'?: Linter.RuleEntry<[]>;
|
|
2305
2310
|
/**
|
|
2306
2311
|
* Disallow duplicate setup and teardown hooks
|
|
2307
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2312
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-duplicate-hooks.md
|
|
2308
2313
|
*/
|
|
2309
2314
|
'jest/no-duplicate-hooks'?: Linter.RuleEntry<[]>;
|
|
2310
2315
|
/**
|
|
2311
2316
|
* Disallow using equality matchers on error types
|
|
2312
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2317
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-error-equal.md
|
|
2313
2318
|
*/
|
|
2314
2319
|
'jest/no-error-equal'?: Linter.RuleEntry<[]>;
|
|
2315
2320
|
/**
|
|
2316
2321
|
* Disallow using `exports` in files containing tests
|
|
2317
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2322
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-export.md
|
|
2318
2323
|
*/
|
|
2319
2324
|
'jest/no-export'?: Linter.RuleEntry<[]>;
|
|
2320
2325
|
/**
|
|
2321
2326
|
* Disallow focused tests
|
|
2322
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2327
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-focused-tests.md
|
|
2323
2328
|
*/
|
|
2324
2329
|
'jest/no-focused-tests'?: Linter.RuleEntry<[]>;
|
|
2325
2330
|
/**
|
|
2326
2331
|
* Disallow setup and teardown hooks
|
|
2327
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2332
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-hooks.md
|
|
2328
2333
|
*/
|
|
2329
2334
|
'jest/no-hooks'?: Linter.RuleEntry<JestNoHooks>;
|
|
2330
2335
|
/**
|
|
2331
2336
|
* Disallow identical titles
|
|
2332
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2337
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-identical-title.md
|
|
2333
2338
|
*/
|
|
2334
2339
|
'jest/no-identical-title'?: Linter.RuleEntry<[]>;
|
|
2335
2340
|
/**
|
|
2336
2341
|
* Disallow string interpolation inside snapshots
|
|
2337
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2342
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-interpolation-in-snapshots.md
|
|
2338
2343
|
*/
|
|
2339
2344
|
'jest/no-interpolation-in-snapshots'?: Linter.RuleEntry<[]>;
|
|
2340
2345
|
/**
|
|
2341
2346
|
* Disallow Jasmine globals
|
|
2342
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2347
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-jasmine-globals.md
|
|
2343
2348
|
*/
|
|
2344
2349
|
'jest/no-jasmine-globals'?: Linter.RuleEntry<[]>;
|
|
2345
2350
|
/**
|
|
2346
2351
|
* Disallow large snapshots
|
|
2347
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2352
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-large-snapshots.md
|
|
2348
2353
|
*/
|
|
2349
2354
|
'jest/no-large-snapshots'?: Linter.RuleEntry<JestNoLargeSnapshots>;
|
|
2350
2355
|
/**
|
|
2351
2356
|
* Disallow manually importing from `__mocks__`
|
|
2352
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2357
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-mocks-import.md
|
|
2353
2358
|
*/
|
|
2354
2359
|
'jest/no-mocks-import'?: Linter.RuleEntry<[]>;
|
|
2355
2360
|
/**
|
|
2356
2361
|
* Disallow specific `jest.` methods
|
|
2357
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2362
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-restricted-jest-methods.md
|
|
2358
2363
|
*/
|
|
2359
2364
|
'jest/no-restricted-jest-methods'?: Linter.RuleEntry<JestNoRestrictedJestMethods>;
|
|
2360
2365
|
/**
|
|
2361
2366
|
* Disallow specific matchers & modifiers
|
|
2362
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2367
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-restricted-matchers.md
|
|
2363
2368
|
*/
|
|
2364
2369
|
'jest/no-restricted-matchers'?: Linter.RuleEntry<JestNoRestrictedMatchers>;
|
|
2365
2370
|
/**
|
|
2366
2371
|
* Disallow using `expect` outside of `it` or `test` blocks
|
|
2367
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2372
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-standalone-expect.md
|
|
2368
2373
|
*/
|
|
2369
2374
|
'jest/no-standalone-expect'?: Linter.RuleEntry<JestNoStandaloneExpect>;
|
|
2370
2375
|
/**
|
|
2371
2376
|
* Require using `.only` and `.skip` over `f` and `x`
|
|
2372
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2377
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-test-prefixes.md
|
|
2373
2378
|
*/
|
|
2374
2379
|
'jest/no-test-prefixes'?: Linter.RuleEntry<[]>;
|
|
2375
2380
|
/**
|
|
2376
2381
|
* Disallow explicitly returning from tests
|
|
2377
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2382
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-test-return-statement.md
|
|
2378
2383
|
*/
|
|
2379
2384
|
'jest/no-test-return-statement'?: Linter.RuleEntry<[]>;
|
|
2380
2385
|
/**
|
|
2381
2386
|
* Disallow unnecessary assertions based on types
|
|
2382
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2387
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-unnecessary-assertion.md
|
|
2383
2388
|
*/
|
|
2384
2389
|
'jest/no-unnecessary-assertion'?: Linter.RuleEntry<[]>;
|
|
2385
2390
|
/**
|
|
2386
2391
|
* Disallow unnecessary async function wrapper for expected promises
|
|
2387
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2392
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-unneeded-async-expect-function.md
|
|
2388
2393
|
*/
|
|
2389
2394
|
'jest/no-unneeded-async-expect-function'?: Linter.RuleEntry<[]>;
|
|
2390
2395
|
/**
|
|
2391
2396
|
* Disallow using `jest.mock()` factories without an explicit type parameter
|
|
2392
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2397
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/no-untyped-mock-factory.md
|
|
2393
2398
|
*/
|
|
2394
2399
|
'jest/no-untyped-mock-factory'?: Linter.RuleEntry<[]>;
|
|
2395
2400
|
/**
|
|
2396
2401
|
* Enforce padding around `afterAll` blocks
|
|
2397
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2402
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/padding-around-after-all-blocks.md
|
|
2398
2403
|
*/
|
|
2399
2404
|
'jest/padding-around-after-all-blocks'?: Linter.RuleEntry<[]>;
|
|
2400
2405
|
/**
|
|
2401
2406
|
* Enforce padding around `afterEach` blocks
|
|
2402
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2407
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/padding-around-after-each-blocks.md
|
|
2403
2408
|
*/
|
|
2404
2409
|
'jest/padding-around-after-each-blocks'?: Linter.RuleEntry<[]>;
|
|
2405
2410
|
/**
|
|
2406
2411
|
* Enforce padding around Jest functions
|
|
2407
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2412
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/padding-around-all.md
|
|
2408
2413
|
*/
|
|
2409
2414
|
'jest/padding-around-all'?: Linter.RuleEntry<[]>;
|
|
2410
2415
|
/**
|
|
2411
2416
|
* Enforce padding around `beforeAll` blocks
|
|
2412
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2417
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/padding-around-before-all-blocks.md
|
|
2413
2418
|
*/
|
|
2414
2419
|
'jest/padding-around-before-all-blocks'?: Linter.RuleEntry<[]>;
|
|
2415
2420
|
/**
|
|
2416
2421
|
* Enforce padding around `beforeEach` blocks
|
|
2417
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2422
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/padding-around-before-each-blocks.md
|
|
2418
2423
|
*/
|
|
2419
2424
|
'jest/padding-around-before-each-blocks'?: Linter.RuleEntry<[]>;
|
|
2420
2425
|
/**
|
|
2421
2426
|
* Enforce padding around `describe` blocks
|
|
2422
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2427
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/padding-around-describe-blocks.md
|
|
2423
2428
|
*/
|
|
2424
2429
|
'jest/padding-around-describe-blocks'?: Linter.RuleEntry<[]>;
|
|
2425
2430
|
/**
|
|
2426
2431
|
* Enforce padding around `expect` groups
|
|
2427
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2432
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/padding-around-expect-groups.md
|
|
2428
2433
|
*/
|
|
2429
2434
|
'jest/padding-around-expect-groups'?: Linter.RuleEntry<[]>;
|
|
2430
2435
|
/**
|
|
2431
2436
|
* Enforce padding around `test` and `it` blocks
|
|
2432
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2437
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/padding-around-test-blocks.md
|
|
2433
2438
|
*/
|
|
2434
2439
|
'jest/padding-around-test-blocks'?: Linter.RuleEntry<[]>;
|
|
2435
2440
|
/**
|
|
2436
2441
|
* Suggest using `toHaveBeenCalledWith()`
|
|
2437
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2442
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-called-with.md
|
|
2438
2443
|
*/
|
|
2439
2444
|
'jest/prefer-called-with'?: Linter.RuleEntry<[]>;
|
|
2440
2445
|
/**
|
|
2441
2446
|
* Suggest using the built-in comparison matchers
|
|
2442
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2447
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-comparison-matcher.md
|
|
2443
2448
|
*/
|
|
2444
2449
|
'jest/prefer-comparison-matcher'?: Linter.RuleEntry<[]>;
|
|
2445
2450
|
/**
|
|
2446
2451
|
* Prefer using `.each` rather than manual loops
|
|
2447
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2452
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-each.md
|
|
2448
2453
|
*/
|
|
2449
2454
|
'jest/prefer-each'?: Linter.RuleEntry<[]>;
|
|
2450
2455
|
/**
|
|
2451
2456
|
* Prefer having the last statement in a test be an assertion
|
|
2452
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2457
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-ending-with-an-expect.md
|
|
2453
2458
|
*/
|
|
2454
2459
|
'jest/prefer-ending-with-an-expect'?: Linter.RuleEntry<JestPreferEndingWithAnExpect>;
|
|
2455
2460
|
/**
|
|
2456
2461
|
* Suggest using the built-in equality matchers
|
|
2457
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2462
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-equality-matcher.md
|
|
2458
2463
|
*/
|
|
2459
2464
|
'jest/prefer-equality-matcher'?: Linter.RuleEntry<[]>;
|
|
2460
2465
|
/**
|
|
2461
2466
|
* Suggest using `expect.assertions()` OR `expect.hasAssertions()`
|
|
2462
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2467
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-expect-assertions.md
|
|
2463
2468
|
*/
|
|
2464
2469
|
'jest/prefer-expect-assertions'?: Linter.RuleEntry<JestPreferExpectAssertions>;
|
|
2465
2470
|
/**
|
|
2466
2471
|
* Prefer `await expect(...).resolves` over `expect(await ...)` syntax
|
|
2467
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2472
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-expect-resolves.md
|
|
2468
2473
|
*/
|
|
2469
2474
|
'jest/prefer-expect-resolves'?: Linter.RuleEntry<[]>;
|
|
2470
2475
|
/**
|
|
2471
2476
|
* Prefer having hooks in a consistent order
|
|
2472
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2477
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-hooks-in-order.md
|
|
2473
2478
|
*/
|
|
2474
2479
|
'jest/prefer-hooks-in-order'?: Linter.RuleEntry<[]>;
|
|
2475
2480
|
/**
|
|
2476
2481
|
* Suggest having hooks before any test cases
|
|
2477
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2482
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-hooks-on-top.md
|
|
2478
2483
|
*/
|
|
2479
2484
|
'jest/prefer-hooks-on-top'?: Linter.RuleEntry<[]>;
|
|
2480
2485
|
/**
|
|
2481
2486
|
* Prefer importing Jest globals
|
|
2482
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2487
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-importing-jest-globals.md
|
|
2483
2488
|
*/
|
|
2484
2489
|
'jest/prefer-importing-jest-globals'?: Linter.RuleEntry<JestPreferImportingJestGlobals>;
|
|
2485
2490
|
/**
|
|
2486
2491
|
* Prefer `jest.mocked()` over `fn as jest.Mock`
|
|
2487
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2492
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-jest-mocked.md
|
|
2488
2493
|
*/
|
|
2489
2494
|
'jest/prefer-jest-mocked'?: Linter.RuleEntry<[]>;
|
|
2490
2495
|
/**
|
|
2491
2496
|
* Enforce lowercase test names
|
|
2492
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2497
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-lowercase-title.md
|
|
2493
2498
|
*/
|
|
2494
2499
|
'jest/prefer-lowercase-title'?: Linter.RuleEntry<JestPreferLowercaseTitle>;
|
|
2495
2500
|
/**
|
|
2496
2501
|
* Prefer mock resolved/rejected shorthands for promises
|
|
2497
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2502
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-mock-promise-shorthand.md
|
|
2498
2503
|
*/
|
|
2499
2504
|
'jest/prefer-mock-promise-shorthand'?: Linter.RuleEntry<[]>;
|
|
2500
2505
|
/**
|
|
2501
2506
|
* Prefer mock return shorthands
|
|
2502
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2507
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-mock-return-shorthand.md
|
|
2503
2508
|
*/
|
|
2504
2509
|
'jest/prefer-mock-return-shorthand'?: Linter.RuleEntry<[]>;
|
|
2505
2510
|
/**
|
|
2506
2511
|
* Prefer including a hint with external snapshots
|
|
2507
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2512
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-snapshot-hint.md
|
|
2508
2513
|
*/
|
|
2509
2514
|
'jest/prefer-snapshot-hint'?: Linter.RuleEntry<JestPreferSnapshotHint>;
|
|
2510
2515
|
/**
|
|
2511
2516
|
* Suggest using `jest.spyOn()`
|
|
2512
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2517
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-spy-on.md
|
|
2513
2518
|
*/
|
|
2514
2519
|
'jest/prefer-spy-on'?: Linter.RuleEntry<[]>;
|
|
2515
2520
|
/**
|
|
2516
2521
|
* Suggest using `toStrictEqual()`
|
|
2517
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2522
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-strict-equal.md
|
|
2518
2523
|
*/
|
|
2519
2524
|
'jest/prefer-strict-equal'?: Linter.RuleEntry<[]>;
|
|
2520
2525
|
/**
|
|
2521
2526
|
* Suggest using `toBe()` for primitive literals
|
|
2522
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2527
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-to-be.md
|
|
2523
2528
|
*/
|
|
2524
2529
|
'jest/prefer-to-be'?: Linter.RuleEntry<[]>;
|
|
2525
2530
|
/**
|
|
2526
2531
|
* Suggest using `toContain()`
|
|
2527
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2532
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-to-contain.md
|
|
2528
2533
|
*/
|
|
2529
2534
|
'jest/prefer-to-contain'?: Linter.RuleEntry<[]>;
|
|
2530
2535
|
/**
|
|
2531
2536
|
* Suggest using `toHaveBeenCalled`
|
|
2532
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2537
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-to-have-been-called.md
|
|
2533
2538
|
*/
|
|
2534
2539
|
'jest/prefer-to-have-been-called'?: Linter.RuleEntry<[]>;
|
|
2535
2540
|
/**
|
|
2536
2541
|
* Suggest using `toHaveBeenCalledTimes()`
|
|
2537
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2542
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-to-have-been-called-times.md
|
|
2538
2543
|
*/
|
|
2539
2544
|
'jest/prefer-to-have-been-called-times'?: Linter.RuleEntry<[]>;
|
|
2540
2545
|
/**
|
|
2541
2546
|
* Suggest using `toHaveLength()`
|
|
2542
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2547
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-to-have-length.md
|
|
2543
2548
|
*/
|
|
2544
2549
|
'jest/prefer-to-have-length'?: Linter.RuleEntry<[]>;
|
|
2545
2550
|
/**
|
|
2546
2551
|
* Suggest using `test.todo`
|
|
2547
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2552
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/prefer-todo.md
|
|
2548
2553
|
*/
|
|
2549
2554
|
'jest/prefer-todo'?: Linter.RuleEntry<[]>;
|
|
2550
2555
|
/**
|
|
2551
2556
|
* Require setup and teardown code to be within a hook
|
|
2552
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2557
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/require-hook.md
|
|
2553
2558
|
*/
|
|
2554
2559
|
'jest/require-hook'?: Linter.RuleEntry<JestRequireHook>;
|
|
2555
2560
|
/**
|
|
2556
2561
|
* Require a message for `toThrow()`
|
|
2557
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2562
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/require-to-throw-message.md
|
|
2558
2563
|
*/
|
|
2559
2564
|
'jest/require-to-throw-message'?: Linter.RuleEntry<[]>;
|
|
2560
2565
|
/**
|
|
2561
2566
|
* Require test cases and hooks to be inside a `describe` block
|
|
2562
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2567
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/require-top-level-describe.md
|
|
2563
2568
|
*/
|
|
2564
2569
|
'jest/require-top-level-describe'?: Linter.RuleEntry<JestRequireTopLevelDescribe>;
|
|
2565
2570
|
/**
|
|
2566
2571
|
* Enforce unbound methods are called with their expected scope
|
|
2567
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2572
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/unbound-method.md
|
|
2568
2573
|
*/
|
|
2569
2574
|
'jest/unbound-method'?: Linter.RuleEntry<JestUnboundMethod>;
|
|
2570
2575
|
/**
|
|
2571
2576
|
* Enforce valid `describe()` callback
|
|
2572
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2577
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/valid-describe-callback.md
|
|
2573
2578
|
*/
|
|
2574
2579
|
'jest/valid-describe-callback'?: Linter.RuleEntry<[]>;
|
|
2575
2580
|
/**
|
|
2576
2581
|
* Enforce valid `expect()` usage
|
|
2577
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2582
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/valid-expect.md
|
|
2578
2583
|
*/
|
|
2579
2584
|
'jest/valid-expect'?: Linter.RuleEntry<JestValidExpect>;
|
|
2580
2585
|
/**
|
|
2581
2586
|
* Require promises that have expectations in their chain to be valid
|
|
2582
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2587
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/valid-expect-in-promise.md
|
|
2583
2588
|
*/
|
|
2584
2589
|
'jest/valid-expect-in-promise'?: Linter.RuleEntry<[]>;
|
|
2585
2590
|
/**
|
|
2586
2591
|
* Require that `resolve` and `reject` modifiers are present (and only) for promise-like types
|
|
2587
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2592
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/valid-expect-with-promise.md
|
|
2588
2593
|
*/
|
|
2589
2594
|
'jest/valid-expect-with-promise'?: Linter.RuleEntry<[]>;
|
|
2590
2595
|
/**
|
|
2591
2596
|
* Disallow mocking of non-existing module paths
|
|
2592
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2597
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/valid-mock-module-path.md
|
|
2593
2598
|
*/
|
|
2594
2599
|
'jest/valid-mock-module-path'?: Linter.RuleEntry<JestValidMockModulePath>;
|
|
2595
2600
|
/**
|
|
2596
2601
|
* Enforce valid titles
|
|
2597
|
-
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.
|
|
2602
|
+
* @see https://github.com/jest-community/eslint-plugin-jest/blob/v29.15.2/docs/rules/valid-title.md
|
|
2598
2603
|
*/
|
|
2599
2604
|
'jest/valid-title'?: Linter.RuleEntry<JestValidTitle>;
|
|
2600
2605
|
/**
|
|
@@ -4402,6 +4407,11 @@ interface RuleOptions {
|
|
|
4402
4407
|
* @see https://perfectionist.dev/rules/sort-array-includes
|
|
4403
4408
|
*/
|
|
4404
4409
|
'perfectionist/sort-array-includes'?: Linter.RuleEntry<PerfectionistSortArrayIncludes>;
|
|
4410
|
+
/**
|
|
4411
|
+
* Enforce sorted arrays.
|
|
4412
|
+
* @see https://perfectionist.dev/rules/sort-arrays
|
|
4413
|
+
*/
|
|
4414
|
+
'perfectionist/sort-arrays'?: Linter.RuleEntry<PerfectionistSortArrays>;
|
|
4405
4415
|
/**
|
|
4406
4416
|
* Enforce sorted classes.
|
|
4407
4417
|
* @see https://perfectionist.dev/rules/sort-classes
|
|
@@ -4989,24 +4999,24 @@ interface RuleOptions {
|
|
|
4989
4999
|
* @see https://eslint-react.xyz/docs/rules/hooks-extra-no-direct-set-state-in-use-effect
|
|
4990
5000
|
*/
|
|
4991
5001
|
'react-hooks-extra/no-direct-set-state-in-use-effect'?: Linter.RuleEntry<[]>;
|
|
4992
|
-
/**
|
|
4993
|
-
* Verifies that automatic effect dependencies are compiled if opted-in
|
|
4994
|
-
*/
|
|
4995
|
-
'react-hooks/automatic-effect-dependencies'?: Linter.RuleEntry<ReactHooksAutomaticEffectDependencies>;
|
|
4996
5002
|
/**
|
|
4997
5003
|
* Validates against calling capitalized functions/methods instead of using JSX
|
|
5004
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/capitalized-calls
|
|
4998
5005
|
*/
|
|
4999
5006
|
'react-hooks/capitalized-calls'?: Linter.RuleEntry<ReactHooksCapitalizedCalls>;
|
|
5000
5007
|
/**
|
|
5001
|
-
*
|
|
5008
|
+
* Deprecated: this rule has been removed in 7.1.0.
|
|
5009
|
+
* @deprecated
|
|
5002
5010
|
*/
|
|
5003
|
-
'react-hooks/component-hook-factories'?: Linter.RuleEntry<
|
|
5011
|
+
'react-hooks/component-hook-factories'?: Linter.RuleEntry<[]>;
|
|
5004
5012
|
/**
|
|
5005
5013
|
* Validates the compiler configuration options
|
|
5014
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/config
|
|
5006
5015
|
*/
|
|
5007
5016
|
'react-hooks/config'?: Linter.RuleEntry<ReactHooksConfig>;
|
|
5008
5017
|
/**
|
|
5009
5018
|
* Validates usage of error boundaries instead of try/catch for errors in child components
|
|
5019
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/error-boundaries
|
|
5010
5020
|
*/
|
|
5011
5021
|
'react-hooks/error-boundaries'?: Linter.RuleEntry<ReactHooksErrorBoundaries>;
|
|
5012
5022
|
/**
|
|
@@ -5015,59 +5025,78 @@ interface RuleOptions {
|
|
|
5015
5025
|
*/
|
|
5016
5026
|
'react-hooks/exhaustive-deps'?: Linter.RuleEntry<ReactHooksExhaustiveDeps>;
|
|
5017
5027
|
/**
|
|
5018
|
-
* Validates
|
|
5028
|
+
* Validates that effect dependencies are exhaustive and without extraneous values
|
|
5029
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/exhaustive-effect-dependencies
|
|
5019
5030
|
*/
|
|
5020
|
-
'react-hooks/
|
|
5031
|
+
'react-hooks/exhaustive-effect-dependencies'?: Linter.RuleEntry<ReactHooksExhaustiveEffectDependencies>;
|
|
5021
5032
|
/**
|
|
5022
|
-
* Validates usage of
|
|
5033
|
+
* Validates usage of fbt
|
|
5034
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/fbt
|
|
5023
5035
|
*/
|
|
5024
|
-
'react-hooks/
|
|
5036
|
+
'react-hooks/fbt'?: Linter.RuleEntry<ReactHooksFbt>;
|
|
5025
5037
|
/**
|
|
5026
5038
|
* Validates configuration of [gating mode](https://react.dev/reference/react-compiler/gating)
|
|
5039
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/gating
|
|
5027
5040
|
*/
|
|
5028
5041
|
'react-hooks/gating'?: Linter.RuleEntry<ReactHooksGating>;
|
|
5029
5042
|
/**
|
|
5030
5043
|
* Validates against assignment/mutation of globals during render, part of ensuring that [side effects must render outside of render](https://react.dev/reference/rules/components-and-hooks-must-be-pure#side-effects-must-run-outside-of-render)
|
|
5044
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/globals
|
|
5031
5045
|
*/
|
|
5032
5046
|
'react-hooks/globals'?: Linter.RuleEntry<ReactHooksGlobals>;
|
|
5033
5047
|
/**
|
|
5034
5048
|
* Validates the rules of hooks
|
|
5049
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/hooks
|
|
5035
5050
|
*/
|
|
5036
5051
|
'react-hooks/hooks'?: Linter.RuleEntry<ReactHooksHooks>;
|
|
5037
5052
|
/**
|
|
5038
5053
|
* Validates against mutating props, state, and other values that [are immutable](https://react.dev/reference/rules/components-and-hooks-must-be-pure#props-and-state-are-immutable)
|
|
5054
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/immutability
|
|
5039
5055
|
*/
|
|
5040
5056
|
'react-hooks/immutability'?: Linter.RuleEntry<ReactHooksImmutability>;
|
|
5041
5057
|
/**
|
|
5042
5058
|
* Validates against usage of libraries which are incompatible with memoization (manual or automatic)
|
|
5059
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/incompatible-library
|
|
5043
5060
|
*/
|
|
5044
5061
|
'react-hooks/incompatible-library'?: Linter.RuleEntry<ReactHooksIncompatibleLibrary>;
|
|
5045
5062
|
/**
|
|
5046
5063
|
* Internal invariants
|
|
5064
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/invariant
|
|
5047
5065
|
*/
|
|
5048
5066
|
'react-hooks/invariant'?: Linter.RuleEntry<ReactHooksInvariant>;
|
|
5067
|
+
/**
|
|
5068
|
+
* Validates that useMemo() and useCallback() specify comprehensive dependencies without extraneous values. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information.
|
|
5069
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/memo-dependencies
|
|
5070
|
+
*/
|
|
5071
|
+
'react-hooks/memo-dependencies'?: Linter.RuleEntry<ReactHooksMemoDependencies>;
|
|
5049
5072
|
/**
|
|
5050
5073
|
* Validates that effect dependencies are memoized
|
|
5074
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/memoized-effect-dependencies
|
|
5051
5075
|
*/
|
|
5052
5076
|
'react-hooks/memoized-effect-dependencies'?: Linter.RuleEntry<ReactHooksMemoizedEffectDependencies>;
|
|
5053
5077
|
/**
|
|
5054
5078
|
* Validates against deriving values from state in an effect
|
|
5079
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/no-deriving-state-in-effects
|
|
5055
5080
|
*/
|
|
5056
5081
|
'react-hooks/no-deriving-state-in-effects'?: Linter.RuleEntry<ReactHooksNoDerivingStateInEffects>;
|
|
5057
5082
|
/**
|
|
5058
5083
|
* Validates that existing manual memoized is preserved by the compiler. React Compiler will only compile components and hooks if its inference [matches or exceeds the existing manual memoization](https://react.dev/learn/react-compiler/introduction#what-should-i-do-about-usememo-usecallback-and-reactmemo)
|
|
5084
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/preserve-manual-memoization
|
|
5059
5085
|
*/
|
|
5060
5086
|
'react-hooks/preserve-manual-memoization'?: Linter.RuleEntry<ReactHooksPreserveManualMemoization>;
|
|
5061
5087
|
/**
|
|
5062
5088
|
* Validates that [components/hooks are pure](https://react.dev/reference/rules/components-and-hooks-must-be-pure) by checking that they do not call known-impure functions
|
|
5089
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/purity
|
|
5063
5090
|
*/
|
|
5064
5091
|
'react-hooks/purity'?: Linter.RuleEntry<ReactHooksPurity>;
|
|
5065
5092
|
/**
|
|
5066
5093
|
* Validates correct usage of refs, not reading/writing during render. See the "pitfalls" section in [`useRef()` usage](https://react.dev/reference/react/useRef#usage)
|
|
5094
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/refs
|
|
5067
5095
|
*/
|
|
5068
5096
|
'react-hooks/refs'?: Linter.RuleEntry<ReactHooksRefs>;
|
|
5069
5097
|
/**
|
|
5070
5098
|
* Validates against suppression of other rules
|
|
5099
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/rule-suppression
|
|
5071
5100
|
*/
|
|
5072
5101
|
'react-hooks/rule-suppression'?: Linter.RuleEntry<ReactHooksRuleSuppression>;
|
|
5073
5102
|
/**
|
|
@@ -5076,35 +5105,43 @@ interface RuleOptions {
|
|
|
5076
5105
|
*/
|
|
5077
5106
|
'react-hooks/rules-of-hooks'?: Linter.RuleEntry<ReactHooksRulesOfHooks>;
|
|
5078
5107
|
/**
|
|
5079
|
-
* Validates against calling setState synchronously in an effect
|
|
5108
|
+
* Validates against calling setState synchronously in an effect. This can indicate non-local derived data, a derived event pattern, or improper external data synchronization.
|
|
5109
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-effect
|
|
5080
5110
|
*/
|
|
5081
5111
|
'react-hooks/set-state-in-effect'?: Linter.RuleEntry<ReactHooksSetStateInEffect>;
|
|
5082
5112
|
/**
|
|
5083
5113
|
* Validates against setting state during render, which can trigger additional renders and potential infinite render loops
|
|
5114
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/set-state-in-render
|
|
5084
5115
|
*/
|
|
5085
5116
|
'react-hooks/set-state-in-render'?: Linter.RuleEntry<ReactHooksSetStateInRender>;
|
|
5086
5117
|
/**
|
|
5087
5118
|
* Validates that components are static, not recreated every render. Components that are recreated dynamically can reset state and trigger excessive re-rendering
|
|
5119
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/static-components
|
|
5088
5120
|
*/
|
|
5089
5121
|
'react-hooks/static-components'?: Linter.RuleEntry<ReactHooksStaticComponents>;
|
|
5090
5122
|
/**
|
|
5091
5123
|
* Validates against invalid syntax
|
|
5124
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/syntax
|
|
5092
5125
|
*/
|
|
5093
5126
|
'react-hooks/syntax'?: Linter.RuleEntry<ReactHooksSyntax>;
|
|
5094
5127
|
/**
|
|
5095
5128
|
* Unimplemented features
|
|
5129
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/todo
|
|
5096
5130
|
*/
|
|
5097
5131
|
'react-hooks/todo'?: Linter.RuleEntry<ReactHooksTodo>;
|
|
5098
5132
|
/**
|
|
5099
5133
|
* Validates against syntax that we do not plan to support in React Compiler
|
|
5134
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/unsupported-syntax
|
|
5100
5135
|
*/
|
|
5101
5136
|
'react-hooks/unsupported-syntax'?: Linter.RuleEntry<ReactHooksUnsupportedSyntax>;
|
|
5102
5137
|
/**
|
|
5103
5138
|
* Validates usage of the useMemo() hook against common mistakes. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information.
|
|
5139
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/use-memo
|
|
5104
5140
|
*/
|
|
5105
5141
|
'react-hooks/use-memo'?: Linter.RuleEntry<ReactHooksUseMemo>;
|
|
5106
5142
|
/**
|
|
5107
5143
|
* Validates that useMemos always return a value and that the result of the useMemo is used by the component/hook. See [`useMemo()` docs](https://react.dev/reference/react/useMemo) for more information.
|
|
5144
|
+
* @see https://react.dev/reference/eslint-plugin-react-hooks/lints/void-use-memo
|
|
5108
5145
|
*/
|
|
5109
5146
|
'react-hooks/void-use-memo'?: Linter.RuleEntry<ReactHooksVoidUseMemo>;
|
|
5110
5147
|
/**
|
|
@@ -12149,6 +12186,112 @@ type PerfectionistSortArrayIncludes = {
|
|
|
12149
12186
|
} | string)));
|
|
12150
12187
|
});
|
|
12151
12188
|
partitionByNewLine?: boolean;
|
|
12189
|
+
}[]; // ----- perfectionist/sort-arrays -----
|
|
12190
|
+
type PerfectionistSortArrays = {
|
|
12191
|
+
fallbackSort?: {
|
|
12192
|
+
type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12193
|
+
order?: ("asc" | "desc");
|
|
12194
|
+
};
|
|
12195
|
+
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12196
|
+
specialCharacters?: ("remove" | "trim" | "keep");
|
|
12197
|
+
ignoreCase?: boolean;
|
|
12198
|
+
alphabet?: string;
|
|
12199
|
+
locales?: (string | string[]);
|
|
12200
|
+
order?: ("asc" | "desc");
|
|
12201
|
+
customGroups?: ({
|
|
12202
|
+
fallbackSort?: {
|
|
12203
|
+
type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12204
|
+
order?: ("asc" | "desc");
|
|
12205
|
+
};
|
|
12206
|
+
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12207
|
+
groupName: string;
|
|
12208
|
+
newlinesInside?: ("ignore" | number);
|
|
12209
|
+
order?: ("asc" | "desc");
|
|
12210
|
+
anyOf: [{
|
|
12211
|
+
elementNamePattern?: (({
|
|
12212
|
+
pattern: string;
|
|
12213
|
+
flags?: string;
|
|
12214
|
+
} | string)[] | ({
|
|
12215
|
+
pattern: string;
|
|
12216
|
+
flags?: string;
|
|
12217
|
+
} | string));
|
|
12218
|
+
selector?: "literal";
|
|
12219
|
+
}, ...({
|
|
12220
|
+
elementNamePattern?: (({
|
|
12221
|
+
pattern: string;
|
|
12222
|
+
flags?: string;
|
|
12223
|
+
} | string)[] | ({
|
|
12224
|
+
pattern: string;
|
|
12225
|
+
flags?: string;
|
|
12226
|
+
} | string));
|
|
12227
|
+
selector?: "literal";
|
|
12228
|
+
})[]];
|
|
12229
|
+
} | {
|
|
12230
|
+
fallbackSort?: {
|
|
12231
|
+
type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12232
|
+
order?: ("asc" | "desc");
|
|
12233
|
+
};
|
|
12234
|
+
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12235
|
+
groupName: string;
|
|
12236
|
+
newlinesInside?: ("ignore" | number);
|
|
12237
|
+
order?: ("asc" | "desc");
|
|
12238
|
+
elementNamePattern?: (({
|
|
12239
|
+
pattern: string;
|
|
12240
|
+
flags?: string;
|
|
12241
|
+
} | string)[] | ({
|
|
12242
|
+
pattern: string;
|
|
12243
|
+
flags?: string;
|
|
12244
|
+
} | string));
|
|
12245
|
+
selector?: "literal";
|
|
12246
|
+
})[];
|
|
12247
|
+
newlinesInside?: (("ignore" | number) | "newlinesBetween");
|
|
12248
|
+
groups?: (string | [string, ...(string)[]] | {
|
|
12249
|
+
newlinesBetween: ("ignore" | number);
|
|
12250
|
+
} | {
|
|
12251
|
+
group: (string | [string, ...(string)[]]);
|
|
12252
|
+
fallbackSort?: {
|
|
12253
|
+
type: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12254
|
+
order?: ("asc" | "desc");
|
|
12255
|
+
};
|
|
12256
|
+
commentAbove?: string;
|
|
12257
|
+
type?: ("alphabetical" | "natural" | "line-length" | "custom" | "unsorted" | "subgroup-order");
|
|
12258
|
+
newlinesInside?: ("ignore" | number);
|
|
12259
|
+
order?: ("asc" | "desc");
|
|
12260
|
+
})[];
|
|
12261
|
+
newlinesBetween?: ("ignore" | number);
|
|
12262
|
+
useConfigurationIf: {
|
|
12263
|
+
allNamesMatchPattern?: (({
|
|
12264
|
+
pattern: string;
|
|
12265
|
+
flags?: string;
|
|
12266
|
+
} | string)[] | ({
|
|
12267
|
+
pattern: string;
|
|
12268
|
+
flags?: string;
|
|
12269
|
+
} | string));
|
|
12270
|
+
matchesAstSelector?: string;
|
|
12271
|
+
};
|
|
12272
|
+
partitionByComment?: (boolean | (({
|
|
12273
|
+
pattern: string;
|
|
12274
|
+
flags?: string;
|
|
12275
|
+
} | string)[] | ({
|
|
12276
|
+
pattern: string;
|
|
12277
|
+
flags?: string;
|
|
12278
|
+
} | string)) | {
|
|
12279
|
+
block?: (boolean | (({
|
|
12280
|
+
pattern: string;
|
|
12281
|
+
flags?: string;
|
|
12282
|
+
} | string)[] | ({
|
|
12283
|
+
pattern: string;
|
|
12284
|
+
flags?: string;
|
|
12285
|
+
} | string)));
|
|
12286
|
+
line?: (boolean | (({
|
|
12287
|
+
pattern: string;
|
|
12288
|
+
flags?: string;
|
|
12289
|
+
} | string)[] | ({
|
|
12290
|
+
pattern: string;
|
|
12291
|
+
flags?: string;
|
|
12292
|
+
} | string)));
|
|
12293
|
+
});
|
|
12294
|
+
partitionByNewLine?: boolean;
|
|
12152
12295
|
}[]; // ----- perfectionist/sort-classes -----
|
|
12153
12296
|
type PerfectionistSortClasses = {
|
|
12154
12297
|
fallbackSort?: {
|
|
@@ -12278,6 +12421,7 @@ type PerfectionistSortClasses = {
|
|
|
12278
12421
|
matchesAstSelector?: string;
|
|
12279
12422
|
};
|
|
12280
12423
|
useExperimentalDependencyDetection?: boolean;
|
|
12424
|
+
newlinesBetweenOverloadSignatures?: ("ignore" | number);
|
|
12281
12425
|
ignoreCallbackDependenciesPatterns?: (({
|
|
12282
12426
|
pattern: string;
|
|
12283
12427
|
flags?: string;
|
|
@@ -13641,6 +13785,7 @@ type PerfectionistSortModules = [] | [{
|
|
|
13641
13785
|
})[];
|
|
13642
13786
|
newlinesBetween?: ("ignore" | number);
|
|
13643
13787
|
useExperimentalDependencyDetection?: boolean;
|
|
13788
|
+
newlinesBetweenOverloadSignatures?: ("ignore" | number);
|
|
13644
13789
|
partitionByComment?: (boolean | (({
|
|
13645
13790
|
pattern: string;
|
|
13646
13791
|
flags?: string;
|
|
@@ -14680,15 +14825,9 @@ type ReactCompilerReactCompiler = [] | [{
|
|
|
14680
14825
|
type ReactDomNoUnknownProperty = [] | [{
|
|
14681
14826
|
ignore?: string[];
|
|
14682
14827
|
requireDataLowercase?: boolean;
|
|
14683
|
-
}]; // ----- react-hooks/automatic-effect-dependencies -----
|
|
14684
|
-
type ReactHooksAutomaticEffectDependencies = [] | [{
|
|
14685
|
-
[k: string]: unknown | undefined;
|
|
14686
14828
|
}]; // ----- react-hooks/capitalized-calls -----
|
|
14687
14829
|
type ReactHooksCapitalizedCalls = [] | [{
|
|
14688
14830
|
[k: string]: unknown | undefined;
|
|
14689
|
-
}]; // ----- react-hooks/component-hook-factories -----
|
|
14690
|
-
type ReactHooksComponentHookFactories = [] | [{
|
|
14691
|
-
[k: string]: unknown | undefined;
|
|
14692
14831
|
}]; // ----- react-hooks/config -----
|
|
14693
14832
|
type ReactHooksConfig = [] | [{
|
|
14694
14833
|
[k: string]: unknown | undefined;
|
|
@@ -14701,12 +14840,12 @@ type ReactHooksExhaustiveDeps = [] | [{
|
|
|
14701
14840
|
enableDangerousAutofixThisMayCauseInfiniteLoops?: boolean;
|
|
14702
14841
|
experimental_autoDependenciesHooks?: string[];
|
|
14703
14842
|
requireExplicitEffectDeps?: boolean;
|
|
14843
|
+
}]; // ----- react-hooks/exhaustive-effect-dependencies -----
|
|
14844
|
+
type ReactHooksExhaustiveEffectDependencies = [] | [{
|
|
14845
|
+
[k: string]: unknown | undefined;
|
|
14704
14846
|
}]; // ----- react-hooks/fbt -----
|
|
14705
14847
|
type ReactHooksFbt = [] | [{
|
|
14706
14848
|
[k: string]: unknown | undefined;
|
|
14707
|
-
}]; // ----- react-hooks/fire -----
|
|
14708
|
-
type ReactHooksFire = [] | [{
|
|
14709
|
-
[k: string]: unknown | undefined;
|
|
14710
14849
|
}]; // ----- react-hooks/gating -----
|
|
14711
14850
|
type ReactHooksGating = [] | [{
|
|
14712
14851
|
[k: string]: unknown | undefined;
|
|
@@ -14725,6 +14864,9 @@ type ReactHooksIncompatibleLibrary = [] | [{
|
|
|
14725
14864
|
}]; // ----- react-hooks/invariant -----
|
|
14726
14865
|
type ReactHooksInvariant = [] | [{
|
|
14727
14866
|
[k: string]: unknown | undefined;
|
|
14867
|
+
}]; // ----- react-hooks/memo-dependencies -----
|
|
14868
|
+
type ReactHooksMemoDependencies = [] | [{
|
|
14869
|
+
[k: string]: unknown | undefined;
|
|
14728
14870
|
}]; // ----- react-hooks/memoized-effect-dependencies -----
|
|
14729
14871
|
type ReactHooksMemoizedEffectDependencies = [] | [{
|
|
14730
14872
|
[k: string]: unknown | undefined;
|
package/dist/index.mjs
CHANGED
|
@@ -557,15 +557,15 @@ const defineConfig = async ({ astro = false, autoDetect = true, gitignore = fals
|
|
|
557
557
|
];
|
|
558
558
|
const featureConfigs = await Promise.all([
|
|
559
559
|
isTypescriptEnabled && unwrap(import("./typescript-BDNbtOD5.mjs"), typescript),
|
|
560
|
-
isReactEnabled && unwrap(import("./react-
|
|
560
|
+
isReactEnabled && unwrap(import("./react-CWFVE51B.mjs"), react),
|
|
561
561
|
isTanstackQueryEnabled && unwrap(import("./tanstack-query-ntNKBb-Z.mjs"), tanstackQuery),
|
|
562
|
-
isAstroEnabled && unwrap(import("./astro-
|
|
562
|
+
isAstroEnabled && unwrap(import("./astro-BMlbg_8j.mjs"), astro),
|
|
563
563
|
isJestEnabled && unwrap(import("./jest-W70UkOeC.mjs"), jest),
|
|
564
564
|
isVitestEnabled && unwrap(import("./vitest-BXTl-VRj.mjs"), vitest),
|
|
565
|
-
isTestingLibraryEnabled && unwrap(import("./testing-library-
|
|
565
|
+
isTestingLibraryEnabled && unwrap(import("./testing-library-Dqon1Cou.mjs"), testingLibrary),
|
|
566
566
|
isPlaywrightEnabled && unwrap(import("./playwright-hse_Mk2B.mjs"), playwright),
|
|
567
567
|
isStorybookEnabled && unwrap(import("./storybook-Cmw5qksj.mjs"), storybook),
|
|
568
|
-
isNextjsEnabled && unwrap(import("./nextjs-
|
|
568
|
+
isNextjsEnabled && unwrap(import("./nextjs-D_XQzWJz.mjs"), nextjs)
|
|
569
569
|
]);
|
|
570
570
|
return [
|
|
571
571
|
...gitignore ? [gitignoreConfig({ strict: false })] : [],
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GLOB_NEXTJS } from "./globs.mjs";
|
|
1
|
+
import { GLOB_NEXTJS, GLOB_NEXTJS_ENV } from "./globs.mjs";
|
|
2
2
|
import { n as extractOptions, t as unwrapDefault } from "./interop-default-BDN5nH8B.mjs";
|
|
3
3
|
import { t as upwarn } from "./upwarn-Bq0SLcj_.mjs";
|
|
4
4
|
//#region src/rules/nextjs.ts
|
|
@@ -12,12 +12,14 @@ const nextjsRules = async (options) => {
|
|
|
12
12
|
//#region src/configs/nextjs.ts
|
|
13
13
|
async function nextjsConfig(options) {
|
|
14
14
|
const extractedOptions = extractOptions(options);
|
|
15
|
-
const nextjsPlugin = await unwrapDefault(import("@next/eslint-plugin-next"));
|
|
16
15
|
return [{
|
|
17
16
|
files: GLOB_NEXTJS,
|
|
18
17
|
name: "jimmy.codes/nextjs",
|
|
19
|
-
plugins: { "@next/next":
|
|
18
|
+
plugins: { "@next/next": await unwrapDefault(import("@next/eslint-plugin-next")) },
|
|
20
19
|
rules: await nextjsRules(extractedOptions)
|
|
20
|
+
}, {
|
|
21
|
+
files: GLOB_NEXTJS_ENV,
|
|
22
|
+
rules: { "import-x/extensions": "off" }
|
|
21
23
|
}];
|
|
22
24
|
}
|
|
23
25
|
//#endregion
|
|
@@ -5,6 +5,7 @@ import { t as upwarn } from "./upwarn-Bq0SLcj_.mjs";
|
|
|
5
5
|
import globals from "globals";
|
|
6
6
|
//#region src/rules/react.ts
|
|
7
7
|
const nextAllowedExportNames = [
|
|
8
|
+
"experimental_ppr",
|
|
8
9
|
"dynamic",
|
|
9
10
|
"dynamicParams",
|
|
10
11
|
"revalidate",
|
|
@@ -12,12 +13,16 @@ const nextAllowedExportNames = [
|
|
|
12
13
|
"runtime",
|
|
13
14
|
"preferredRegion",
|
|
14
15
|
"maxDuration",
|
|
15
|
-
"config",
|
|
16
|
-
"generateStaticParams",
|
|
17
16
|
"metadata",
|
|
18
17
|
"generateMetadata",
|
|
19
18
|
"viewport",
|
|
20
|
-
"generateViewport"
|
|
19
|
+
"generateViewport",
|
|
20
|
+
"generateImageMetadata",
|
|
21
|
+
"generateSitemaps",
|
|
22
|
+
"generateStaticParams",
|
|
23
|
+
"alt",
|
|
24
|
+
"size",
|
|
25
|
+
"contentType"
|
|
21
26
|
];
|
|
22
27
|
const reactRules = async (options) => {
|
|
23
28
|
const [{ configs: reactConfigs }, { flatConfigs: jsxA11yConfigs }, { configs: reactDomConfigs }, { configs: reactHooksExtraConfigs }, { configs: reactWebApiConfigs }, { configs: reactNamingConventionConfigs }, { configs: reactRscConfigs }] = await Promise.all([
|
|
@@ -1,11 +1,29 @@
|
|
|
1
1
|
import { GLOB_E2E, GLOB_TESTS } from "./globs.mjs";
|
|
2
2
|
import { n as extractOptions, t as unwrapDefault } from "./interop-default-BDN5nH8B.mjs";
|
|
3
|
+
//#region src/utils/rebrand.ts
|
|
4
|
+
/**
|
|
5
|
+
* Renames the prefix of ESLint rule keys.
|
|
6
|
+
*
|
|
7
|
+
* @param rules - A partial set of ESLint rules.
|
|
8
|
+
*
|
|
9
|
+
* @param from - The current rule prefix to replace (without trailing slash).
|
|
10
|
+
*
|
|
11
|
+
* @param to - The new rule prefix (without trailing slash).
|
|
12
|
+
*
|
|
13
|
+
* @returns A new rules object with matching prefixes renamed.
|
|
14
|
+
*/
|
|
15
|
+
const rebrand = (rules = {}, from, to) => {
|
|
16
|
+
return Object.fromEntries(Object.entries(rules).map(([rule, option]) => {
|
|
17
|
+
return [rule.startsWith(`${from}/`) ? rule.replace(`${from}/`, `${to}/`) : rule, option];
|
|
18
|
+
}));
|
|
19
|
+
};
|
|
20
|
+
//#endregion
|
|
3
21
|
//#region src/rules/testing-library.ts
|
|
4
22
|
const testingLibraryRules = async (options) => {
|
|
5
|
-
const [jestDom, testingLibrary] = await Promise.all([import("eslint-plugin-jest-dom"), unwrapDefault(import("eslint-plugin-testing-library"))]);
|
|
23
|
+
const [jestDom, testingLibrary] = await Promise.all([import("eslint-plugin-jest-dom-ya"), unwrapDefault(import("eslint-plugin-testing-library"))]);
|
|
6
24
|
return {
|
|
7
25
|
...testingLibrary.configs["flat/react"].rules,
|
|
8
|
-
...jestDom.configs["flat/recommended"].rules,
|
|
26
|
+
...rebrand(jestDom.configs["flat/recommended"].rules, "jest-dom-ya", "jest-dom"),
|
|
9
27
|
"testing-library/no-test-id-queries": "error",
|
|
10
28
|
...options?.overrides
|
|
11
29
|
};
|
|
@@ -14,7 +32,7 @@ const testingLibraryRules = async (options) => {
|
|
|
14
32
|
//#region src/configs/testing-library.ts
|
|
15
33
|
async function testingLibraryConfig(options) {
|
|
16
34
|
const extractedOptions = extractOptions(options);
|
|
17
|
-
const [jestDom, testingLibrary] = await Promise.all([import("eslint-plugin-jest-dom"), unwrapDefault(import("eslint-plugin-testing-library"))]);
|
|
35
|
+
const [jestDom, testingLibrary] = await Promise.all([import("eslint-plugin-jest-dom-ya"), unwrapDefault(import("eslint-plugin-testing-library"))]);
|
|
18
36
|
return [{
|
|
19
37
|
files: GLOB_TESTS,
|
|
20
38
|
ignores: GLOB_E2E,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jimmy.codes/eslint-config",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.7.0",
|
|
4
4
|
"description": "A simple, modern ESLint config that covers most use cases.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"eslint",
|
|
@@ -41,32 +41,32 @@
|
|
|
41
41
|
"dependencies": {
|
|
42
42
|
"@eslint-community/eslint-plugin-eslint-comments": "^4.7.1",
|
|
43
43
|
"@eslint/js": "^9.39.4",
|
|
44
|
-
"@next/eslint-plugin-next": "^16.2.
|
|
44
|
+
"@next/eslint-plugin-next": "^16.2.4",
|
|
45
45
|
"@stylistic/eslint-plugin": "^5.10.0",
|
|
46
|
-
"@tanstack/eslint-plugin-query": "^5.
|
|
46
|
+
"@tanstack/eslint-plugin-query": "^5.100.7",
|
|
47
47
|
"@types/eslint": "9.6.1",
|
|
48
|
-
"@typescript-eslint/parser": "^8.
|
|
49
|
-
"@typescript-eslint/utils": "^8.
|
|
50
|
-
"@vitest/eslint-plugin": "^1.6.
|
|
48
|
+
"@typescript-eslint/parser": "^8.59.1",
|
|
49
|
+
"@typescript-eslint/utils": "^8.59.1",
|
|
50
|
+
"@vitest/eslint-plugin": "^1.6.16",
|
|
51
51
|
"astro-eslint-parser": "^1.4.0",
|
|
52
52
|
"eslint-config-flat-gitignore": "^2.3.0",
|
|
53
53
|
"eslint-config-prettier": "^10.1.8",
|
|
54
54
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
55
55
|
"eslint-plugin-arrow-return-style-x": "^1.2.6",
|
|
56
|
-
"eslint-plugin-astro": "^1.
|
|
56
|
+
"eslint-plugin-astro": "^1.7.0",
|
|
57
57
|
"eslint-plugin-de-morgan": "^2.1.1",
|
|
58
|
-
"eslint-plugin-erasable-syntax-only": "0.4.
|
|
58
|
+
"eslint-plugin-erasable-syntax-only": "0.4.1",
|
|
59
59
|
"eslint-plugin-import-x": "^4.16.2",
|
|
60
|
-
"eslint-plugin-jest": "^29.15.
|
|
61
|
-
"eslint-plugin-jest-dom": "^
|
|
60
|
+
"eslint-plugin-jest": "^29.15.2",
|
|
61
|
+
"eslint-plugin-jest-dom-ya": "^1.0.0",
|
|
62
62
|
"eslint-plugin-jsdoc": "^62.9.0",
|
|
63
63
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
64
64
|
"eslint-plugin-n": "^17.24.0",
|
|
65
|
-
"eslint-plugin-perfectionist": "^5.
|
|
66
|
-
"eslint-plugin-playwright": "^2.10.
|
|
65
|
+
"eslint-plugin-perfectionist": "^5.9.0",
|
|
66
|
+
"eslint-plugin-playwright": "^2.10.2",
|
|
67
67
|
"eslint-plugin-react-compiler": "19.1.0-rc.2",
|
|
68
68
|
"eslint-plugin-react-dom": "^2.13.0",
|
|
69
|
-
"eslint-plugin-react-hooks": "^7.
|
|
69
|
+
"eslint-plugin-react-hooks": "^7.1.1",
|
|
70
70
|
"eslint-plugin-react-hooks-extra": "^2.13.0",
|
|
71
71
|
"eslint-plugin-react-naming-convention": "^2.13.0",
|
|
72
72
|
"eslint-plugin-react-refresh": "0.5.2",
|
|
@@ -77,9 +77,9 @@
|
|
|
77
77
|
"eslint-plugin-storybook": "0.12.0",
|
|
78
78
|
"eslint-plugin-testing-library": "^7.16.2",
|
|
79
79
|
"eslint-plugin-unicorn": "^64.0.0",
|
|
80
|
-
"globals": "^17.
|
|
80
|
+
"globals": "^17.6.0",
|
|
81
81
|
"local-pkg": "^1.1.2",
|
|
82
|
-
"typescript-eslint": "^8.
|
|
82
|
+
"typescript-eslint": "^8.59.1"
|
|
83
83
|
},
|
|
84
84
|
"peerDependencies": {
|
|
85
85
|
"eslint": ">=9.38.0"
|