{ "$schema": "./node_modules/oxlint/configuration_schema.json", "plugins": ["typescript", "unicorn"], "categories": { "correctness": "error" }, "env": { "browser": true, "node": true }, "rules": { "@stylistic/quote-props": ["error", "as-needed"], "@typescript-eslint/array-type": ["error", { "default": "array-simple" }], "@typescript-eslint/no-array-delete": "off", "@typescript-eslint/no-base-to-string": "off", "@typescript-eslint/no-duplicate-type-constituents": "off", "@typescript-eslint/no-empty-object-type": "error", "@typescript-eslint/no-floating-promises": "off", "@typescript-eslint/no-for-in-array": "off", "@typescript-eslint/no-implied-eval": "off", "@typescript-eslint/no-meaningless-void-operator": "off", "@typescript-eslint/no-misused-spread": "off", "@typescript-eslint/no-namespace": "error", "@typescript-eslint/no-redundant-type-constituents": "off", "@typescript-eslint/no-require-imports": "error", "@typescript-eslint/no-this-alias": "off", "@typescript-eslint/no-unnecessary-parameter-property-assignment": "off", "@typescript-eslint/no-unnecessary-type-constraint": "error", "@typescript-eslint/no-unsafe-function-type": "error", "@typescript-eslint/no-unsafe-unary-minus": "off", "@typescript-eslint/no-useless-empty-export": "off", "@typescript-eslint/prefer-namespace-keyword": "error", "@typescript-eslint/require-array-sort-compare": "off", "@typescript-eslint/require-await": "error", "@typescript-eslint/restrict-template-expressions": "off", "@typescript-eslint/unbound-method": "off", "getter-return": "error", "lube/svelte-naming-convention": ["error", { "fixSameNames": true }], "no-array-constructor": "error", "no-caller": "off", "no-case-declarations": "error", "no-console": "error", "no-constant-condition": ["error", { "checkLoops": false }], "no-duplicate-imports": "error", "no-empty": ["error", { "allowEmptyCatch": true }], "no-eval": "off", "no-fallthrough": "error", "no-misleading-character-class": "error", "no-prototype-builtins": "error", "no-redeclare": "error", "no-regex-spaces": "error", "no-sparse-arrays": "off", "no-unassigned-vars": "off", "no-undef": "error", "no-unreachable": "error", "no-unused-vars": "off", "no-useless-rename": "off", "svelte/comment-directive": "error", "svelte/infinite-reactive-loop": "error", "svelte/no-at-debug-tags": "warn", "svelte/no-at-html-tags": "error", "svelte/no-dom-manipulating": "error", "svelte/no-dupe-else-if-blocks": "error", "svelte/no-dupe-on-directives": "error", "svelte/no-dupe-style-properties": "error", "svelte/no-dupe-use-directives": "error", "svelte/no-export-load-in-svelte-module-in-kit-pages": "error", "svelte/no-immutable-reactive-statements": "error", "svelte/no-inspect": "warn", "svelte/no-not-function-handler": "error", "svelte/no-object-in-text-mustaches": "error", "svelte/no-raw-special-elements": "error", "svelte/no-reactive-functions": "error", "svelte/no-reactive-literals": "error", "svelte/no-reactive-reassign": "error", "svelte/no-shorthand-style-property-overrides": "error", "svelte/no-store-async": "error", "svelte/no-svelte-internal": "error", "svelte/no-unknown-style-directive-property": "error", "svelte/no-unnecessary-state-wrap": "error", "svelte/no-unused-props": "error", "svelte/no-unused-svelte-ignore": "error", "svelte/no-useless-children-snippet": "error", "svelte/no-useless-mustaches": "error", "svelte/prefer-svelte-reactivity": "error", "svelte/prefer-writable-derived": "error", "svelte/require-each-key": "error", "svelte/require-event-dispatcher-types": "error", "svelte/require-store-reactive-access": "error", "svelte/system": "error", "svelte/valid-each-key": "error", "svelte/valid-prop-names-in-kit-pages": "error", "unicorn/no-await-in-promise-methods": "off", "unicorn/no-empty-file": "off", "unicorn/no-invalid-fetch-options": "off", "unicorn/no-invalid-remove-event-listener": "off", "unicorn/no-new-array": "off", "unicorn/no-single-promise-in-promise-methods": "off", "unicorn/no-thenable": "off", "unicorn/no-unnecessary-await": "off", "unicorn/no-useless-fallback-in-spread": "off", "unicorn/no-useless-length-check": "off", "unicorn/no-useless-spread": "off", "unicorn/prefer-set-size": "off", "unicorn/prefer-string-starts-ends-with": "off" }, "jsPlugins": ["eslint-plugin-svelte", "@stylistic/eslint-plugin", "eslint-plugin-lube"], "ignorePatterns": [ "**/*.d.ts", "**/tests", "packages/svelte/scripts/process-messages/templates/*.js", "packages/svelte/scripts/_bundle.js", "packages/svelte/src/compiler/errors.js", "packages/svelte/src/internal/client/errors.js", "packages/svelte/src/internal/client/warnings.js", "packages/svelte/src/internal/shared/warnings.js", "packages/svelte/src/internal/server/warnings.js", "packages/svelte/compiler/index.js", "benchmarking/**", "coverage/**", "playgrounds/sandbox/**", "*.config.js", "vitest-xhtml-environment.ts", "documentation", "tmp/**" ], "overrides": [ { "files": ["**/*.ts", "**/*.tsx", "**/*.mts", "**/*.cts"], "rules": { "constructor-super": "off", "getter-return": "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-undef": "off", "no-unreachable": "off", "no-unsafe-negation": "off", "no-var": "error", "no-with": "off", "prefer-const": "error", "prefer-rest-params": "error", "prefer-spread": "error" } }, { "files": ["*.svelte", "**/*.svelte"], "rules": { "no-self-assign": "off" }, "jsPlugins": ["eslint-plugin-svelte"] }, { "files": ["**/*.svelte"], "rules": { "@typescript-eslint/await-thenable": "off", "@typescript-eslint/require-await": "off" } }, { "files": ["packages/svelte/src/**/*"], "rules": { "svelte/no-svelte-internal": "off", "custom/no-compiler-imports": "error" }, "jsPlugins": ["./oxlint/custom.js"] } ] }