From 66cbff33d529198bc2c0fb41fd808d23ef9f6c42 Mon Sep 17 00:00:00 2001 From: James Garbutt <43081j@users.noreply.github.com> Date: Mon, 31 Mar 2025 14:04:11 +0100 Subject: [PATCH 1/5] chore: use `context.sourceCode` instead of compat As of 3.x, we only support `8.57.1` and `>=9.0.0` of ESLint. Both of these have `context.sourceCode` available, so we should no longer need the `getSourceCode` compat helper. The helper does polyfill some missing methods but `8.57.1` seems to have all of those already. --- .../no-unnecessary-condition.ts | 3 +-- .../src/rules/block-lang.ts | 7 +++---- .../src/rules/comment-directive.ts | 4 ++-- .../src/rules/consistent-selector-style.ts | 3 +-- .../src/rules/first-attribute-linebreak.ts | 3 +-- .../rules/html-closing-bracket-new-line.ts | 3 +-- .../src/rules/html-closing-bracket-spacing.ts | 2 +- .../src/rules/html-quotes.ts | 3 +-- .../src/rules/html-self-closing.ts | 3 +-- .../src/rules/indent-helpers/index.ts | 4 ++-- .../src/rules/infinite-reactive-loop.ts | 7 +++---- .../src/rules/max-attributes-per-line.ts | 3 +-- .../src/rules/mustache-spacing.ts | 3 +-- .../src/rules/no-dupe-else-if-blocks.ts | 3 +-- .../src/rules/no-dupe-on-directives.ts | 3 +-- .../src/rules/no-dupe-use-directives.ts | 3 +-- .../src/rules/no-dynamic-slot-name.ts | 3 +-- .../src/rules/no-extra-reactive-curlies.ts | 3 +-- .../src/rules/no-goto-without-base.ts | 3 +-- .../rules/no-immutable-reactive-statements.ts | 3 +-- .../src/rules/no-navigation-without-base.ts | 3 +-- .../src/rules/no-reactive-functions.ts | 3 +-- .../src/rules/no-reactive-literals.ts | 3 +-- .../src/rules/no-reactive-reassign.ts | 3 +-- ...-spaces-around-equal-signs-in-attribute.ts | 2 +- .../src/rules/no-trailing-spaces.ts | 3 +-- .../src/rules/no-unnecessary-state-wrap.ts | 7 +++---- .../src/rules/no-unused-class-name.ts | 3 +-- .../src/rules/no-unused-svelte-ignore.ts | 3 +-- .../src/rules/no-useless-mustaches.ts | 3 +-- .../src/rules/prefer-class-directive.ts | 3 +-- .../rules/prefer-destructured-store-props.ts | 5 ++--- .../src/rules/prefer-style-directive.ts | 3 +-- .../rules/reference-helpers/svelte-store.ts | 3 +-- .../rules/require-event-dispatcher-types.ts | 3 +-- .../require-store-callbacks-use-set-param.ts | 3 +-- .../rules/require-store-reactive-access.ts | 3 +-- .../src/rules/shorthand-attribute.ts | 3 +-- .../src/rules/shorthand-directive.ts | 3 +-- .../src/rules/sort-attributes.ts | 3 +-- .../src/rules/valid-compile.ts | 3 +-- .../src/rules/valid-style-parse.ts | 4 ++-- .../extract-leading-comments.ts | 3 +-- .../svelte-compile-warns/ignore-comment.ts | 3 +-- .../src/shared/svelte-compile-warns/index.ts | 21 +++++++++---------- .../transform/typescript.ts | 3 +-- packages/eslint-plugin-svelte/src/types.ts | 2 +- .../src/utils/ast-utils.ts | 5 ++--- .../eslint-plugin-svelte/src/utils/compat.ts | 13 +----------- .../src/utils/css-utils/style-attribute.ts | 9 ++++---- .../src/utils/load-module.ts | 4 ++-- .../src/utils/svelte-context.ts | 6 +++--- .../src/utils/ts-utils/index.ts | 3 +-- 53 files changed, 79 insertions(+), 134 deletions(-) diff --git a/packages/eslint-plugin-svelte/src/rules/@typescript-eslint/no-unnecessary-condition.ts b/packages/eslint-plugin-svelte/src/rules/@typescript-eslint/no-unnecessary-condition.ts index fba1ac96d..30097faa7 100644 --- a/packages/eslint-plugin-svelte/src/rules/@typescript-eslint/no-unnecessary-condition.ts +++ b/packages/eslint-plugin-svelte/src/rules/@typescript-eslint/no-unnecessary-condition.ts @@ -22,7 +22,6 @@ import { isTupleType } from '../../utils/ts-utils/index.js'; import type { TS, TSTools } from '../../utils/ts-utils/index.js'; -import { getSourceCode } from '../../utils/compat.js'; /** * Returns all types of a union type or an array containing `type` itself if it's no union type. @@ -157,7 +156,7 @@ export default createRule('@typescript-eslint/no-unnecessary-condition', { const { service, ts } = tools; const checker = service.program.getTypeChecker(); - const sourceCode = getSourceCode(context); + const sourceCode = context.sourceCode; const compilerOptions = service.program.getCompilerOptions(); const isStrictNullChecks = compilerOptions.strict ? compilerOptions.strictNullChecks !== false diff --git a/packages/eslint-plugin-svelte/src/rules/block-lang.ts b/packages/eslint-plugin-svelte/src/rules/block-lang.ts index 03eed5b4c..39a95ca9e 100644 --- a/packages/eslint-plugin-svelte/src/rules/block-lang.ts +++ b/packages/eslint-plugin-svelte/src/rules/block-lang.ts @@ -1,7 +1,6 @@ import { createRule } from '../utils/index.js'; import { findAttribute, getLangValue } from '../utils/ast-utils.js'; import type { SvelteScriptElement, SvelteStyleElement } from 'svelte-eslint-parser/lib/ast'; -import { getSourceCode } from '../utils/compat.js'; import type { SuggestionReportDescriptor, SourceCode } from '../types.js'; export default createRule('block-lang', { @@ -59,7 +58,7 @@ export default createRule('block-lang', { hasSuggestions: true }, create(context) { - if (!getSourceCode(context).parserServices.isSvelte) { + if (!context.sourceCode.parserServices.isSvelte) { return {}; } const enforceScriptPresent: boolean = context.options[0]?.enforceScriptPresent ?? false; @@ -91,7 +90,7 @@ export default createRule('block-lang', { message: `The