|
1 | 1 | { |
2 | 2 | "$schema": "./node_modules/oxlint/configuration_schema.json", |
3 | | - "plugins": ["react", "typescript", "import", "jest", "vitest"], |
| 3 | + "plugins": ["react", "typescript", "import", "jest", "vitest", "unicorn"], |
4 | 4 | "jsPlugins": [ |
5 | 5 | "./config/oxlint-plugins/universe-custom.js", |
6 | | - "eslint-plugin-check-file", |
7 | 6 | "@jambit/eslint-plugin-typed-redux-saga", |
8 | 7 | "eslint-plugin-security", |
9 | | - "eslint-plugin-no-unsanitized" |
| 8 | + "eslint-plugin-no-unsanitized", |
| 9 | + // TODO: Remove oxlint-plugin-eslint after oxlint ships native object-shorthand |
| 10 | + // (https://github.com/oxc-project/oxc/pull/17688) |
| 11 | + "oxlint-plugin-eslint" |
10 | 12 | ], |
11 | 13 | "env": { |
12 | 14 | "browser": true, |
|
34 | 36 | "**/vitest.config*", |
35 | 37 | "**/vitest-setup*", |
36 | 38 | "**/vitest-package-mocks*", |
| 39 | + "**/jest-setup*", |
| 40 | + "**/jest-package-mocks*", |
37 | 41 | "**/.wxt/**", |
38 | 42 | "**/wxt.config.*", |
39 | 43 | ], |
|
103 | 107 | "security/detect-buffer-noassert": "error", |
104 | 108 | "security/detect-child-process": "error", |
105 | 109 | "security/detect-disable-mustache-escape": "error", |
106 | | - "security/detect-eval-with-expression": "error", |
107 | 110 | "security/detect-non-literal-regexp": "error", |
108 | 111 | "security/detect-pseudoRandomBytes": "error", |
109 | | - "security/detect-new-buffer": "error", |
| 112 | + "unicorn/no-new-buffer": "error", |
| 113 | + "unicorn/no-new-array": "off", |
110 | 114 | "no-unsanitized/method": "error", |
111 | 115 | "no-unsanitized/property": "error", |
112 | 116 |
|
113 | 117 | // ββ style ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ |
| 118 | + // TODO: Replace with native object-shorthand after next oxlint update |
| 119 | + // (https://github.com/oxc-project/oxc/pull/17688) |
| 120 | + "eslint-js/object-shorthand": ["error", "always"], |
114 | 121 | "jest/no-conditional-expect": "off", |
115 | 122 | "jest/require-to-throw-message": "off", |
116 | 123 | "jest/no-done-callback": "error", |
|
298 | 305 | ], |
299 | 306 | "universe-custom/no-redux-modals": "error", |
300 | 307 |
|
301 | | - // ββ check-file βββββββββββββββββββββββββββββββββββββββββββββββββββββ |
302 | | - "check-file/no-index": "off", |
| 308 | + // ββ typed-redux-saga ββββββββββββββββββββββββββββββββββββββββββββββ |
| 309 | + "@jambit/typed-redux-saga/use-typed-effects": "error", |
| 310 | + "@jambit/typed-redux-saga/delegate-effects": "error", |
303 | 311 |
|
304 | 312 | // ββ additional eslint rules not in biome βββββββββββββββββββββββββββ |
305 | 313 | "guard-for-in": "error", |
|
319 | 327 | "typescript/no-floating-promises": "error", |
320 | 328 | "typescript/no-unsafe-return": "error", |
321 | 329 | "typescript/no-unnecessary-condition": ["error", { "allowConstantLoopConditions": true }], |
| 330 | + "typescript/no-redundant-type-constituents": "off", |
| 331 | + "typescript/unbound-method": "off", |
| 332 | + "typescript/restrict-template-expressions": "off", |
| 333 | + "typescript/no-base-to-string": "off", |
322 | 334 |
|
323 | 335 | // ββ suspicious βββββββββββββββββββββββββββββββββββββββββββββββββββββ |
324 | 336 | "no-alert": "warn", |
|
357 | 369 | "overrides": [ |
358 | 370 | // ββ Migration + vitest setup files: relax type rules βββββββββββββββ |
359 | 371 | { |
360 | | - "files": ["**/*migration*", "**/*Migration*", "**/vitest-setup*", "**/vitest-package-mocks*"], |
| 372 | + "files": ["**/*migration*", "**/*Migration*", "**/migrations/**/*.ts"], |
361 | 373 | "rules": { |
362 | 374 | "typescript/no-explicit-any": "off", |
363 | | - "typescript/no-non-null-assertion": "off" |
| 375 | + "typescript/no-non-null-assertion": "off", |
| 376 | + "typescript/no-unsafe-return": "off" |
364 | 377 | } |
365 | 378 | }, |
366 | 379 | // ββ Logger, scripts, devtools: allow console βββββββββββββββββββββββ |
|
428 | 441 | "universe-custom/custom-map-sort": "off", |
429 | 442 | "universe-custom/no-hex-string-casting": "off", |
430 | 443 | "typescript/triple-slash-reference": "off", |
| 444 | + "typescript/await-thenable": "off", |
| 445 | + "typescript/no-unsafe-return": "off", |
| 446 | + "typescript/no-misused-spread": "off", |
431 | 447 | "security/detect-non-literal-regexp": "off", |
432 | 448 | "prefer-const": "off", |
433 | 449 | "no-shadow": "off", |
|
0 commit comments