diff --git a/.changeset/afraid-geckos-dance.md b/.changeset/afraid-geckos-dance.md new file mode 100644 index 0000000000..944f321cc9 --- /dev/null +++ b/.changeset/afraid-geckos-dance.md @@ -0,0 +1,5 @@ +--- +"svelte": patch +--- + +fix: add `anchor` support to mount() API diff --git a/packages/svelte/src/internal/client/render.js b/packages/svelte/src/internal/client/render.js index 6465078465..421e30caad 100644 --- a/packages/svelte/src/internal/client/render.js +++ b/packages/svelte/src/internal/client/render.js @@ -90,15 +90,16 @@ export function stringify(value) { * @param {import('../../index.js').ComponentType>} component * @param {{ * target: Document | Element | ShadowRoot; + * anchor?: Node; * props?: Props; * events?: { [Property in keyof Events]: (e: Events[Property]) => any }; - * context?: Map; + * context?: Map; * intro?: boolean; * }} options * @returns {Exports} */ export function mount(component, options) { - const anchor = options.target.appendChild(empty()); + const anchor = options.anchor ?? options.target.appendChild(empty()); // Don't flush previous effects to ensure order of outer effects stays consistent return flush_sync(() => _mount(component, { ...options, anchor }), false); } @@ -187,7 +188,7 @@ export function hydrate(component, options) { * anchor: Node; * props?: Props; * events?: { [Property in keyof Events]: (e: Events[Property]) => any }; - * context?: Map; + * context?: Map; * intro?: boolean; * }} options * @returns {Exports} diff --git a/packages/svelte/types/index.d.ts b/packages/svelte/types/index.d.ts index beeb104ba7..22406fe281 100644 --- a/packages/svelte/types/index.d.ts +++ b/packages/svelte/types/index.d.ts @@ -300,6 +300,7 @@ declare module 'svelte' { * */ export function mount, Exports extends Record, Events extends Record>(component: ComponentType>, options: { target: Document | Element | ShadowRoot; + anchor?: Node | undefined; props?: Props | undefined; events?: { [Property in keyof Events]: (e: Events[Property]) => any; } | undefined; context?: Map | undefined;