From 7c36df1d5605b6dc67b397bb4826340d4304e83e Mon Sep 17 00:00:00 2001 From: Thilo Maier Date: Fri, 7 Aug 2026 23:19:34 +0200 Subject: [PATCH 1/2] Add `@ianvs/prettier-plugin-sort-imports` to auto sort imports Fixes #1285 --- package.json | 1 + pnpm-lock.yaml | 133 ++++++++++++++++++++++++++++++++++++++++++++- prettier.config.js | 6 +- 3 files changed, 137 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 03f7bc95..e7390f89 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ "@eslint/js": "^10.0.1", "@fontsource/lexend": "^5.3.0", "@fontsource/spectral": "^5.3.0", + "@ianvs/prettier-plugin-sort-imports": "^4.7.1", "@lucide/svelte": "^1.28.0", "@maiertech/sveltekit-helpers": "^0.55.0", "@playwright/test": "^1.62.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1b295c18..2d6d3f18 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ importers: '@fontsource/spectral': specifier: ^5.3.0 version: 5.3.0 + '@ianvs/prettier-plugin-sort-imports': + specifier: ^4.7.1 + version: 4.7.1(prettier@3.9.6) '@lucide/svelte': specifier: ^1.28.0 version: 1.28.0(svelte@5.56.8(@typescript-eslint/types@8.66.0)) @@ -91,7 +94,7 @@ importers: version: 4.1.1(prettier@3.9.6)(svelte@5.56.8(@typescript-eslint/types@8.66.0)) prettier-plugin-tailwindcss: specifier: ^0.8.1 - version: 0.8.1(prettier-plugin-svelte@4.1.1(prettier@3.9.6)(svelte@5.56.8(@typescript-eslint/types@8.66.0)))(prettier@3.9.6) + version: 0.8.1(@ianvs/prettier-plugin-sort-imports@4.7.1(prettier@3.9.6))(prettier-plugin-svelte@4.1.1(prettier@3.9.6)(svelte@5.56.8(@typescript-eslint/types@8.66.0)))(prettier@3.9.6) shiki: specifier: ^4.4.2 version: 4.4.2 @@ -128,6 +131,43 @@ importers: packages: + '@babel/code-frame@7.29.7': + resolution: {integrity: sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==} + engines: {node: '>=6.9.0'} + + '@babel/generator@7.29.8': + resolution: {integrity: sha512-gZbepsdh3WDtgZKWL+vTPh71LSBrm/Y4/QDZBVCcYfmeTEEuoOYwlSy+G1StfJg+/Zy550u/3TATbm7qDbbMtg==} + engines: {node: '>=6.9.0'} + + '@babel/helper-globals@7.29.7': + resolution: {integrity: sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-string-parser@7.29.7': + resolution: {integrity: sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.29.7': + resolution: {integrity: sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.29.8': + resolution: {integrity: sha512-E8lTAYNB1KW+FH+VGJuZM1ioAx2E6oVlvQFRrf5P8ZZmsiJXYAD9vTFV7yyEURNzgh1dFqMZuO6tUwcARbqFCA==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/template@7.29.7': + resolution: {integrity: sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==} + engines: {node: '>=6.9.0'} + + '@babel/traverse@7.29.8': + resolution: {integrity: sha512-I5z7H3bf/41ktsNVLtpN0wAa336HkqIHQ5BuPLEhTkt1jVSyZpeNKIzTgEWmlxjdg81R0IgUCcaE+Ok3NvrfZg==} + engines: {node: '>=6.9.0'} + + '@babel/types@7.29.8': + resolution: {integrity: sha512-Vj1jF3cPfxg7OAfoI7QnVKLoILlm2JF9pnVHrX8qx7AHMiYWT+NDAA7jChlNgRS4WTLc/fD1lXLmPixluj+3Gg==} + engines: {node: '>=6.9.0'} + '@content-collections/core@0.15.2': resolution: {integrity: sha512-Oaz3J3lw/8NXxmV/YSsTl8tTmxscTiotNp1wUNDHvRqW0MtNU8a0h843XYCFWSrlW5q6dcVoM0rGb2UF8kX5Ig==} peerDependencies: @@ -386,6 +426,24 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} + '@ianvs/prettier-plugin-sort-imports@4.7.1': + resolution: {integrity: sha512-jmTNYGlg95tlsoG3JLCcuC4BrFELJtLirLAkQW/71lXSyOhVt/Xj7xWbbGcuVbNq1gwWgSyMrPjJc9Z30hynVw==} + peerDependencies: + '@prettier/plugin-oxc': ^0.0.4 || ^0.1.0 + '@vue/compiler-sfc': 2.7.x || 3.x + content-tag: ^4.0.0 + prettier: 2 || 3 || ^4.0.0-0 + prettier-plugin-ember-template-tag: ^2.1.0 + peerDependenciesMeta: + '@prettier/plugin-oxc': + optional: true + '@vue/compiler-sfc': + optional: true + content-tag: + optional: true + prettier-plugin-ember-template-tag: + optional: true + '@img/colour@1.1.0': resolution: {integrity: sha512-Td76q7j57o/tLVdgS746cYARfSyxk8iEfRxewL9h4OMzYhbW4TAcppl0mT4eyqXddh6L/jwoM75mo7ixa/pCeQ==} engines: {node: '>=18'} @@ -1915,10 +1973,18 @@ packages: resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true + js-tokens@4.0.0: + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + js-yaml@3.15.1: resolution: {integrity: sha512-S99WuO3HlhO3XN41EtYUNl9zzXjoJx7QvmipxsJVxtCBT0YHEFy+iOJhjSvrmV12nYhWpZaM8lPHkJm0yUMbag==} hasBin: true + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + json-buffer@3.0.1: resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} @@ -2681,6 +2747,53 @@ packages: snapshots: + '@babel/code-frame@7.29.7': + dependencies: + '@babel/helper-validator-identifier': 7.29.7 + js-tokens: 4.0.0 + picocolors: 1.1.1 + + '@babel/generator@7.29.8': + dependencies: + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + '@jridgewell/gen-mapping': 0.3.13 + '@jridgewell/trace-mapping': 0.3.31 + jsesc: 3.1.0 + + '@babel/helper-globals@7.29.7': {} + + '@babel/helper-string-parser@7.29.7': {} + + '@babel/helper-validator-identifier@7.29.7': {} + + '@babel/parser@7.29.8': + dependencies: + '@babel/types': 7.29.8 + + '@babel/template@7.29.7': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/types': 7.29.8 + + '@babel/traverse@7.29.8': + dependencies: + '@babel/code-frame': 7.29.7 + '@babel/generator': 7.29.8 + '@babel/helper-globals': 7.29.7 + '@babel/parser': 7.29.8 + '@babel/template': 7.29.7 + '@babel/types': 7.29.8 + debug: 4.4.3 + transitivePeerDependencies: + - supports-color + + '@babel/types@7.29.8': + dependencies: + '@babel/helper-string-parser': 7.29.7 + '@babel/helper-validator-identifier': 7.29.7 + '@content-collections/core@0.15.2(typescript@6.0.3)': dependencies: '@standard-schema/spec': 1.1.0 @@ -2870,6 +2983,17 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} + '@ianvs/prettier-plugin-sort-imports@4.7.1(prettier@3.9.6)': + dependencies: + '@babel/generator': 7.29.8 + '@babel/parser': 7.29.8 + '@babel/traverse': 7.29.8 + '@babel/types': 7.29.8 + prettier: 3.9.6 + semver: 7.8.5 + transitivePeerDependencies: + - supports-color + '@img/colour@1.1.0': {} '@img/sharp-darwin-arm64@0.34.5': @@ -4363,11 +4487,15 @@ snapshots: jiti@2.7.0: {} + js-tokens@4.0.0: {} + js-yaml@3.15.1: dependencies: argparse: 1.0.10 esprima: 4.0.1 + jsesc@3.1.0: {} + json-buffer@3.0.1: {} json-schema-traverse@0.4.1: {} @@ -4699,10 +4827,11 @@ snapshots: prettier: 3.9.6 svelte: 5.56.8(@typescript-eslint/types@8.66.0) - prettier-plugin-tailwindcss@0.8.1(prettier-plugin-svelte@4.1.1(prettier@3.9.6)(svelte@5.56.8(@typescript-eslint/types@8.66.0)))(prettier@3.9.6): + prettier-plugin-tailwindcss@0.8.1(@ianvs/prettier-plugin-sort-imports@4.7.1(prettier@3.9.6))(prettier-plugin-svelte@4.1.1(prettier@3.9.6)(svelte@5.56.8(@typescript-eslint/types@8.66.0)))(prettier@3.9.6): dependencies: prettier: 3.9.6 optionalDependencies: + '@ianvs/prettier-plugin-sort-imports': 4.7.1(prettier@3.9.6) prettier-plugin-svelte: 4.1.1(prettier@3.9.6)(svelte@5.56.8(@typescript-eslint/types@8.66.0)) prettier@3.9.6: {} diff --git a/prettier.config.js b/prettier.config.js index f69a015f..8625b80b 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -5,7 +5,11 @@ const config = { trailingComma: 'none', printWidth: 100, proseWrap: 'always', - plugins: ['prettier-plugin-svelte', 'prettier-plugin-tailwindcss'], + plugins: [ + 'prettier-plugin-svelte', + '@ianvs/prettier-plugin-sort-imports', + 'prettier-plugin-tailwindcss' + ], tailwindStylesheet: './src/app.css', overrides: [ { From 6b5ab43060e33c9bf9deccd97dbdbb82eb69e645 Mon Sep 17 00:00:00 2001 From: Thilo Maier Date: Fri, 7 Aug 2026 23:35:35 +0200 Subject: [PATCH 2/2] Sort imports --- src/collections/posts/index.ts | 4 ++-- src/lib/components/stackblitz-embed.svelte | 2 +- src/lib/server/collections/posts.ts | 2 +- src/routes/+layout.svelte | 5 ++--- src/routes/+page.svelte | 4 ++-- src/routes/guides/+layout.server.ts | 2 +- src/routes/guides/+layout.svelte | 2 +- src/routes/notes/+layout.server.ts | 2 +- src/routes/notes/+layout.svelte | 2 +- src/routes/notes/+page@.svelte | 2 +- src/routes/notes/rss.xml/+server.ts | 2 +- .../+page.md | 11 ++++++----- .../CopyButton.svelte | 2 +- .../+page.md | 2 +- .../(2025)/dropping-requests-in-sveltekit/+page.md | 2 +- src/routes/posts/+layout.server.ts | 2 +- src/routes/posts/+layout.svelte | 2 +- src/routes/posts/+page@.svelte | 2 +- src/routes/posts/rss.xml/+server.ts | 2 +- src/routes/rss.xml/+server.ts | 2 +- src/routes/tags/[id]/+page.server.ts | 6 +++--- src/routes/tags/[id]/+page.svelte | 2 +- src/routes/videos/+layout.server.ts | 2 +- src/routes/videos/+layout.svelte | 4 ++-- src/routes/videos/+page@.svelte | 2 +- src/routes/videos/rss.xml/+server.ts | 2 +- 26 files changed, 37 insertions(+), 37 deletions(-) diff --git a/src/collections/posts/index.ts b/src/collections/posts/index.ts index 7fe06f5f..ede4e54a 100644 --- a/src/collections/posts/index.ts +++ b/src/collections/posts/index.ts @@ -1,8 +1,8 @@ -import { defineCollection } from '@content-collections/core'; -import { postMetaSchema } from '@maiertech/sveltekit-helpers'; import { execSync } from 'child_process'; import { readFileSync, writeFileSync } from 'fs'; import { resolve } from 'path'; +import { defineCollection } from '@content-collections/core'; +import { postMetaSchema } from '@maiertech/sveltekit-helpers'; import { collection as authors } from '../authors/index.js'; import { collection as tags } from '../tags/index.js'; diff --git a/src/lib/components/stackblitz-embed.svelte b/src/lib/components/stackblitz-embed.svelte index 5bf90c9e..2fd9484b 100644 --- a/src/lib/components/stackblitz-embed.svelte +++ b/src/lib/components/stackblitz-embed.svelte @@ -1,6 +1,6 @@ diff --git a/src/routes/guides/+layout.server.ts b/src/routes/guides/+layout.server.ts index 33add1ad..f206d8e4 100644 --- a/src/routes/guides/+layout.server.ts +++ b/src/routes/guides/+layout.server.ts @@ -1,7 +1,7 @@ +import { error } from '@sveltejs/kit'; import { ORIGIN } from '$env/static/private'; import { sorted as guides } from '$lib/server/collections/guides.js'; import { latest as latestVideos } from '$lib/server/collections/videos.js'; -import { error } from '@sveltejs/kit'; import type { LayoutServerLoad } from './$types'; export const prerender = true; diff --git a/src/routes/guides/+layout.svelte b/src/routes/guides/+layout.svelte index 60b76d1a..48e31717 100644 --- a/src/routes/guides/+layout.svelte +++ b/src/routes/guides/+layout.svelte @@ -1,7 +1,7 @@