Skip to content

Commit 65d8f01

Browse files
authored
feat(sv): improve svelte version detection (#1075)
1 parent 9aea15e commit 65d8f01

3 files changed

Lines changed: 13 additions & 5 deletions

File tree

.changeset/sharp-pets-do.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@sveltejs/sv-utils': patch
3+
'sv': patch
4+
---
5+
6+
feat(sv): improve `svelte` version detection

packages/sv-utils/src/tooling/svelte/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { coerceVersion } from '../../semver.ts';
12
import { parseScript, type SvelteAst } from '../index.ts';
23
import { appendFromString } from '../js/common.ts';
34
import { parseSvelte } from '../parsers.ts';
@@ -38,9 +39,8 @@ export function addSlot(
3839
ast: SvelteAst.Root,
3940
options: { svelteVersion: string; language?: 'ts' | 'js' }
4041
): void {
41-
const slotSyntax =
42-
options.svelteVersion &&
43-
(options.svelteVersion.startsWith('4') || options.svelteVersion.startsWith('3'));
42+
const svelteVersionMajor = options.svelteVersion && coerceVersion(options.svelteVersion).major;
43+
const slotSyntax = svelteVersionMajor === 4 || svelteVersionMajor === 3;
4444

4545
if (slotSyntax) {
4646
// @ts-expect-error

packages/sv/src/addons/better-auth.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import {
77
transforms,
88
resolveCommandArray,
99
createPrinter,
10-
type TransformFn
10+
type TransformFn,
11+
coerceVersion
1112
} from '@sveltejs/sv-utils';
1213
import crypto from 'node:crypto';
1314
import { defineAddon, defineAddonOptions } from '../core/config.ts';
@@ -41,7 +42,8 @@ export default defineAddon({
4142
runsAfter('tailwindcss');
4243
},
4344
run: ({ sv, language, options, directory, dependencyVersion, file }) => {
44-
const svelte5 = !!dependencyVersion('svelte')?.startsWith('5');
45+
const svelteVersion = dependencyVersion('svelte');
46+
const svelte5 = !!svelteVersion && coerceVersion(svelteVersion).major === 5;
4547
const [ts, s5] = createPrinter(language === 'ts', svelte5);
4648

4749
const demoPassword = options.demo.includes('password');

0 commit comments

Comments
 (0)