From ba509dcc710ef653f263dee9feb1b2e7e1e469cd Mon Sep 17 00:00:00 2001 From: Kiizuha Kanazawa Date: Fri, 27 Mar 2026 16:36:59 +0700 Subject: [PATCH 1/2] fix paraglide reroute type added `Reroute` type for the reroute hooks.[ts|js] Signed-off-by: Kiizuha Kanazawa --- .changeset/brave-months-greet.md | 5 ++++ packages/sv/src/addons/paraglide.ts | 24 +++++++++++++++---- .../create-with-all-addons/src/hooks.ts | 3 ++- 3 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 .changeset/brave-months-greet.md diff --git a/.changeset/brave-months-greet.md b/.changeset/brave-months-greet.md new file mode 100644 index 000000000..d263a42e9 --- /dev/null +++ b/.changeset/brave-months-greet.md @@ -0,0 +1,5 @@ +--- +'sv': patch +--- + +paraglide: add a type annotation for the reroute hooks. diff --git a/packages/sv/src/addons/paraglide.ts b/packages/sv/src/addons/paraglide.ts index 6bcde3224..bb0900cc8 100644 --- a/packages/sv/src/addons/paraglide.ts +++ b/packages/sv/src/addons/paraglide.ts @@ -67,9 +67,9 @@ export default defineAddon({ const vitePluginName = 'paraglideVitePlugin'; js.imports.addNamed(ast, { imports: [vitePluginName], from: '@inlang/paraglide-js' }); js.vite.addPlugin(ast, { - code: `${vitePluginName}({ - project: './project.inlang', - outdir: './${paraglideOutDir}' + code: `${vitePluginName}({ + project: './project.inlang', + outdir: './${paraglideOutDir}' })` }); @@ -78,7 +78,8 @@ export default defineAddon({ // reroute hook sv.file(`src/hooks.${language}`, (content) => { - const { ast, generateCode } = parse.script(content); + const { ast, generateCode, comments } = parse.script(content); + js.imports.addNamed(ast, { from: '$lib/paraglide/runtime', imports: ['deLocalizeUrl'] @@ -87,9 +88,10 @@ export default defineAddon({ const expression = js.common.parseExpression( '(request) => deLocalizeUrl(request.url).pathname' ); + const rerouteIdentifier = js.variables.declaration(ast, { kind: 'const', - name: 'reroute', + name: `reroute${language === 'ts' ? ': Reroute' : ''}`, value: expression }); @@ -101,6 +103,18 @@ export default defineAddon({ log.warn('Adding the reroute hook automatically failed. Add it manually'); } + if (language === 'ts') { + js.imports.addNamed(ast, { + from: '@sveltejs/kit', + imports: ['Reroute'], + isType: true + }); + } else { + js.common.addJsDocTypeComment(existingExport, comments, { + type: "import('@sveltejs/kit').Reroute" + }); + } + return generateCode(); }); diff --git a/packages/sv/src/cli/tests/snapshots/create-with-all-addons/src/hooks.ts b/packages/sv/src/cli/tests/snapshots/create-with-all-addons/src/hooks.ts index e75600b3e..392875d8b 100644 --- a/packages/sv/src/cli/tests/snapshots/create-with-all-addons/src/hooks.ts +++ b/packages/sv/src/cli/tests/snapshots/create-with-all-addons/src/hooks.ts @@ -1,3 +1,4 @@ +import type { Reroute } from '@sveltejs/kit'; import { deLocalizeUrl } from '$lib/paraglide/runtime'; -export const reroute = (request) => deLocalizeUrl(request.url).pathname; +export const reroute: Reroute = (request) => deLocalizeUrl(request.url).pathname; From acbe22a063ba90c5d6744b3c2318dc680f13635e Mon Sep 17 00:00:00 2001 From: jycouet Date: Sat, 28 Mar 2026 12:25:43 +0100 Subject: [PATCH 2/2] tweak changelog --- .changeset/brave-months-greet.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/brave-months-greet.md b/.changeset/brave-months-greet.md index d263a42e9..2f7c00476 100644 --- a/.changeset/brave-months-greet.md +++ b/.changeset/brave-months-greet.md @@ -2,4 +2,4 @@ 'sv': patch --- -paraglide: add a type annotation for the reroute hooks. +feat(paraglide): add a type annotation for the reroute hooks