153 lines
5 KiB
JSON
153 lines
5 KiB
JSON
|
|
{
|
||
|
|
"$schema": "./node_modules/oxlint/configuration_schema.json",
|
||
|
|
"plugins": [
|
||
|
|
"nextjs",
|
||
|
|
"typescript"
|
||
|
|
],
|
||
|
|
"categories": {
|
||
|
|
"correctness": "off"
|
||
|
|
},
|
||
|
|
"env": {
|
||
|
|
"builtin": true
|
||
|
|
},
|
||
|
|
"ignorePatterns": [
|
||
|
|
".next/**",
|
||
|
|
"out/**",
|
||
|
|
"build/**",
|
||
|
|
"next-env.d.ts"
|
||
|
|
],
|
||
|
|
"rules": {
|
||
|
|
"@next/next/google-font-display": "warn",
|
||
|
|
"@next/next/google-font-preconnect": "warn",
|
||
|
|
"@next/next/next-script-for-ga": "warn",
|
||
|
|
"@next/next/no-async-client-component": "warn",
|
||
|
|
"@next/next/no-before-interactive-script-outside-document": "warn",
|
||
|
|
"@next/next/no-css-tags": "warn",
|
||
|
|
"@next/next/no-head-element": "warn",
|
||
|
|
"@next/next/no-html-link-for-pages": "error",
|
||
|
|
"@next/next/no-img-element": "warn",
|
||
|
|
"@next/next/no-page-custom-font": "warn",
|
||
|
|
"@next/next/no-styled-jsx-in-document": "warn",
|
||
|
|
"@next/next/no-sync-scripts": "error",
|
||
|
|
"@next/next/no-title-in-document-head": "warn",
|
||
|
|
"@next/next/no-typos": "warn",
|
||
|
|
"@next/next/no-unwanted-polyfillio": "warn",
|
||
|
|
"@next/next/inline-script-id": "error",
|
||
|
|
"@next/next/no-assign-module-variable": "error",
|
||
|
|
"@next/next/no-document-import-in-page": "error",
|
||
|
|
"@next/next/no-duplicate-head": "error",
|
||
|
|
"@next/next/no-head-import-in-document": "error",
|
||
|
|
"@next/next/no-script-component-in-head": "error",
|
||
|
|
"@typescript-eslint/ban-ts-comment": "error",
|
||
|
|
"no-array-constructor": "error",
|
||
|
|
"@typescript-eslint/no-duplicate-enum-values": "error",
|
||
|
|
"@typescript-eslint/no-empty-object-type": "error",
|
||
|
|
"@typescript-eslint/no-explicit-any": "error",
|
||
|
|
"@typescript-eslint/no-extra-non-null-assertion": "error",
|
||
|
|
"@typescript-eslint/no-misused-new": "error",
|
||
|
|
"@typescript-eslint/no-namespace": "error",
|
||
|
|
"@typescript-eslint/no-non-null-asserted-optional-chain": "error",
|
||
|
|
"@typescript-eslint/no-require-imports": "error",
|
||
|
|
"@typescript-eslint/no-this-alias": "error",
|
||
|
|
"@typescript-eslint/no-unnecessary-type-constraint": "error",
|
||
|
|
"@typescript-eslint/no-unsafe-declaration-merging": "error",
|
||
|
|
"@typescript-eslint/no-unsafe-function-type": "error",
|
||
|
|
"no-unused-expressions": "warn",
|
||
|
|
"no-unused-vars": "warn",
|
||
|
|
"@typescript-eslint/no-wrapper-object-types": "error",
|
||
|
|
"@typescript-eslint/prefer-as-const": "error",
|
||
|
|
"@typescript-eslint/prefer-namespace-keyword": "error",
|
||
|
|
"@typescript-eslint/triple-slash-reference": "error"
|
||
|
|
},
|
||
|
|
"overrides": [
|
||
|
|
{
|
||
|
|
"files": [
|
||
|
|
"**/*.{js,jsx,mjs,ts,tsx,mts,cts}"
|
||
|
|
],
|
||
|
|
"rules": {
|
||
|
|
"react/display-name": "error",
|
||
|
|
"react/jsx-key": "error",
|
||
|
|
"react/jsx-no-comment-textnodes": "error",
|
||
|
|
"react/jsx-no-duplicate-props": "error",
|
||
|
|
"react/jsx-no-target-blank": "off",
|
||
|
|
"react/jsx-no-undef": "error",
|
||
|
|
"react/no-children-prop": "error",
|
||
|
|
"react/no-danger-with-children": "error",
|
||
|
|
"react/no-direct-mutation-state": "error",
|
||
|
|
"react/no-find-dom-node": "error",
|
||
|
|
"react/no-is-mounted": "error",
|
||
|
|
"react/no-render-return-value": "error",
|
||
|
|
"react/no-string-refs": "error",
|
||
|
|
"react/no-unescaped-entities": "error",
|
||
|
|
"react/no-unknown-property": "off",
|
||
|
|
"react/no-unsafe": "off",
|
||
|
|
"react/react-in-jsx-scope": "off",
|
||
|
|
"react-hooks/rules-of-hooks": "error",
|
||
|
|
"react-hooks/exhaustive-deps": "warn",
|
||
|
|
"import/no-anonymous-default-export": "warn",
|
||
|
|
"jsx-a11y/alt-text": [
|
||
|
|
"warn",
|
||
|
|
{
|
||
|
|
"elements": [
|
||
|
|
"img"
|
||
|
|
],
|
||
|
|
"img": [
|
||
|
|
"Image"
|
||
|
|
]
|
||
|
|
}
|
||
|
|
],
|
||
|
|
"jsx-a11y/aria-props": "warn",
|
||
|
|
"jsx-a11y/aria-proptypes": "warn",
|
||
|
|
"jsx-a11y/aria-unsupported-elements": "warn",
|
||
|
|
"jsx-a11y/role-has-required-aria-props": "warn",
|
||
|
|
"jsx-a11y/role-supports-aria-props": "warn"
|
||
|
|
},
|
||
|
|
"globals": {
|
||
|
|
"AudioWorkletGlobalScope": "readonly",
|
||
|
|
"AudioWorkletProcessor": "readonly",
|
||
|
|
"currentFrame": "readonly",
|
||
|
|
"currentTime": "readonly",
|
||
|
|
"registerProcessor": "readonly",
|
||
|
|
"sampleRate": "readonly",
|
||
|
|
"WorkletGlobalScope": "readonly"
|
||
|
|
},
|
||
|
|
"plugins": [
|
||
|
|
"react",
|
||
|
|
"import",
|
||
|
|
"jsx-a11y"
|
||
|
|
],
|
||
|
|
"env": {
|
||
|
|
"browser": true,
|
||
|
|
"node": true
|
||
|
|
}
|
||
|
|
},
|
||
|
|
{
|
||
|
|
"files": [
|
||
|
|
"**/*.ts",
|
||
|
|
"**/*.tsx",
|
||
|
|
"**/*.mts",
|
||
|
|
"**/*.cts"
|
||
|
|
],
|
||
|
|
"rules": {
|
||
|
|
"constructor-super": "off",
|
||
|
|
"no-class-assign": "off",
|
||
|
|
"no-const-assign": "off",
|
||
|
|
"no-dupe-class-members": "off",
|
||
|
|
"no-dupe-keys": "off",
|
||
|
|
"no-func-assign": "off",
|
||
|
|
"no-import-assign": "off",
|
||
|
|
"no-new-native-nonconstructor": "off",
|
||
|
|
"no-obj-calls": "off",
|
||
|
|
"no-redeclare": "off",
|
||
|
|
"no-setter-return": "off",
|
||
|
|
"no-this-before-super": "off",
|
||
|
|
"no-unsafe-negation": "off",
|
||
|
|
"no-var": "error",
|
||
|
|
"no-with": "off",
|
||
|
|
"prefer-const": "error",
|
||
|
|
"prefer-rest-params": "error",
|
||
|
|
"prefer-spread": "error"
|
||
|
|
}
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|