mirror of https://github.com/sveltejs/svelte
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
178 lines
6.2 KiB
178 lines
6.2 KiB
{
|
|
"$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"]
|
|
}
|
|
]
|
|
}
|