diff --git a/.changeset/slimy-donkeys-pump.md b/.changeset/slimy-donkeys-pump.md new file mode 100644 index 000000000..c516398d2 --- /dev/null +++ b/.changeset/slimy-donkeys-pump.md @@ -0,0 +1,5 @@ +--- +"eslint-plugin-svelte": minor +--- + +feat: added the `svelte/block-lang` rule diff --git a/README.md b/README.md index 4ae387077..2cb25d651 100644 --- a/README.md +++ b/README.md @@ -330,6 +330,7 @@ These rules relate to better ways of doing things to help you avoid problems: | Rule ID | Description | | |:--------|:------------|:---| +| [svelte/block-lang](https://ota-meshi.github.io/eslint-plugin-svelte/rules/block-lang/) | disallows the use of languages other than those specified in the configuration for the lang attribute of ` +``` + + + + + + + +```svelte + + + + +``` + + + + + + + +```svelte + + +``` + + + +## :wrench: Options + +```json +{ + "svelte/block-lang": [ + "error", + { + "enforceScriptPresent": true, + "enforceStylePresent": false, + "script": ["ts", null], // a list of languages or null to signify no language specified + "style": "scss" // same as for script, a single value can be used instead of an array. + } + ] +} +``` + +- `enforceScriptPresent` ... Whether to enforce the presence of a ` + + diff --git a/tests/fixtures/rules/block-lang/invalid/script/javascript/js01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/javascript/js01-errors.yaml new file mode 100644 index 000000000..f660dd594 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/javascript/js01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/javascript/null01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/javascript/null01-errors.yaml new file mode 100644 index 000000000..f660dd594 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/javascript/null01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/javascript/ts01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/javascript/ts01-errors.yaml new file mode 100644 index 000000000..f660dd594 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/javascript/ts01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/javascript/typescript01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/javascript/typescript01-errors.yaml new file mode 100644 index 000000000..f660dd594 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/javascript/typescript01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/js/_config.json b/tests/fixtures/rules/block-lang/invalid/script/js/_config.json new file mode 100644 index 000000000..5390733e0 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/js/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": ["js"], "style": ["js", null] }] +} diff --git a/tests/fixtures/rules/block-lang/invalid/script/js/javascript01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/js/javascript01-errors.yaml new file mode 100644 index 000000000..c49ef5c85 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/js/javascript01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/js/js-as-style-lang01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/js/js-as-style-lang01-errors.yaml new file mode 100644 index 000000000..c49ef5c85 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/js/js-as-style-lang01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the + + diff --git a/tests/fixtures/rules/block-lang/invalid/script/js/null01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/js/null01-errors.yaml new file mode 100644 index 000000000..c49ef5c85 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/js/null01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/js/ts01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/js/ts01-errors.yaml new file mode 100644 index 000000000..c49ef5c85 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/js/ts01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/js/typescript01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/js/typescript01-errors.yaml new file mode 100644 index 000000000..c49ef5c85 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/js/typescript01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/multiple/_config.json b/tests/fixtures/rules/block-lang/invalid/script/multiple/_config.json new file mode 100644 index 000000000..2d369c1af --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/multiple/_config.json @@ -0,0 +1,8 @@ +{ + "options": [ + { + "script": ["ts", "typescript", null], + "style": ["ts", "typescript", null] + } + ] +} diff --git a/tests/fixtures/rules/block-lang/invalid/script/multiple/javascript01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/multiple/javascript01-errors.yaml new file mode 100644 index 000000000..90ac8a74e --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/multiple/javascript01-errors.yaml @@ -0,0 +1,5 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/multiple/js01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/multiple/js01-errors.yaml new file mode 100644 index 000000000..90ac8a74e --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/multiple/js01-errors.yaml @@ -0,0 +1,5 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/multiple/null-as-style-lang01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/multiple/null-as-style-lang01-errors.yaml new file mode 100644 index 000000000..90ac8a74e --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/multiple/null-as-style-lang01-errors.yaml @@ -0,0 +1,5 @@ +- message: The lang attribute of the + + diff --git a/tests/fixtures/rules/block-lang/invalid/script/multiple/ts-as-style-lang01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/multiple/ts-as-style-lang01-errors.yaml new file mode 100644 index 000000000..90ac8a74e --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/multiple/ts-as-style-lang01-errors.yaml @@ -0,0 +1,5 @@ +- message: The lang attribute of the + + diff --git a/tests/fixtures/rules/block-lang/invalid/script/multiple/typescript-as-style-lang01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/multiple/typescript-as-style-lang01-errors.yaml new file mode 100644 index 000000000..90ac8a74e --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/multiple/typescript-as-style-lang01-errors.yaml @@ -0,0 +1,5 @@ +- message: The lang attribute of the + + diff --git a/tests/fixtures/rules/block-lang/invalid/script/null/_config.json b/tests/fixtures/rules/block-lang/invalid/script/null/_config.json new file mode 100644 index 000000000..8725dee1c --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/null/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": [null] }] +} diff --git a/tests/fixtures/rules/block-lang/invalid/script/null/javascript01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/null/javascript01-errors.yaml new file mode 100644 index 000000000..b2d700cdf --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/null/javascript01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/null/js01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/null/js01-errors.yaml new file mode 100644 index 000000000..b2d700cdf --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/null/js01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/null/null-as-style-lang01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/null/null-as-style-lang01-errors.yaml new file mode 100644 index 000000000..b2d700cdf --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/null/null-as-style-lang01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the + + diff --git a/tests/fixtures/rules/block-lang/invalid/script/null/ts01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/null/ts01-errors.yaml new file mode 100644 index 000000000..b2d700cdf --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/null/ts01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/null/typescript01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/null/typescript01-errors.yaml new file mode 100644 index 000000000..b2d700cdf --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/null/typescript01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/shorthand/_config.json b/tests/fixtures/rules/block-lang/invalid/script/shorthand/_config.json new file mode 100644 index 000000000..d17bbc3da --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/shorthand/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": "ts", "style": ["ts", null] }] +} diff --git a/tests/fixtures/rules/block-lang/invalid/script/shorthand/javascript01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/shorthand/javascript01-errors.yaml new file mode 100644 index 000000000..b42a142cf --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/shorthand/javascript01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/shorthand/js01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/shorthand/js01-errors.yaml new file mode 100644 index 000000000..b42a142cf --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/shorthand/js01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/shorthand/null01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/shorthand/null01-errors.yaml new file mode 100644 index 000000000..b42a142cf --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/shorthand/null01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/shorthand/ts-as-style-lang01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/shorthand/ts-as-style-lang01-errors.yaml new file mode 100644 index 000000000..b42a142cf --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/shorthand/ts-as-style-lang01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the + + diff --git a/tests/fixtures/rules/block-lang/invalid/script/shorthand/typescript01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/shorthand/typescript01-errors.yaml new file mode 100644 index 000000000..b42a142cf --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/shorthand/typescript01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/ts/_config.json b/tests/fixtures/rules/block-lang/invalid/script/ts/_config.json new file mode 100644 index 000000000..1e4c8d24c --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/ts/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": ["ts"], "style": ["ts", null] }] +} diff --git a/tests/fixtures/rules/block-lang/invalid/script/ts/javascript01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/ts/javascript01-errors.yaml new file mode 100644 index 000000000..b42a142cf --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/ts/javascript01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/ts/js01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/ts/js01-errors.yaml new file mode 100644 index 000000000..b42a142cf --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/ts/js01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/ts/null01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/ts/null01-errors.yaml new file mode 100644 index 000000000..b42a142cf --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/ts/null01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/ts/ts-as-style-lang01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/ts/ts-as-style-lang01-errors.yaml new file mode 100644 index 000000000..b42a142cf --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/ts/ts-as-style-lang01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the + + diff --git a/tests/fixtures/rules/block-lang/invalid/script/ts/typescript01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/ts/typescript01-errors.yaml new file mode 100644 index 000000000..b42a142cf --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/ts/typescript01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/typescript/_config.json b/tests/fixtures/rules/block-lang/invalid/script/typescript/_config.json new file mode 100644 index 000000000..2c7f534ab --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/typescript/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": ["typescript"], "style": ["typescript", null] }] +} diff --git a/tests/fixtures/rules/block-lang/invalid/script/typescript/javascript01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/typescript/javascript01-errors.yaml new file mode 100644 index 000000000..a16e8f39a --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/typescript/javascript01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/typescript/js01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/typescript/js01-errors.yaml new file mode 100644 index 000000000..a16e8f39a --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/typescript/js01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/typescript/null01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/typescript/null01-errors.yaml new file mode 100644 index 000000000..a16e8f39a --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/typescript/null01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/typescript/ts01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/typescript/ts01-errors.yaml new file mode 100644 index 000000000..a16e8f39a --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/typescript/ts01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/script/typescript/typescript-as-style-lang01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/script/typescript/typescript-as-style-lang01-errors.yaml new file mode 100644 index 000000000..a16e8f39a --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/script/typescript/typescript-as-style-lang01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the + + diff --git a/tests/fixtures/rules/block-lang/invalid/style/enforce/_config.json b/tests/fixtures/rules/block-lang/invalid/style/enforce/_config.json new file mode 100644 index 000000000..cee6050d5 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/style/enforce/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "enforceStylePresent": true }] +} diff --git a/tests/fixtures/rules/block-lang/invalid/style/enforce/no-style01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/style/enforce/no-style01-errors.yaml new file mode 100644 index 000000000..68033f635 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/style/enforce/no-style01-errors.yaml @@ -0,0 +1,4 @@ +- message: The diff --git a/tests/fixtures/rules/block-lang/invalid/style/null/sass01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/style/null/sass01-errors.yaml new file mode 100644 index 000000000..3685a4a45 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/style/null/sass01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/style/null/scss01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/style/null/scss01-errors.yaml new file mode 100644 index 000000000..3685a4a45 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/style/null/scss01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/style/sass/_config.json b/tests/fixtures/rules/block-lang/invalid/style/sass/_config.json new file mode 100644 index 000000000..34b5b4cf6 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/style/sass/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": ["sass", null], "style": ["sass"] }] +} diff --git a/tests/fixtures/rules/block-lang/invalid/style/sass/null01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/style/sass/null01-errors.yaml new file mode 100644 index 000000000..9eec70357 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/style/sass/null01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/style/sass/sass-as-script-lang01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/style/sass/sass-as-script-lang01-errors.yaml new file mode 100644 index 000000000..3cd86cbd2 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/style/sass/sass-as-script-lang01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/style/sass/scss01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/style/sass/scss01-errors.yaml new file mode 100644 index 000000000..9eec70357 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/style/sass/scss01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/style/scss/_config.json b/tests/fixtures/rules/block-lang/invalid/style/scss/_config.json new file mode 100644 index 000000000..d62a21060 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/style/scss/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": ["scss", null], "style": ["scss"] }] +} diff --git a/tests/fixtures/rules/block-lang/invalid/style/scss/null01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/style/scss/null01-errors.yaml new file mode 100644 index 000000000..7663cab19 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/style/scss/null01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/style/scss/sass01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/style/scss/sass01-errors.yaml new file mode 100644 index 000000000..7663cab19 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/style/scss/sass01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/invalid/style/scss/scss-as-script-lang01-errors.yaml b/tests/fixtures/rules/block-lang/invalid/style/scss/scss-as-script-lang01-errors.yaml new file mode 100644 index 000000000..748d36368 --- /dev/null +++ b/tests/fixtures/rules/block-lang/invalid/style/scss/scss-as-script-lang01-errors.yaml @@ -0,0 +1,4 @@ +- message: The lang attribute of the diff --git a/tests/fixtures/rules/block-lang/valid/script/enforce/_config.json b/tests/fixtures/rules/block-lang/valid/script/enforce/_config.json new file mode 100644 index 000000000..8a49d9a86 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/enforce/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "enforceScriptPresent": true }] +} diff --git a/tests/fixtures/rules/block-lang/valid/script/enforce/script-present01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/enforce/script-present01-input.svelte new file mode 100644 index 000000000..5d2a3a05b --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/enforce/script-present01-input.svelte @@ -0,0 +1 @@ + diff --git a/tests/fixtures/rules/block-lang/valid/script/javascript/_config.json b/tests/fixtures/rules/block-lang/valid/script/javascript/_config.json new file mode 100644 index 000000000..d3821a72b --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/javascript/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": ["javascript"], "style": ["scss", null] }] +} diff --git a/tests/fixtures/rules/block-lang/valid/script/javascript/correct-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/javascript/correct-lang01-input.svelte new file mode 100644 index 000000000..9cd8f894c --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/javascript/correct-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/javascript/no-script01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/javascript/no-script01-input.svelte new file mode 100644 index 000000000..8a73be9fa --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/javascript/no-script01-input.svelte @@ -0,0 +1 @@ +Hello World! diff --git a/tests/fixtures/rules/block-lang/valid/script/javascript/style-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/javascript/style-lang01-input.svelte new file mode 100644 index 000000000..8d0654b10 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/javascript/style-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/js/_config.json b/tests/fixtures/rules/block-lang/valid/script/js/_config.json new file mode 100644 index 000000000..a74c6fc72 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/js/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": ["js"], "style": ["scss", null] }] +} diff --git a/tests/fixtures/rules/block-lang/valid/script/js/correct-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/js/correct-lang01-input.svelte new file mode 100644 index 000000000..2c9136f49 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/js/correct-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/js/no-script01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/js/no-script01-input.svelte new file mode 100644 index 000000000..8a73be9fa --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/js/no-script01-input.svelte @@ -0,0 +1 @@ +Hello World! diff --git a/tests/fixtures/rules/block-lang/valid/script/js/style-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/js/style-lang01-input.svelte new file mode 100644 index 000000000..78191fcf3 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/js/style-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/multiple/_config.json b/tests/fixtures/rules/block-lang/valid/script/multiple/_config.json new file mode 100644 index 000000000..8a367b319 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/multiple/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": ["ts"], "style": ["scss", null] }] +} diff --git a/tests/fixtures/rules/block-lang/valid/script/multiple/correct-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/multiple/correct-lang01-input.svelte new file mode 100644 index 000000000..4bcdbdb9b --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/multiple/correct-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/multiple/no-script01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/multiple/no-script01-input.svelte new file mode 100644 index 000000000..8a73be9fa --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/multiple/no-script01-input.svelte @@ -0,0 +1 @@ +Hello World! diff --git a/tests/fixtures/rules/block-lang/valid/script/multiple/style-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/multiple/style-lang01-input.svelte new file mode 100644 index 000000000..b995c06ab --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/multiple/style-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/null/_config.json b/tests/fixtures/rules/block-lang/valid/script/null/_config.json new file mode 100644 index 000000000..14768e256 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/null/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": [null], "style": ["scss", null] }] +} diff --git a/tests/fixtures/rules/block-lang/valid/script/null/no-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/null/no-lang01-input.svelte new file mode 100644 index 000000000..fda97fce1 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/null/no-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/null/no-script01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/null/no-script01-input.svelte new file mode 100644 index 000000000..8a73be9fa --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/null/no-script01-input.svelte @@ -0,0 +1 @@ +Hello World! diff --git a/tests/fixtures/rules/block-lang/valid/script/null/style-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/null/style-lang01-input.svelte new file mode 100644 index 000000000..9c1c647da --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/null/style-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/shorthand/_config.json b/tests/fixtures/rules/block-lang/valid/script/shorthand/_config.json new file mode 100644 index 000000000..0532deae6 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/shorthand/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": "ts", "style": ["scss", null] }] +} diff --git a/tests/fixtures/rules/block-lang/valid/script/shorthand/correct-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/shorthand/correct-lang01-input.svelte new file mode 100644 index 000000000..4bcdbdb9b --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/shorthand/correct-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/shorthand/no-script01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/shorthand/no-script01-input.svelte new file mode 100644 index 000000000..8a73be9fa --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/shorthand/no-script01-input.svelte @@ -0,0 +1 @@ +Hello World! diff --git a/tests/fixtures/rules/block-lang/valid/script/shorthand/style-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/shorthand/style-lang01-input.svelte new file mode 100644 index 000000000..b995c06ab --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/shorthand/style-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/ts/_config.json b/tests/fixtures/rules/block-lang/valid/script/ts/_config.json new file mode 100644 index 000000000..476786668 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/ts/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": ["ts", "typescript", null], "style": ["scss", null] }] +} diff --git a/tests/fixtures/rules/block-lang/valid/script/ts/correct-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/ts/correct-lang01-input.svelte new file mode 100644 index 000000000..4bcdbdb9b --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/ts/correct-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/ts/correct-lang02-input.svelte b/tests/fixtures/rules/block-lang/valid/script/ts/correct-lang02-input.svelte new file mode 100644 index 000000000..091a3f97a --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/ts/correct-lang02-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/ts/correct-lang03-input.svelte b/tests/fixtures/rules/block-lang/valid/script/ts/correct-lang03-input.svelte new file mode 100644 index 000000000..fda97fce1 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/ts/correct-lang03-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/ts/no-script01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/ts/no-script01-input.svelte new file mode 100644 index 000000000..8a73be9fa --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/ts/no-script01-input.svelte @@ -0,0 +1 @@ +Hello World! diff --git a/tests/fixtures/rules/block-lang/valid/script/ts/style-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/ts/style-lang01-input.svelte new file mode 100644 index 000000000..b995c06ab --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/ts/style-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/ts/style-lang02-input.svelte b/tests/fixtures/rules/block-lang/valid/script/ts/style-lang02-input.svelte new file mode 100644 index 000000000..ffd69ac3b --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/ts/style-lang02-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/ts/style-lang03-input.svelte b/tests/fixtures/rules/block-lang/valid/script/ts/style-lang03-input.svelte new file mode 100644 index 000000000..9c1c647da --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/ts/style-lang03-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/typescript/_config.json b/tests/fixtures/rules/block-lang/valid/script/typescript/_config.json new file mode 100644 index 000000000..f5c283dde --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/typescript/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": ["typescript"], "style": ["scss", null] }] +} diff --git a/tests/fixtures/rules/block-lang/valid/script/typescript/correct-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/typescript/correct-lang01-input.svelte new file mode 100644 index 000000000..091a3f97a --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/typescript/correct-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/script/typescript/no-script01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/typescript/no-script01-input.svelte new file mode 100644 index 000000000..8a73be9fa --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/typescript/no-script01-input.svelte @@ -0,0 +1 @@ +Hello World! diff --git a/tests/fixtures/rules/block-lang/valid/script/typescript/style-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/script/typescript/style-lang01-input.svelte new file mode 100644 index 000000000..ffd69ac3b --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/script/typescript/style-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/style/enforce/_config.json b/tests/fixtures/rules/block-lang/valid/style/enforce/_config.json new file mode 100644 index 000000000..cee6050d5 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/style/enforce/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "enforceStylePresent": true }] +} diff --git a/tests/fixtures/rules/block-lang/valid/style/enforce/style-present01-input.svelte b/tests/fixtures/rules/block-lang/valid/style/enforce/style-present01-input.svelte new file mode 100644 index 000000000..6f29e9e9f --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/style/enforce/style-present01-input.svelte @@ -0,0 +1 @@ + diff --git a/tests/fixtures/rules/block-lang/valid/style/null/_config.json b/tests/fixtures/rules/block-lang/valid/style/null/_config.json new file mode 100644 index 000000000..d59d17654 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/style/null/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": ["js", null], "style": [null] }] +} diff --git a/tests/fixtures/rules/block-lang/valid/style/null/no-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/style/null/no-lang01-input.svelte new file mode 100644 index 000000000..fda97fce1 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/style/null/no-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/style/null/no-style01-input.svelte b/tests/fixtures/rules/block-lang/valid/style/null/no-style01-input.svelte new file mode 100644 index 000000000..8a73be9fa --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/style/null/no-style01-input.svelte @@ -0,0 +1 @@ +Hello World! diff --git a/tests/fixtures/rules/block-lang/valid/style/null/script-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/style/null/script-lang01-input.svelte new file mode 100644 index 000000000..2c9136f49 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/style/null/script-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/style/sass/_config.json b/tests/fixtures/rules/block-lang/valid/style/sass/_config.json new file mode 100644 index 000000000..4f1f5a75d --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/style/sass/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": ["ts", null], "style": ["sass"] }] +} diff --git a/tests/fixtures/rules/block-lang/valid/style/sass/correct-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/style/sass/correct-lang01-input.svelte new file mode 100644 index 000000000..d64de58f5 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/style/sass/correct-lang01-input.svelte @@ -0,0 +1,5 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/style/sass/no-style01-input.svelte b/tests/fixtures/rules/block-lang/valid/style/sass/no-style01-input.svelte new file mode 100644 index 000000000..8a73be9fa --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/style/sass/no-style01-input.svelte @@ -0,0 +1 @@ +Hello World! diff --git a/tests/fixtures/rules/block-lang/valid/style/sass/script-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/style/sass/script-lang01-input.svelte new file mode 100644 index 000000000..25a97b328 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/style/sass/script-lang01-input.svelte @@ -0,0 +1,5 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/style/scss/_config.json b/tests/fixtures/rules/block-lang/valid/style/scss/_config.json new file mode 100644 index 000000000..6c2d7f657 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/style/scss/_config.json @@ -0,0 +1,3 @@ +{ + "options": [{ "script": ["js", null], "style": ["scss"] }] +} diff --git a/tests/fixtures/rules/block-lang/valid/style/scss/correct-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/style/scss/correct-lang01-input.svelte new file mode 100644 index 000000000..9c1c647da --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/style/scss/correct-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/fixtures/rules/block-lang/valid/style/scss/no-style01-input.svelte b/tests/fixtures/rules/block-lang/valid/style/scss/no-style01-input.svelte new file mode 100644 index 000000000..8a73be9fa --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/style/scss/no-style01-input.svelte @@ -0,0 +1 @@ +Hello World! diff --git a/tests/fixtures/rules/block-lang/valid/style/scss/script-lang01-input.svelte b/tests/fixtures/rules/block-lang/valid/style/scss/script-lang01-input.svelte new file mode 100644 index 000000000..78191fcf3 --- /dev/null +++ b/tests/fixtures/rules/block-lang/valid/style/scss/script-lang01-input.svelte @@ -0,0 +1,3 @@ + + + diff --git a/tests/src/rules/block-lang.ts b/tests/src/rules/block-lang.ts new file mode 100644 index 000000000..4453576e1 --- /dev/null +++ b/tests/src/rules/block-lang.ts @@ -0,0 +1,12 @@ +import { RuleTester } from "eslint" +import rule from "../../../src/rules/block-lang" +import { loadTestCases } from "../../utils/utils" + +const tester = new RuleTester({ + parserOptions: { + ecmaVersion: 2020, + sourceType: "module", + }, +}) + +tester.run("block-lang", rule as any, loadTestCases("block-lang"))