diff --git a/.changeset/shaky-ties-look.md b/.changeset/shaky-ties-look.md new file mode 100644 index 000000000000..16d5acb30264 --- /dev/null +++ b/.changeset/shaky-ties-look.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': minor +--- + +breaking: update experimental `form` API diff --git a/documentation/docs/20-core-concepts/60-remote-functions.md b/documentation/docs/20-core-concepts/60-remote-functions.md index 4d7e637b1d2b..01633b9b7edc 100644 --- a/documentation/docs/20-core-concepts/60-remote-functions.md +++ b/documentation/docs/20-core-concepts/60-remote-functions.md @@ -229,7 +229,6 @@ export const getWeather = query.batch(v.string(), async (cities) => { The `form` function makes it easy to write data to the server. It takes a callback that receives `data` constructed from the submitted [`FormData`](https://developer.mozilla.org/en-US/docs/Web/API/FormData)... - ```ts /// file: src/routes/blog/data.remote.js // @filename: ambient.d.ts @@ -293,115 +292,188 @@ export const createPost = form(
enhanced.input.number: {enhanced.input.number}
+enhanced.input.number: {enhanced.fields.number.value()}
enhanced.pending: {enhanced.pending}
enhanced.result: {enhanced.result}
diff --git a/packages/kit/test/apps/basics/src/routes/remote/form/preflight/form.remote.ts b/packages/kit/test/apps/basics/src/routes/remote/form/preflight/form.remote.ts index e4a1f2378587..79bf75d226bc 100644 --- a/packages/kit/test/apps/basics/src/routes/remote/form/preflight/form.remote.ts +++ b/packages/kit/test/apps/basics/src/routes/remote/form/preflight/form.remote.ts @@ -9,12 +9,7 @@ export const get_number = query(() => { export const set_number = form( v.object({ - number: v.pipe( - v.string(), - v.regex(/^\d+$/), - v.transform((n) => +n), - v.minValue(10, 'too small') - ) + number: v.pipe(v.number(), v.minValue(10, 'too small')) }), async (data) => { number = data.number; diff --git a/packages/kit/test/apps/basics/src/routes/remote/form/submitter/+page.svelte b/packages/kit/test/apps/basics/src/routes/remote/form/submitter/+page.svelte index f51a477890c6..5b76ef3a1f2e 100644 --- a/packages/kit/test/apps/basics/src/routes/remote/form/submitter/+page.svelte +++ b/packages/kit/test/apps/basics/src/routes/remote/form/submitter/+page.svelte @@ -3,7 +3,7 @@{my_form.result}
diff --git a/packages/kit/test/apps/basics/src/routes/remote/form/submitter/form.remote.ts b/packages/kit/test/apps/basics/src/routes/remote/form/submitter/form.remote.ts index b06d4eafeddb..08c7f22dcf00 100644 --- a/packages/kit/test/apps/basics/src/routes/remote/form/submitter/form.remote.ts +++ b/packages/kit/test/apps/basics/src/routes/remote/form/submitter/form.remote.ts @@ -6,6 +6,7 @@ export const my_form = form( submitter: v.string() }), async (data) => { + console.log('!!!', data); return data.submitter; } ); diff --git a/packages/kit/test/apps/basics/src/routes/remote/form/underscore/+page.svelte b/packages/kit/test/apps/basics/src/routes/remote/form/underscore/+page.svelte index 620a7d63baef..6c8a0aff7e4f 100644 --- a/packages/kit/test/apps/basics/src/routes/remote/form/underscore/+page.svelte +++ b/packages/kit/test/apps/basics/src/routes/remote/form/underscore/+page.svelte @@ -3,23 +3,13 @@{JSON.stringify(register.issues, null, ' ')}
+{JSON.stringify(register.fields.issues(), null, ' ')}