diff --git a/packages/svelte/src/index.d.ts b/packages/svelte/src/index.d.ts index 8609124675..cb675d0328 100644 --- a/packages/svelte/src/index.d.ts +++ b/packages/svelte/src/index.d.ts @@ -16,6 +16,7 @@ export interface ComponentConstructorOptions< props?: Props; context?: Map; hydrate?: boolean; + uidPrefix?: string; intro?: boolean; recover?: boolean; sync?: boolean; diff --git a/packages/svelte/src/legacy/legacy-client.js b/packages/svelte/src/legacy/legacy-client.js index bb9a5a9c03..c2381188ec 100644 --- a/packages/svelte/src/legacy/legacy-client.js +++ b/packages/svelte/src/legacy/legacy-client.js @@ -116,7 +116,8 @@ class Svelte4Component { props, context: options.context, intro: options.intro ?? false, - recover: options.recover + recover: options.recover, + uidPrefix: options.uidPrefix }); // We don't flushSync for custom element wrappers or if the user doesn't want it diff --git a/packages/svelte/tests/hydration/test.ts b/packages/svelte/tests/hydration/test.ts index 1b3c548824..f2ffa00d42 100644 --- a/packages/svelte/tests/hydration/test.ts +++ b/packages/svelte/tests/hydration/test.ts @@ -1,14 +1,14 @@ // @vitest-environment jsdom +import type { CompileOptions } from '#compiler'; import * as fs from 'node:fs'; -import { assert } from 'vitest'; -import { compile_directory, should_update_expected } from '../helpers.js'; -import { assert_html_equal } from '../html_equal.js'; -import { suite, assert_ok, type BaseTest } from '../suite.js'; +import { flushSync } from 'svelte'; import { createClassComponent } from 'svelte/legacy'; import { render } from 'svelte/server'; -import type { CompileOptions } from '#compiler'; -import { flushSync } from 'svelte'; +import { assert } from 'vitest'; +import { compile_directory } from '../helpers.js'; +import { assert_html_equal } from '../html_equal.js'; +import { assert_ok, suite, type BaseTest } from '../suite.js'; interface HydrationTest extends BaseTest { load_compiled?: boolean; @@ -105,7 +105,8 @@ const { test, run } = suite(async (config, cwd) => { component: (await import(`${cwd}/_output/client/main.svelte.js`)).default, target, hydrate: true, - props: config.props + props: config.props, + uidPrefix: config?.uid_prefix }); console.warn = warn; @@ -166,6 +167,6 @@ const { test, run } = suite(async (config, cwd) => { config.after_test?.(); } }); -export { test, assert_ok }; +export { assert_ok, test }; await run(__dirname); diff --git a/packages/svelte/types/index.d.ts b/packages/svelte/types/index.d.ts index 9a8a479ab0..0da5e1ec3f 100644 --- a/packages/svelte/types/index.d.ts +++ b/packages/svelte/types/index.d.ts @@ -13,6 +13,7 @@ declare module 'svelte' { props?: Props; context?: Map; hydrate?: boolean; + uidPrefix?: string; intro?: boolean; recover?: boolean; sync?: boolean;