From f8d9e630a8dff68e8f99795f071f8ece895d0bfe Mon Sep 17 00:00:00 2001 From: baseballyama Date: Sat, 14 Dec 2024 14:48:21 +0900 Subject: [PATCH 01/23] breaking: redesigned the config --- .vscode/settings.json | 1 + README.md | 4 +-- docs/rules.md | 8 ++--- docs/rules/comment-directive.md | 2 +- docs/rules/no-at-debug-tags.md | 2 +- docs/rules/no-at-html-tags.md | 2 +- docs/rules/no-dupe-else-if-blocks.md | 2 +- docs/rules/no-dupe-style-properties.md | 2 +- docs/rules/no-dynamic-slot-name.md | 2 +- docs/rules/no-inner-declarations.md | 2 +- docs/rules/no-not-function-handler.md | 2 +- docs/rules/no-object-in-text-mustaches.md | 2 +- .../no-shorthand-style-property-overrides.md | 2 +- .../no-unknown-style-directive-property.md | 2 +- docs/rules/no-unused-svelte-ignore.md | 2 +- docs/rules/system.md | 2 +- docs/rules/valid-compile.md | 2 +- packages/eslint-plugin-svelte/package.json | 8 ++--- .../src/configs/flat/recommended.ts | 2 -- .../no-unnecessary-condition.ts | 2 +- .../src/rules/block-lang.ts | 2 +- .../src/rules/button-has-type.ts | 2 +- .../src/rules/comment-directive.ts | 2 +- .../rules/derived-has-same-inputs-outputs.ts | 2 +- .../rules/experimental-require-slot-types.ts | 2 +- .../experimental-require-strict-events.ts | 2 +- .../src/rules/first-attribute-linebreak.ts | 2 +- .../rules/html-closing-bracket-new-line.ts | 2 +- .../src/rules/html-closing-bracket-spacing.ts | 2 +- .../src/rules/html-quotes.ts | 2 +- .../src/rules/html-self-closing.ts | 2 +- .../eslint-plugin-svelte/src/rules/indent.ts | 2 +- .../src/rules/infinite-reactive-loop.ts | 2 +- .../src/rules/max-attributes-per-line.ts | 2 +- .../src/rules/mustache-spacing.ts | 2 +- .../src/rules/no-at-debug-tags.ts | 2 +- .../src/rules/no-at-html-tags.ts | 2 +- .../no-deprecated-raw-special-elements.ts | 2 +- .../src/rules/no-dom-manipulating.ts | 2 +- .../src/rules/no-dupe-else-if-blocks.ts | 2 +- .../src/rules/no-dupe-on-directives.ts | 2 +- .../src/rules/no-dupe-style-properties.ts | 2 +- .../src/rules/no-dupe-use-directives.ts | 2 +- .../src/rules/no-dynamic-slot-name.ts | 2 +- ...port-load-in-svelte-module-in-kit-pages.ts | 2 +- .../src/rules/no-extra-reactive-curlies.ts | 2 +- .../src/rules/no-goto-without-base.ts | 2 +- .../src/rules/no-ignored-unsubscribe.ts | 2 +- .../rules/no-immutable-reactive-statements.ts | 2 +- .../src/rules/no-inline-styles.ts | 2 +- .../src/rules/no-inner-declarations.ts | 2 +- .../src/rules/no-inspect.ts | 2 +- .../src/rules/no-not-function-handler.ts | 2 +- .../src/rules/no-object-in-text-mustaches.ts | 2 +- .../src/rules/no-reactive-functions.ts | 2 +- .../src/rules/no-reactive-literals.ts | 2 +- .../src/rules/no-reactive-reassign.ts | 2 +- .../src/rules/no-restricted-html-elements.ts | 2 +- .../no-shorthand-style-property-overrides.ts | 2 +- ...-spaces-around-equal-signs-in-attribute.ts | 2 +- .../src/rules/no-store-async.ts | 4 +-- .../src/rules/no-svelte-internal.ts | 4 +-- .../src/rules/no-target-blank.ts | 2 +- .../src/rules/no-trailing-spaces.ts | 2 +- .../no-unknown-style-directive-property.ts | 2 +- .../src/rules/no-unused-class-name.ts | 2 +- .../src/rules/no-unused-svelte-ignore.ts | 2 +- .../src/rules/no-useless-mustaches.ts | 2 +- .../src/rules/prefer-class-directive.ts | 2 +- .../rules/prefer-destructured-store-props.ts | 2 +- .../src/rules/prefer-style-directive.ts | 2 +- .../src/rules/require-each-key.ts | 2 +- .../rules/require-event-dispatcher-types.ts | 2 +- .../require-optimized-style-attribute.ts | 2 +- .../require-store-callbacks-use-set-param.ts | 2 +- .../rules/require-store-reactive-access.ts | 4 +-- .../src/rules/require-stores-init.ts | 2 +- .../src/rules/shorthand-attribute.ts | 2 +- .../src/rules/shorthand-directive.ts | 2 +- .../src/rules/sort-attributes.ts | 2 +- .../src/rules/spaced-html-comment.ts | 2 +- .../eslint-plugin-svelte/src/rules/system.ts | 2 +- .../src/rules/valid-compile.ts | 2 +- .../src/rules/valid-each-key.ts | 2 +- .../rules/valid-prop-names-in-kit-pages.ts | 2 +- packages/eslint-plugin-svelte/src/types.ts | 10 ++++-- .../eslint-plugin-svelte/tools/new-rule.ts | 3 +- .../tools/render-rules.ts | 2 +- .../eslint-plugin-svelte/tools/update-docs.ts | 15 ++++---- .../eslint-plugin-svelte/tools/update-meta.ts | 6 ++-- .../tools/update-rule-types.ts | 1 - .../tools/update-rulesets.ts | 34 ++++++++++++++----- 92 files changed, 138 insertions(+), 122 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 9c214fd5a..c06f3152d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,6 +4,7 @@ "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.codeActionsOnSave": { "source.fixAll": "explicit", + "source.fixAll.eslint": "explicit", "source.fixAll.stylelint": "explicit" }, "svelte.plugin.typescript.diagnostics.enable": false, diff --git a/README.md b/README.md index a959eda16..2e500cf34 100644 --- a/README.md +++ b/README.md @@ -426,8 +426,8 @@ These rules relate to this plugin works: | Rule ID | Description | | |:--------|:------------|:---| -| [svelte/comment-directive](https://sveltejs.github.io/eslint-plugin-svelte/rules/comment-directive/) | support comment-directives in HTML template | :star: | -| [svelte/system](https://sveltejs.github.io/eslint-plugin-svelte/rules/system/) | system rule for working this plugin | :star: | +| [svelte/comment-directive](https://sveltejs.github.io/eslint-plugin-svelte/rules/comment-directive/) | support comment-directives in HTML template | | +| [svelte/system](https://sveltejs.github.io/eslint-plugin-svelte/rules/system/) | system rule for working this plugin | | ## Deprecated diff --git a/docs/rules.md b/docs/rules.md index 29701ff7e..e4d606123 100644 --- a/docs/rules.md +++ b/docs/rules.md @@ -126,10 +126,10 @@ These rules relate to SvelteKit and its best Practices. These rules relate to this plugin works: -| Rule ID | Description | | -| :------------------------------------------------------- | :------------------------------------------ | :----- | -| [svelte/comment-directive](./rules/comment-directive.md) | support comment-directives in HTML template | :star: | -| [svelte/system](./rules/system.md) | system rule for working this plugin | :star: | +| Rule ID | Description | | +| :------------------------------------------------------- | :------------------------------------------ | :-- | +| [svelte/comment-directive](./rules/comment-directive.md) | support comment-directives in HTML template | | +| [svelte/system](./rules/system.md) | system rule for working this plugin | | ## Deprecated diff --git a/docs/rules/comment-directive.md b/docs/rules/comment-directive.md index be08902a2..9d057a576 100644 --- a/docs/rules/comment-directive.md +++ b/docs/rules/comment-directive.md @@ -10,7 +10,7 @@ since: 'v0.0.13' > support comment-directives in HTML template -- :gear: This rule is included in `"plugin:svelte/base"` and `"plugin:svelte/recommended"`. +- :gear: This rule is included in `"plugin:svelte/base"` configuration. Sole purpose of this rule is to provide `eslint-disable` functionality in the template HTML. It supports usage of the following comments: diff --git a/docs/rules/no-at-debug-tags.md b/docs/rules/no-at-debug-tags.md index 5167bef81..b2226351a 100644 --- a/docs/rules/no-at-debug-tags.md +++ b/docs/rules/no-at-debug-tags.md @@ -10,7 +10,7 @@ since: 'v0.0.1' > disallow the use of `{@debug}` -- :gear: This rule is included in `"plugin:svelte/recommended"`. +- :gear: This rule is included in `"plugin:svelte/recommended"` configuration. ## :book: Rule Details diff --git a/docs/rules/no-at-html-tags.md b/docs/rules/no-at-html-tags.md index bdec6d96a..e9668230e 100644 --- a/docs/rules/no-at-html-tags.md +++ b/docs/rules/no-at-html-tags.md @@ -10,7 +10,7 @@ since: 'v0.0.1' > disallow use of `{@html}` to prevent XSS attack -- :gear: This rule is included in `"plugin:svelte/recommended"`. +- :gear: This rule is included in `"plugin:svelte/recommended"` configuration. ## :book: Rule Details diff --git a/docs/rules/no-dupe-else-if-blocks.md b/docs/rules/no-dupe-else-if-blocks.md index 839e1720d..f1e31e4bf 100644 --- a/docs/rules/no-dupe-else-if-blocks.md +++ b/docs/rules/no-dupe-else-if-blocks.md @@ -10,7 +10,7 @@ since: 'v0.0.1' > disallow duplicate conditions in `{#if}` / `{:else if}` chains -- :gear: This rule is included in `"plugin:svelte/recommended"`. +- :gear: This rule is included in `"plugin:svelte/recommended"` configuration. ## :book: Rule Details diff --git a/docs/rules/no-dupe-style-properties.md b/docs/rules/no-dupe-style-properties.md index b618092c6..bf7cea7e4 100644 --- a/docs/rules/no-dupe-style-properties.md +++ b/docs/rules/no-dupe-style-properties.md @@ -10,7 +10,7 @@ since: 'v0.31.0' > disallow duplicate style properties -- :gear: This rule is included in `"plugin:svelte/recommended"`. +- :gear: This rule is included in `"plugin:svelte/recommended"` configuration. ## :book: Rule Details diff --git a/docs/rules/no-dynamic-slot-name.md b/docs/rules/no-dynamic-slot-name.md index f9a84df2f..5535f5b6e 100644 --- a/docs/rules/no-dynamic-slot-name.md +++ b/docs/rules/no-dynamic-slot-name.md @@ -10,7 +10,7 @@ since: 'v0.14.0' > disallow dynamic slot name -- :gear: This rule is included in `"plugin:svelte/recommended"`. +- :gear: This rule is included in `"plugin:svelte/recommended"` configuration. - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule. ## :book: Rule Details diff --git a/docs/rules/no-inner-declarations.md b/docs/rules/no-inner-declarations.md index ee1e0e591..fd92b6233 100644 --- a/docs/rules/no-inner-declarations.md +++ b/docs/rules/no-inner-declarations.md @@ -10,7 +10,7 @@ since: 'v0.0.8' > disallow variable or `function` declarations in nested blocks -- :gear: This rule is included in `"plugin:svelte/recommended"`. +- :gear: This rule is included in `"plugin:svelte/recommended"` configuration. ## :book: Rule Details diff --git a/docs/rules/no-not-function-handler.md b/docs/rules/no-not-function-handler.md index 3162a4254..5a5ba6c8b 100644 --- a/docs/rules/no-not-function-handler.md +++ b/docs/rules/no-not-function-handler.md @@ -10,7 +10,7 @@ since: 'v0.5.0' > disallow use of not function in event handler -- :gear: This rule is included in `"plugin:svelte/recommended"`. +- :gear: This rule is included in `"plugin:svelte/recommended"` configuration. ## :book: Rule Details diff --git a/docs/rules/no-object-in-text-mustaches.md b/docs/rules/no-object-in-text-mustaches.md index c6f2a3587..a80cb997f 100644 --- a/docs/rules/no-object-in-text-mustaches.md +++ b/docs/rules/no-object-in-text-mustaches.md @@ -10,7 +10,7 @@ since: 'v0.5.0' > disallow objects in text mustache interpolation -- :gear: This rule is included in `"plugin:svelte/recommended"`. +- :gear: This rule is included in `"plugin:svelte/recommended"` configuration. ## :book: Rule Details diff --git a/docs/rules/no-shorthand-style-property-overrides.md b/docs/rules/no-shorthand-style-property-overrides.md index 3e45229d9..18d5bbf71 100644 --- a/docs/rules/no-shorthand-style-property-overrides.md +++ b/docs/rules/no-shorthand-style-property-overrides.md @@ -10,7 +10,7 @@ since: 'v0.31.0' > disallow shorthand style properties that override related longhand properties -- :gear: This rule is included in `"plugin:svelte/recommended"`. +- :gear: This rule is included in `"plugin:svelte/recommended"` configuration. ## :book: Rule Details diff --git a/docs/rules/no-unknown-style-directive-property.md b/docs/rules/no-unknown-style-directive-property.md index 340517afd..a7e3fdc9c 100644 --- a/docs/rules/no-unknown-style-directive-property.md +++ b/docs/rules/no-unknown-style-directive-property.md @@ -10,7 +10,7 @@ since: 'v0.31.0' > disallow unknown `style:property` -- :gear: This rule is included in `"plugin:svelte/recommended"`. +- :gear: This rule is included in `"plugin:svelte/recommended"` configuration. ## :book: Rule Details diff --git a/docs/rules/no-unused-svelte-ignore.md b/docs/rules/no-unused-svelte-ignore.md index 9313ece97..703a69618 100644 --- a/docs/rules/no-unused-svelte-ignore.md +++ b/docs/rules/no-unused-svelte-ignore.md @@ -10,7 +10,7 @@ since: 'v0.19.0' > disallow unused svelte-ignore comments -- :gear: This rule is included in `"plugin:svelte/recommended"`. +- :gear: This rule is included in `"plugin:svelte/recommended"` configuration. ## :book: Rule Details diff --git a/docs/rules/system.md b/docs/rules/system.md index 19bd3b2a3..049add27a 100644 --- a/docs/rules/system.md +++ b/docs/rules/system.md @@ -10,7 +10,7 @@ since: 'v0.0.13' > system rule for working this plugin -- :gear: This rule is included in `"plugin:svelte/base"` and `"plugin:svelte/recommended"`. +- :gear: This rule is included in `"plugin:svelte/base"` configuration. ## :book: Rule Details diff --git a/docs/rules/valid-compile.md b/docs/rules/valid-compile.md index 0051a70c4..88ceb1f1c 100644 --- a/docs/rules/valid-compile.md +++ b/docs/rules/valid-compile.md @@ -10,7 +10,7 @@ since: 'v0.7.0' > disallow warnings when compiling. -- :gear: This rule is included in `"plugin:svelte/recommended"`. +- :gear: This rule is included in `"plugin:svelte/recommended"` configuration. ## :book: Rule Details diff --git a/packages/eslint-plugin-svelte/package.json b/packages/eslint-plugin-svelte/package.json index 047cc2ee1..865c25790 100644 --- a/packages/eslint-plugin-svelte/package.json +++ b/packages/eslint-plugin-svelte/package.json @@ -79,7 +79,7 @@ "@types/json-schema": "^7.0.15", "@types/less": "^3.0.7", "@types/mocha": "^10.0.10", - "@types/node": "^22.10.0", + "@types/node": "^22.10.2", "@types/postcss-safe-parser": "^5.0.4", "@types/semver": "^7.5.8", "@types/stylus": "^0.48.43", @@ -91,12 +91,12 @@ "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "less": "^4.2.1", - "mocha": "^11.0.0", + "mocha": "^11.0.1", "postcss-nested": "^7.0.2", - "sass": "^1.81.0", + "sass": "^1.83.0", "source-map-js": "^1.2.1", "stylus": "^0.64.0", - "svelte": "^5.2.9", + "svelte": "^5.12.0", "svelte-i18n": "^4.0.1", "tsx": "^4.19.2", "type-coverage": "^2.29.7", diff --git a/packages/eslint-plugin-svelte/src/configs/flat/recommended.ts b/packages/eslint-plugin-svelte/src/configs/flat/recommended.ts index 5e3110e24..c815988e5 100644 --- a/packages/eslint-plugin-svelte/src/configs/flat/recommended.ts +++ b/packages/eslint-plugin-svelte/src/configs/flat/recommended.ts @@ -9,7 +9,6 @@ const config: Linter.Config[] = [ name: 'svelte:recommended:rules', rules: { // eslint-plugin-svelte rules - 'svelte/comment-directive': 'error', 'svelte/no-at-debug-tags': 'warn', 'svelte/no-at-html-tags': 'error', 'svelte/no-dupe-else-if-blocks': 'error', @@ -21,7 +20,6 @@ const config: Linter.Config[] = [ 'svelte/no-shorthand-style-property-overrides': 'error', 'svelte/no-unknown-style-directive-property': 'error', 'svelte/no-unused-svelte-ignore': 'error', - 'svelte/system': 'error', 'svelte/valid-compile': 'error' } } diff --git a/packages/eslint-plugin-svelte/src/rules/@typescript-eslint/no-unnecessary-condition.ts b/packages/eslint-plugin-svelte/src/rules/@typescript-eslint/no-unnecessary-condition.ts index ff7c6b475..491c23f5c 100644 --- a/packages/eslint-plugin-svelte/src/rules/@typescript-eslint/no-unnecessary-condition.ts +++ b/packages/eslint-plugin-svelte/src/rules/@typescript-eslint/no-unnecessary-condition.ts @@ -95,7 +95,7 @@ export default createRule('@typescript-eslint/no-unnecessary-condition', { docs: { description: 'disallow conditionals where the type is always truthy or always falsy', category: 'Extension Rules', - recommended: false, + configNames: [], extensionRule: { plugin: '@typescript-eslint/eslint-plugin', url: 'https://typescript-eslint.io/rules/no-unnecessary-condition/' diff --git a/packages/eslint-plugin-svelte/src/rules/block-lang.ts b/packages/eslint-plugin-svelte/src/rules/block-lang.ts index 67b32ff84..985826d08 100644 --- a/packages/eslint-plugin-svelte/src/rules/block-lang.ts +++ b/packages/eslint-plugin-svelte/src/rules/block-lang.ts @@ -9,7 +9,7 @@ export default createRule('block-lang', { description: 'disallows the use of languages other than those specified in the configuration for the lang attribute of ` -