File tree Expand file tree Collapse file tree 6 files changed +39
-0
lines changed
packages/eslint-plugin-svelte/src Expand file tree Collapse file tree 6 files changed +39
-0
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ ' eslint-plugin-svelte ' : minor
3+ ---
4+
5+ feat: added the no-useless-children-snippet rule
Original file line number Diff line number Diff line change @@ -426,6 +426,7 @@ These rules relate to better ways of doing things to help you avoid problems:
426426| [ svelte/no-svelte-internal] ( https://sveltejs.github.io/eslint-plugin-svelte/rules/no-svelte-internal/ ) | svelte/internal will be removed in Svelte 6. | |
427427| [ svelte/no-unused-class-name] ( https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unused-class-name/ ) | disallow the use of a class in the template without a corresponding style | |
428428| [ svelte/no-unused-svelte-ignore] ( https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unused-svelte-ignore/ ) | disallow unused svelte-ignore comments | :star : |
429+ | [ svelte/no-useless-children-snippet] ( https://sveltejs.github.io/eslint-plugin-svelte/rules/no-useless-children-snippet/ ) | disallow explicit children snippet where it's not needed | |
429430| [ svelte/no-useless-mustaches] ( https://sveltejs.github.io/eslint-plugin-svelte/rules/no-useless-mustaches/ ) | disallow unnecessary mustache interpolations | :wrench : |
430431| [ svelte/prefer-destructured-store-props] ( https://sveltejs.github.io/eslint-plugin-svelte/rules/prefer-destructured-store-props/ ) | destructure values from object stores for better change tracking & fewer redraws | :bulb : |
431432| [ svelte/require-each-key] ( https://sveltejs.github.io/eslint-plugin-svelte/rules/require-each-key/ ) | require keyed ` {#each} ` block | |
Original file line number Diff line number Diff line change @@ -63,6 +63,7 @@ These rules relate to better ways of doing things to help you avoid problems:
6363| [ svelte/no-svelte-internal] ( ./rules/no-svelte-internal.md ) | svelte/internal will be removed in Svelte 6. | |
6464| [ svelte/no-unused-class-name] ( ./rules/no-unused-class-name.md ) | disallow the use of a class in the template without a corresponding style | |
6565| [ svelte/no-unused-svelte-ignore] ( ./rules/no-unused-svelte-ignore.md ) | disallow unused svelte-ignore comments | :star : |
66+ | [ svelte/no-useless-children-snippet] ( ./rules/no-useless-children-snippet.md ) | disallow explicit children snippet where it's not needed | |
6667| [ svelte/no-useless-mustaches] ( ./rules/no-useless-mustaches.md ) | disallow unnecessary mustache interpolations | :wrench : |
6768| [ svelte/prefer-destructured-store-props] ( ./rules/prefer-destructured-store-props.md ) | destructure values from object stores for better change tracking & fewer redraws | :bulb : |
6869| [ svelte/require-each-key] ( ./rules/require-each-key.md ) | require keyed ` {#each} ` block | |
Original file line number Diff line number Diff line change @@ -254,6 +254,11 @@ export interface RuleOptions {
254254 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unused-svelte-ignore/
255255 */
256256 'svelte/no-unused-svelte-ignore' ?: Linter . RuleEntry < [ ] >
257+ /**
258+ * disallow explicit children snippet where it's not needed
259+ * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-useless-children-snippet/
260+ */
261+ 'svelte/no-useless-children-snippet' ?: Linter . RuleEntry < [ ] >
257262 /**
258263 * disallow unnecessary mustache interpolations
259264 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-useless-mustaches/
Original file line number Diff line number Diff line change 1+ import { createRule } from '../utils' ;
2+
3+ export default createRule ( 'no-useless-children-snippet' , {
4+ meta : {
5+ docs : {
6+ description : "disallow explicit children snippet where it's not needed" ,
7+ category : 'Best Practices' ,
8+ recommended : false
9+ } ,
10+ schema : [ ] ,
11+ messages : {
12+ uselessSnippet : 'Found an unnecessary children snippet.'
13+ } ,
14+ type : 'suggestion'
15+ } ,
16+ create ( context ) {
17+ return {
18+ SvelteSnippetBlock ( node ) {
19+ if ( node . id . name === 'children' && node . params . length === 0 ) {
20+ context . report ( { node, messageId : 'uselessSnippet' } ) ;
21+ }
22+ }
23+ } ;
24+ }
25+ } ) ;
Original file line number Diff line number Diff line change @@ -50,6 +50,7 @@ import noTrailingSpaces from '../rules/no-trailing-spaces';
5050import noUnknownStyleDirectiveProperty from '../rules/no-unknown-style-directive-property' ;
5151import noUnusedClassName from '../rules/no-unused-class-name' ;
5252import noUnusedSvelteIgnore from '../rules/no-unused-svelte-ignore' ;
53+ import noUselessChildrenSnippet from '../rules/no-useless-children-snippet' ;
5354import noUselessMustaches from '../rules/no-useless-mustaches' ;
5455import preferClassDirective from '../rules/prefer-class-directive' ;
5556import preferDestructuredStoreProps from '../rules/prefer-destructured-store-props' ;
@@ -118,6 +119,7 @@ export const rules = [
118119 noUnknownStyleDirectiveProperty ,
119120 noUnusedClassName ,
120121 noUnusedSvelteIgnore ,
122+ noUselessChildrenSnippet ,
121123 noUselessMustaches ,
122124 preferClassDirective ,
123125 preferDestructuredStoreProps ,
You can’t perform that action at this time.
0 commit comments