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 @@ -425,6 +425,7 @@ These rules relate to better ways of doing things to help you avoid problems:
425425| [ svelte/no-svelte-internal] ( https://sveltejs.github.io/eslint-plugin-svelte/rules/no-svelte-internal/ ) | svelte/internal will be removed in Svelte 6. | |
426426| [ 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 | |
427427| [ svelte/no-unused-svelte-ignore] ( https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unused-svelte-ignore/ ) | disallow unused svelte-ignore comments | :star : |
428+ | [ 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 | |
428429| [ svelte/no-useless-mustaches] ( https://sveltejs.github.io/eslint-plugin-svelte/rules/no-useless-mustaches/ ) | disallow unnecessary mustache interpolations | :wrench : |
429430| [ 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 : |
430431| [ 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 @@ -62,6 +62,7 @@ These rules relate to better ways of doing things to help you avoid problems:
6262| [ svelte/no-svelte-internal] ( ./rules/no-svelte-internal.md ) | svelte/internal will be removed in Svelte 6. | |
6363| [ svelte/no-unused-class-name] ( ./rules/no-unused-class-name.md ) | disallow the use of a class in the template without a corresponding style | |
6464| [ svelte/no-unused-svelte-ignore] ( ./rules/no-unused-svelte-ignore.md ) | disallow unused svelte-ignore comments | :star : |
65+ | [ svelte/no-useless-children-snippet] ( ./rules/no-useless-children-snippet.md ) | disallow explicit children snippet where it's not needed | |
6566| [ svelte/no-useless-mustaches] ( ./rules/no-useless-mustaches.md ) | disallow unnecessary mustache interpolations | :wrench : |
6667| [ svelte/prefer-destructured-store-props] ( ./rules/prefer-destructured-store-props.md ) | destructure values from object stores for better change tracking & fewer redraws | :bulb : |
6768| [ svelte/require-each-key] ( ./rules/require-each-key.md ) | require keyed ` {#each} ` block | |
Original file line number Diff line number Diff line change @@ -249,6 +249,11 @@ export interface RuleOptions {
249249 * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-unused-svelte-ignore/
250250 */
251251 'svelte/no-unused-svelte-ignore' ?: Linter . RuleEntry < [ ] >
252+ /**
253+ * disallow explicit children snippet where it's not needed
254+ * @see https://sveltejs.github.io/eslint-plugin-svelte/rules/no-useless-children-snippet/
255+ */
256+ 'svelte/no-useless-children-snippet' ?: Linter . RuleEntry < [ ] >
252257 /**
253258 * disallow unnecessary mustache interpolations
254259 * @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 @@ -49,6 +49,7 @@ import noTrailingSpaces from '../rules/no-trailing-spaces';
4949import noUnknownStyleDirectiveProperty from '../rules/no-unknown-style-directive-property' ;
5050import noUnusedClassName from '../rules/no-unused-class-name' ;
5151import noUnusedSvelteIgnore from '../rules/no-unused-svelte-ignore' ;
52+ import noUselessChildrenSnippet from '../rules/no-useless-children-snippet' ;
5253import noUselessMustaches from '../rules/no-useless-mustaches' ;
5354import preferClassDirective from '../rules/prefer-class-directive' ;
5455import preferDestructuredStoreProps from '../rules/prefer-destructured-store-props' ;
@@ -116,6 +117,7 @@ export const rules = [
116117 noUnknownStyleDirectiveProperty ,
117118 noUnusedClassName ,
118119 noUnusedSvelteIgnore ,
120+ noUselessChildrenSnippet ,
119121 noUselessMustaches ,
120122 preferClassDirective ,
121123 preferDestructuredStoreProps ,
You can’t perform that action at this time.
0 commit comments