49 lines
1.4 KiB
TypeScript
49 lines
1.4 KiB
TypeScript
import { defineConfig } from "oxlint";
|
|
import core from "ultracite/oxlint/core";
|
|
import react from "ultracite/oxlint/react";
|
|
import remix from "ultracite/oxlint/remix";
|
|
|
|
export default defineConfig({
|
|
extends: [core, react, remix],
|
|
ignorePatterns: [
|
|
...core.ignorePatterns,
|
|
"**/.agents/skills/**",
|
|
"repos/**",
|
|
"scripts/**",
|
|
],
|
|
overrides: [
|
|
{
|
|
files: ["packages/ui/src/components/*.tsx"],
|
|
rules: {
|
|
"eslint/func-style": "off",
|
|
"jsx-a11y/click-events-have-key-events": "off",
|
|
"jsx-a11y/label-has-associated-control": "off",
|
|
"jsx-a11y/no-noninteractive-element-interactions": "off",
|
|
"jsx-a11y/prefer-tag-over-role": "off",
|
|
"sort-keys": "off",
|
|
},
|
|
},
|
|
{
|
|
files: ["**/convex/**/*.ts", "**/convex/**/*.test.ts"],
|
|
rules: {
|
|
// Convex query builders use `any` in index callbacks
|
|
"@typescript-eslint/no-explicit-any": "off",
|
|
"@typescript-eslint/no-non-null-assertion": "off",
|
|
"eslint/complexity": "off",
|
|
"no-await-in-loop": "off",
|
|
"unicorn/filename-case": "off",
|
|
// Convex targets ES2022: no toSorted/at; sequential awaits ensure atomicity
|
|
"unicorn/no-array-sort": "off",
|
|
},
|
|
},
|
|
{
|
|
files: ["**/convex/**/*.test.ts"],
|
|
rules: {
|
|
"eslint/require-await": "off",
|
|
"sort-keys": "off",
|
|
"unicorn/no-await-expression-member": "off",
|
|
},
|
|
},
|
|
],
|
|
});
|