From 0b44be4027a3350aaa9689a36195231b074f92c6 Mon Sep 17 00:00:00 2001 From: baseballyama Date: Mon, 30 Dec 2024 22:56:36 +0900 Subject: [PATCH 01/18] feat: Implement util to conditionally run lint based on Svelte version and SvelteKit routes etc. --- ...port-load-in-svelte-module-in-kit-pages.ts | 7 +- .../rules/valid-prop-names-in-kit-pages.ts | 5 +- .../src/utils/svelte-context.ts | 187 ++++++++++++++++++ .../src/utils/svelte-kit.ts | 73 ------- .../invalid/errors.yaml | 1 + .../+page.svelte} | 0 .../errors.yaml} | 0 .../test01/+page.svelte} | 0 .../test01/errors.yaml} | 0 .../{ => test01}/svelte.config.js | 0 .../+page.svelte} | 0 .../invalid/{ => test01}/_config.json | 0 .../errors.yaml} | 0 .../+page.svelte} | 0 .../{valid => invalid/test02}/_config.json | 0 .../errors.yaml} | 0 .../+page.svelte} | 0 .../valid/test01/_config.json | 13 ++ .../+page.svelte} | 0 .../valid/test02/_config.json | 13 ++ .../+page.svelte} | 0 .../valid/test03/_config.json | 13 ++ .../+page.svelte} | 0 .../valid/test04/_config.json | 13 ++ .../+page.svelte} | 0 .../valid/test05/_config.json | 13 ++ .../+page.svelte} | 0 .../valid/test06/_config.json | 13 ++ .../+page.svelte} | 0 .../valid/test07/_config.json | 13 ++ .../+page.svelte} | 0 .../valid/test08/_config.json | 13 ++ .../+page.svelte} | 0 .../valid/test09/_config.json | 13 ++ .../+page.svelte} | 0 .../valid/test10/_config.json | 13 ++ .../{+test001-input.svelte => +page.svelte} | 0 .../{+test001-errors.yaml => errors.yaml} | 0 .../{+test001-input.svelte => +page.svelte} | 0 .../{+test001-errors.yaml => errors.yaml} | 0 .../{+test001-input.svelte => +page.svelte} | 0 .../{+test001-errors.yaml => errors.yaml} | 0 ...lte5-test001-input.svelte => +page.svelte} | 0 ...velte5-test001-errors.yaml => errors.yaml} | 0 ...01-requirements.json => requirements.json} | 0 .../{+test001-input.svelte => +page.svelte} | 0 ...01-requirements.json => requirements.json} | 0 .../+page.svelte} | 0 .../valid/test-for-form/_config.json | 11 ++ .../+page.svelte} | 0 .../valid/test001/_config.json | 11 ++ .../+page.svelte} | 0 .../valid/test002/_config.json | 11 ++ .../+page.svelte} | 0 .../valid/test003/_config.json | 11 ++ .../+page.svelte} | 0 .../valid/test004/_config.json | 11 ++ .../eslint-plugin-svelte/tests/utils/utils.ts | 23 +-- .../eslint-plugin-svelte/tools/new-rule.ts | 4 +- 59 files changed, 394 insertions(+), 91 deletions(-) create mode 100644 packages/eslint-plugin-svelte/src/utils/svelte-context.ts delete mode 100644 packages/eslint-plugin-svelte/src/utils/svelte-kit.ts create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/errors.yaml rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/{+test01-input.svelte => svelte-config-from-parser-options/+page.svelte} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/{+test01-errors.yaml => svelte-config-from-parser-options/errors.yaml} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/{svelte-config-from-parser-options/+test01-input.svelte => svelte-config/test01/+page.svelte} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/{svelte-config-from-parser-options/+test01-errors.yaml => svelte-config/test01/errors.yaml} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/svelte-config/{ => test01}/svelte.config.js (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/{svelte-config/+test01-input.svelte => test01/+page.svelte} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/{ => test01}/_config.json (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/{svelte-config/+test01-errors.yaml => test01/errors.yaml} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/{+test02-input.svelte => test02/+page.svelte} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/{valid => invalid/test02}/_config.json (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/invalid/{+test02-errors.yaml => test02/errors.yaml} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/{+test01-input.svelte => test01/+page.svelte} (100%) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test01/_config.json rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/{+test02-input.svelte => test02/+page.svelte} (100%) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test02/_config.json rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/{+test03-input.svelte => test03/+page.svelte} (100%) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test03/_config.json rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/{+test04-input.svelte => test04/+page.svelte} (100%) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test04/_config.json rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/{+test05-input.svelte => test05/+page.svelte} (100%) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test05/_config.json rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/{+test06-input.svelte => test06/+page.svelte} (100%) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test06/_config.json rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/{+test07-input.svelte => test07/+page.svelte} (100%) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test07/_config.json rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/{+test08-input.svelte => test08/+page.svelte} (100%) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test08/_config.json rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/{+test09-input.svelte => test09/+page.svelte} (100%) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test09/_config.json rename packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/{+test010-input.svelte => test10/+page.svelte} (100%) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/no-export-load-in-svelte-module-in-kit-pages/valid/test10/_config.json rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/{+test001-input.svelte => +page.svelte} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/{+test001-errors.yaml => errors.yaml} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte-config-from-parser-options/{+test001-input.svelte => +page.svelte} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte-config-from-parser-options/{+test001-errors.yaml => errors.yaml} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte-config/{+test001-input.svelte => +page.svelte} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte-config/{+test001-errors.yaml => errors.yaml} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte5/{+svelte5-test001-input.svelte => +page.svelte} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte5/{+svelte5-test001-errors.yaml => errors.yaml} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/invalid/svelte5/{+svelte5-test001-requirements.json => requirements.json} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/svelte5/{+test001-input.svelte => +page.svelte} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/svelte5/{+test001-requirements.json => requirements.json} (100%) rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/{+test-for-form-input.svelte => test-for-form/+page.svelte} (100%) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test-for-form/_config.json rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/{+test001-input.svelte => test001/+page.svelte} (100%) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test001/_config.json rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/{+test002-input.svelte => test002/+page.svelte} (100%) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test002/_config.json rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/{+test003-input.svelte => test003/+page.svelte} (100%) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test003/_config.json rename packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/{+test004-input.svelte => test004/+page.svelte} (100%) create mode 100644 packages/eslint-plugin-svelte/tests/fixtures/rules/valid-prop-names-in-kit-pages/valid/test004/_config.json diff --git a/packages/eslint-plugin-svelte/src/rules/no-export-load-in-svelte-module-in-kit-pages.ts b/packages/eslint-plugin-svelte/src/rules/no-export-load-in-svelte-module-in-kit-pages.ts index 00871a9f9..faf8db71a 100644 --- a/packages/eslint-plugin-svelte/src/rules/no-export-load-in-svelte-module-in-kit-pages.ts +++ b/packages/eslint-plugin-svelte/src/rules/no-export-load-in-svelte-module-in-kit-pages.ts @@ -1,6 +1,6 @@ import type { TSESTree } from '@typescript-eslint/types'; import { createRule } from '../utils/index.js'; -import { isKitPageComponent } from '../utils/svelte-kit.js'; +import { getSvelteContext } from '../utils/svelte-context.js'; export default createRule('no-export-load-in-svelte-module-in-kit-pages', { meta: { @@ -19,9 +19,8 @@ export default createRule('no-export-load-in-svelte-module-in-kit-pages', { type: 'problem' }, create(context) { - if (!isKitPageComponent(context)) { - return {}; - } + const svelteContext = getSvelteContext(context); + if (svelteContext == null || svelteContext.svelteKitFileType == null) return {}; let isModule = false; return { //