diff --git a/.changeset/khaki-brooms-notice.md b/.changeset/khaki-brooms-notice.md new file mode 100644 index 000000000000..2f8e079400c4 --- /dev/null +++ b/.changeset/khaki-brooms-notice.md @@ -0,0 +1,5 @@ +--- +'create-svelte': patch +--- + +add ESLint configuration for mixed JS/TS codebase diff --git a/packages/create-svelte/shared/+eslint+prettier+typescript/.eslintrc.cjs b/packages/create-svelte/shared/+eslint+prettier+typescript/.eslintrc.cjs index 3ccf435f02ce..338c24624c1f 100644 --- a/packages/create-svelte/shared/+eslint+prettier+typescript/.eslintrc.cjs +++ b/packages/create-svelte/shared/+eslint+prettier+typescript/.eslintrc.cjs @@ -4,7 +4,15 @@ module.exports = { extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended', 'prettier'], plugins: ['svelte3', '@typescript-eslint'], ignorePatterns: ['*.cjs'], - overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }], + overrides: [ + { files: ['*.svelte'], processor: 'svelte3/svelte3' }, + { + files: ['*.ts'], + rules: { + '@typescript-eslint/explicit-module-boundary-types': ['warn'] + } + } + ], settings: { 'svelte3/typescript': () => require('typescript') }, @@ -16,5 +24,8 @@ module.exports = { browser: true, es2017: true, node: true + }, + rules: { + '@typescript-eslint/explicit-module-boundary-types': 'off' } }; diff --git a/packages/create-svelte/shared/+eslint+typescript/.eslintrc.cjs b/packages/create-svelte/shared/+eslint+typescript/.eslintrc.cjs index 13b64140373e..4b440dc33a0c 100644 --- a/packages/create-svelte/shared/+eslint+typescript/.eslintrc.cjs +++ b/packages/create-svelte/shared/+eslint+typescript/.eslintrc.cjs @@ -4,7 +4,15 @@ module.exports = { extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'], plugins: ['svelte3', '@typescript-eslint'], ignorePatterns: ['*.cjs'], - overrides: [{ files: ['*.svelte'], processor: 'svelte3/svelte3' }], + overrides: [ + { files: ['*.svelte'], processor: 'svelte3/svelte3' }, + { + files: ['*.ts'], + rules: { + '@typescript-eslint/explicit-module-boundary-types': ['warn'] + } + } + ], settings: { 'svelte3/typescript': () => require('typescript') }, @@ -16,5 +24,8 @@ module.exports = { browser: true, es2017: true, node: true + }, + rules: { + '@typescript-eslint/explicit-module-boundary-types': 'off' } };