From 09a27eab831405564cc5ebe269a52e93efc81551 Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Wed, 10 May 2023 13:50:35 -0600 Subject: [PATCH 01/10] feat: Un-shadow `data` and `form` in `enhance`, warn about future deprecation in dev --- packages/kit/src/runtime/app/forms.js | 60 ++++++++++++++----- .../old-property-access/+page.server.js | 26 ++++++++ .../enhance/old-property-access/+page.svelte | 52 ++++++++++++++++ packages/kit/test/apps/basics/test/test.js | 45 ++++++++++++++ packages/kit/types/ambient.d.ts | 7 ++- 5 files changed, 175 insertions(+), 15 deletions(-) create mode 100644 packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.server.js create mode 100644 packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.svelte diff --git a/packages/kit/src/runtime/app/forms.js b/packages/kit/src/runtime/app/forms.js index 24ef54daf79d..81783b8a0299 100644 --- a/packages/kit/src/runtime/app/forms.js +++ b/packages/kit/src/runtime/app/forms.js @@ -14,12 +14,26 @@ export function deserialize(result) { return parsed; } +/** + * @param {string} oldName + * @param {string} newName + * @param {string} callLocation + * @returns void + */ +function warnOnAccess(oldName, newName, callLocation) { + if (!DEV) return; + // TODO 2.0: Remove this code + console.warn( + `\`${oldName}\` has been deprecated in favor of \`${newName}\`. \`${oldName}\` will be removed in a future version. (Called from ${callLocation})` + ); +} + /** @type {import('$app/forms').enhance} */ -export function enhance(form, submit = () => {}) { +export function enhance(formElement, submit = () => {}) { if ( DEV && - /** @type {HTMLFormElement} */ (HTMLFormElement.prototype.cloneNode.call(form)).method !== - 'post' + /** @type {HTMLFormElement} */ (HTMLFormElement.prototype.cloneNode.call(formElement)) + .method !== 'post' ) { throw new Error('use:enhance can only be used on
fields with method="POST"'); } @@ -35,7 +49,7 @@ export function enhance(form, submit = () => {}) { if (result.type === 'success') { if (reset !== false) { // We call reset from the prototype to avoid DOM clobbering - HTMLFormElement.prototype.reset.call(form); + HTMLFormElement.prototype.reset.call(formElement); } await invalidateAll(); } @@ -60,14 +74,15 @@ export function enhance(form, submit = () => {}) { // We do cloneNode for avoid DOM clobbering - https://github.com/sveltejs/kit/issues/7593 event.submitter?.hasAttribute('formaction') ? /** @type {HTMLButtonElement | HTMLInputElement} */ (event.submitter).formAction - : /** @type {HTMLFormElement} */ (HTMLFormElement.prototype.cloneNode.call(form)).action + : /** @type {HTMLFormElement} */ (HTMLFormElement.prototype.cloneNode.call(formElement)) + .action ); - const data = new FormData(form); + const formData = new FormData(formElement); const submitter_name = event.submitter?.getAttribute('name'); if (submitter_name) { - data.append(submitter_name, event.submitter?.getAttribute('value') ?? ''); + formData.append(submitter_name, event.submitter?.getAttribute('value') ?? ''); } const controller = new AbortController(); @@ -75,13 +90,22 @@ export function enhance(form, submit = () => {}) { let cancelled = false; const cancel = () => (cancelled = true); + // TODO 2.0: Remove `data` and `form` const callback = (await submit({ action, cancel, controller, - data, - form, + get data() { + warnOnAccess('data', 'formData', 'use:enhance submit function'); + return formData; + }, + formData, + get form() { + warnOnAccess('form', 'formElement', 'use:enhance submit function'); + return formElement; + }, + formElement, submitter: event.submitter })) ?? fallback_callback; if (cancelled) return; @@ -97,7 +121,7 @@ export function enhance(form, submit = () => {}) { 'x-sveltekit-action': 'true' }, cache: 'no-store', - body: data, + body: formData, signal: controller.signal }); @@ -110,8 +134,16 @@ export function enhance(form, submit = () => {}) { callback({ action, - data, - form, + get data() { + warnOnAccess('data', 'formData', 'callback returned from use:enhance submit function'); + return formData; + }, + formData, + get form() { + warnOnAccess('form', 'formElement', 'callback returned from use:enhance submit function'); + return formElement; + }, + formElement, update: (opts) => fallback_callback({ action, result, reset: opts?.reset }), // @ts-expect-error generic constraints stuff we don't care about result @@ -119,12 +151,12 @@ export function enhance(form, submit = () => {}) { } // @ts-expect-error - HTMLFormElement.prototype.addEventListener.call(form, 'submit', handle_submit); + HTMLFormElement.prototype.addEventListener.call(formElement, 'submit', handle_submit); return { destroy() { // @ts-expect-error - HTMLFormElement.prototype.removeEventListener.call(form, 'submit', handle_submit); + HTMLFormElement.prototype.removeEventListener.call(formElement, 'submit', handle_submit); } }; } diff --git a/packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.server.js b/packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.server.js new file mode 100644 index 000000000000..03c9b9fec05d --- /dev/null +++ b/packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.server.js @@ -0,0 +1,26 @@ +// TODO 2.0: Remove this code and corresponding tests +export const actions = { + formSubmit: () => { + return { + formSubmit: true + }; + }, + + formCallback: () => { + return { + formCallback: true + }; + }, + + dataSubmit: () => { + return { + dataSubmit: true + }; + }, + + dataCallback: () => { + return { + dataCallback: true + }; + } +}; diff --git a/packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.svelte b/packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.svelte new file mode 100644 index 000000000000..766802b479e4 --- /dev/null +++ b/packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.svelte @@ -0,0 +1,52 @@ + + + + +
+ +
+ +
+ +
+ +
+ +
+ +
diff --git a/packages/kit/test/apps/basics/test/test.js b/packages/kit/test/apps/basics/test/test.js index 6b976d2eee5d..a65e35740875 100644 --- a/packages/kit/test/apps/basics/test/test.js +++ b/packages/kit/test/apps/basics/test/test.js @@ -828,6 +828,51 @@ test.describe('Matchers', () => { }); test.describe('Actions', () => { + for (const { id, oldName, newName, callLocation } of [ + { + id: 'access-form-in-submit', + oldName: 'form', + newName: 'formElement', + callLocation: 'use:enhance submit function' + }, + { + id: 'access-form-in-callback', + oldName: 'form', + newName: 'formElement', + callLocation: 'callback returned from use:enhance submit function' + }, + { + id: 'access-data-in-submit', + oldName: 'data', + newName: 'formData', + callLocation: 'use:enhance submit function' + }, + { + id: 'access-data-in-callback', + oldName: 'data', + newName: 'formData', + callLocation: 'callback returned from use:enhance submit function' + } + ]) { + test(`Accessing v2 deprecated properties results in a warning log, type: ${id}`, async ({ + page, + javaScriptEnabled + }) => { + test.skip(!javaScriptEnabled, 'skip when js is disabled'); + test.skip(!process.env.DEV, 'skip when not in dev mode'); + await page.goto('/actions/enhance/old-property-access'); + const logPromise = page.waitForEvent('console'); + const button = page.locator(`#${id}`); + await button.click(); + await button.textContent('processed'); + const log = await logPromise; + expect(log.text()).toBe( + `\`${oldName}\` has been deprecated in favor of \`${newName}\`. \`${oldName}\` will be removed in a future version. (Called from ${callLocation})` + ); + expect(log.type()).toBe('warning'); + }); + } + test('Error props are returned', async ({ page, javaScriptEnabled }) => { await page.goto('/actions/form-errors'); await page.click('button'); diff --git a/packages/kit/types/ambient.d.ts b/packages/kit/types/ambient.d.ts index 9e6b92fa27e0..2ea7c3826db5 100644 --- a/packages/kit/types/ambient.d.ts +++ b/packages/kit/types/ambient.d.ts @@ -81,14 +81,19 @@ declare module '$app/forms' { > = (input: { action: URL; data: FormData; + formData: FormData; form: HTMLFormElement; + formElement: HTMLFormElement; controller: AbortController; cancel(): void; submitter: HTMLElement | null; }) => MaybePromise< | void | ((opts: { + data: FormData; + formData: FormData; form: HTMLFormElement; + formElement: HTMLFormElement; action: URL; result: ActionResult; /** @@ -108,7 +113,7 @@ declare module '$app/forms' { Success extends Record | undefined = Record, Invalid extends Record | undefined = Record >( - form: HTMLFormElement, + formElement: HTMLFormElement, /** * Called upon submission with the given FormData and the `action` that should be triggered. * If `cancel` is called, the form will not be submitted. From 735286620ad9dd7094b0aa5beeac073daae03e2c Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Wed, 10 May 2023 13:55:54 -0600 Subject: [PATCH 02/10] changeset --- .changeset/odd-crews-own.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/odd-crews-own.md diff --git a/.changeset/odd-crews-own.md b/.changeset/odd-crews-own.md new file mode 100644 index 000000000000..a9455e3d60dc --- /dev/null +++ b/.changeset/odd-crews-own.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/kit': minor +--- + +feat: Unshadow `data` and `form` in `enhance`, warn about future deprecation in dev From f0d743dcb053c696d541fc6ed6fda88c36dfb23d Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Wed, 10 May 2023 15:09:45 -0600 Subject: [PATCH 03/10] snek --- packages/kit/src/runtime/app/forms.js | 10 +++++----- packages/kit/test/apps/dev-only/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/kit/src/runtime/app/forms.js b/packages/kit/src/runtime/app/forms.js index 81783b8a0299..bbf37b68ac81 100644 --- a/packages/kit/src/runtime/app/forms.js +++ b/packages/kit/src/runtime/app/forms.js @@ -20,7 +20,7 @@ export function deserialize(result) { * @param {string} callLocation * @returns void */ -function warnOnAccess(oldName, newName, callLocation) { +function warn_on_access(oldName, newName, callLocation) { if (!DEV) return; // TODO 2.0: Remove this code console.warn( @@ -97,12 +97,12 @@ export function enhance(formElement, submit = () => {}) { cancel, controller, get data() { - warnOnAccess('data', 'formData', 'use:enhance submit function'); + warn_on_access('data', 'formData', 'use:enhance submit function'); return formData; }, formData, get form() { - warnOnAccess('form', 'formElement', 'use:enhance submit function'); + warn_on_access('form', 'formElement', 'use:enhance submit function'); return formElement; }, formElement, @@ -135,12 +135,12 @@ export function enhance(formElement, submit = () => {}) { callback({ action, get data() { - warnOnAccess('data', 'formData', 'callback returned from use:enhance submit function'); + warn_on_access('data', 'formData', 'callback returned from use:enhance submit function'); return formData; }, formData, get form() { - warnOnAccess('form', 'formElement', 'callback returned from use:enhance submit function'); + warn_on_access('form', 'formElement', 'callback returned from use:enhance submit function'); return formElement; }, formElement, diff --git a/packages/kit/test/apps/dev-only/package.json b/packages/kit/test/apps/dev-only/package.json index 37ee1ab3a73d..0e0f542848a8 100644 --- a/packages/kit/test/apps/dev-only/package.json +++ b/packages/kit/test/apps/dev-only/package.json @@ -1,5 +1,5 @@ { - "name": "test-basics", + "name": "fack-off", "private": true, "version": "0.0.2-next.0", "scripts": { From cdeddeaec2f7899f39ef0909e4813a01a4d4551b Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Wed, 10 May 2023 16:34:34 -0600 Subject: [PATCH 04/10] Update .changeset/odd-crews-own.md Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com> --- .changeset/odd-crews-own.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/odd-crews-own.md b/.changeset/odd-crews-own.md index a9455e3d60dc..1f140b9b965b 100644 --- a/.changeset/odd-crews-own.md +++ b/.changeset/odd-crews-own.md @@ -2,4 +2,4 @@ '@sveltejs/kit': minor --- -feat: Unshadow `data` and `form` in `enhance`, warn about future deprecation in dev +feat: unshadow `data` and `form` in `enhance` and warn about future deprecation when used in `dev` mode From 0b79b5df27ddca3cb6a801a7e84232060ca88a14 Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Wed, 10 May 2023 20:58:58 -0600 Subject: [PATCH 05/10] Update packages/kit/test/apps/dev-only/package.json Co-authored-by: Ben McCann <322311+benmccann@users.noreply.github.com> --- packages/kit/test/apps/dev-only/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kit/test/apps/dev-only/package.json b/packages/kit/test/apps/dev-only/package.json index 0e0f542848a8..34c9b1b80012 100644 --- a/packages/kit/test/apps/dev-only/package.json +++ b/packages/kit/test/apps/dev-only/package.json @@ -1,5 +1,5 @@ { - "name": "fack-off", + "name": "test-dev-only", "private": true, "version": "0.0.2-next.0", "scripts": { From f400cfd1a8a6770999b626aa7d0170f6500ca020 Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Wed, 10 May 2023 21:04:26 -0600 Subject: [PATCH 06/10] am not smart --- packages/kit/src/runtime/app/forms.js | 44 +++++++++---------- .../old-property-access/+page.server.js | 16 +++---- .../enhance/old-property-access/+page.svelte | 24 +++++----- 3 files changed, 42 insertions(+), 42 deletions(-) diff --git a/packages/kit/src/runtime/app/forms.js b/packages/kit/src/runtime/app/forms.js index bbf37b68ac81..4a5a9abfbe0a 100644 --- a/packages/kit/src/runtime/app/forms.js +++ b/packages/kit/src/runtime/app/forms.js @@ -15,24 +15,24 @@ export function deserialize(result) { } /** - * @param {string} oldName - * @param {string} newName - * @param {string} callLocation + * @param {string} old_name + * @param {string} new_name + * @param {string} call_location * @returns void */ -function warn_on_access(oldName, newName, callLocation) { +function warn_on_access(old_name, new_name, call_location) { if (!DEV) return; // TODO 2.0: Remove this code console.warn( - `\`${oldName}\` has been deprecated in favor of \`${newName}\`. \`${oldName}\` will be removed in a future version. (Called from ${callLocation})` + `\`${old_name}\` has been deprecated in favor of \`${new_name}\`. \`${old_name}\` will be removed in a future version. (Called from ${call_location})` ); } /** @type {import('$app/forms').enhance} */ -export function enhance(formElement, submit = () => {}) { +export function enhance(form_element, submit = () => {}) { if ( DEV && - /** @type {HTMLFormElement} */ (HTMLFormElement.prototype.cloneNode.call(formElement)) + /** @type {HTMLFormElement} */ (HTMLFormElement.prototype.cloneNode.call(form_element)) .method !== 'post' ) { throw new Error('use:enhance can only be used on
fields with method="POST"'); @@ -49,7 +49,7 @@ export function enhance(formElement, submit = () => {}) { if (result.type === 'success') { if (reset !== false) { // We call reset from the prototype to avoid DOM clobbering - HTMLFormElement.prototype.reset.call(formElement); + HTMLFormElement.prototype.reset.call(form_element); } await invalidateAll(); } @@ -74,15 +74,15 @@ export function enhance(formElement, submit = () => {}) { // We do cloneNode for avoid DOM clobbering - https://github.com/sveltejs/kit/issues/7593 event.submitter?.hasAttribute('formaction') ? /** @type {HTMLButtonElement | HTMLInputElement} */ (event.submitter).formAction - : /** @type {HTMLFormElement} */ (HTMLFormElement.prototype.cloneNode.call(formElement)) + : /** @type {HTMLFormElement} */ (HTMLFormElement.prototype.cloneNode.call(form_element)) .action ); - const formData = new FormData(formElement); + const form_data = new FormData(form_element); const submitter_name = event.submitter?.getAttribute('name'); if (submitter_name) { - formData.append(submitter_name, event.submitter?.getAttribute('value') ?? ''); + form_data.append(submitter_name, event.submitter?.getAttribute('value') ?? ''); } const controller = new AbortController(); @@ -98,14 +98,14 @@ export function enhance(formElement, submit = () => {}) { controller, get data() { warn_on_access('data', 'formData', 'use:enhance submit function'); - return formData; + return form_data; }, - formData, + formData: form_data, get form() { warn_on_access('form', 'formElement', 'use:enhance submit function'); - return formElement; + return form_element; }, - formElement, + formElement: form_element, submitter: event.submitter })) ?? fallback_callback; if (cancelled) return; @@ -121,7 +121,7 @@ export function enhance(formElement, submit = () => {}) { 'x-sveltekit-action': 'true' }, cache: 'no-store', - body: formData, + body: form_data, signal: controller.signal }); @@ -136,14 +136,14 @@ export function enhance(formElement, submit = () => {}) { action, get data() { warn_on_access('data', 'formData', 'callback returned from use:enhance submit function'); - return formData; + return form_data; }, - formData, + formData: form_data, get form() { warn_on_access('form', 'formElement', 'callback returned from use:enhance submit function'); - return formElement; + return form_element; }, - formElement, + formElement: form_element, update: (opts) => fallback_callback({ action, result, reset: opts?.reset }), // @ts-expect-error generic constraints stuff we don't care about result @@ -151,12 +151,12 @@ export function enhance(formElement, submit = () => {}) { } // @ts-expect-error - HTMLFormElement.prototype.addEventListener.call(formElement, 'submit', handle_submit); + HTMLFormElement.prototype.addEventListener.call(form_element, 'submit', handle_submit); return { destroy() { // @ts-expect-error - HTMLFormElement.prototype.removeEventListener.call(formElement, 'submit', handle_submit); + HTMLFormElement.prototype.removeEventListener.call(form_element, 'submit', handle_submit); } }; } diff --git a/packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.server.js b/packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.server.js index 03c9b9fec05d..4bdf1c67412b 100644 --- a/packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.server.js +++ b/packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.server.js @@ -1,26 +1,26 @@ // TODO 2.0: Remove this code and corresponding tests export const actions = { - formSubmit: () => { + form_submit: () => { return { - formSubmit: true + form_submit: true }; }, - formCallback: () => { + form_callback: () => { return { - formCallback: true + form_callback: true }; }, - dataSubmit: () => { + data_submit: () => { return { - dataSubmit: true + data_submit: true }; }, - dataCallback: () => { + data_callback: () => { return { - dataCallback: true + data_callback: true }; } }; diff --git a/packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.svelte b/packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.svelte index 766802b479e4..290d6d57670d 100644 --- a/packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.svelte +++ b/packages/kit/test/apps/basics/src/routes/actions/enhance/old-property-access/+page.svelte @@ -3,13 +3,13 @@ export let form; - const accessFormSubmit = (node) => { + const access_form_submit = (node) => { return enhance(node, ({ form }) => {}); }; - const accessDataSubmit = (node) => { + const access_data_submit = (node) => { return enhance(node, ({ data }) => {}); }; - const accessFormCallback = (node) => { + const access_form_callback = (node) => { return enhance( node, () => @@ -17,7 +17,7 @@ update() ); }; - const accessDataCallback = (node) => { + const access_data_callback = (node) => { return enhance( node, () => @@ -27,26 +27,26 @@ }; - + {form?.form_submit ? 'processed' : 'not processed'}
-
+ {form?.data_submit ? 'processed' : 'not processed'}
-
+ {form?.form_callback ? 'processed' : 'not processed'}
-
+ {form?.data_callback ? 'processed' : 'not processed'}
From 97bd1139c7c0f1a62c54152da99039b1421722b6 Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Wed, 10 May 2023 21:06:41 -0600 Subject: [PATCH 07/10] still not smart --- packages/kit/test/apps/basics/test/test.js | 28 +++++++++++----------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/kit/test/apps/basics/test/test.js b/packages/kit/test/apps/basics/test/test.js index a65e35740875..304b807e76c8 100644 --- a/packages/kit/test/apps/basics/test/test.js +++ b/packages/kit/test/apps/basics/test/test.js @@ -828,30 +828,30 @@ test.describe('Matchers', () => { }); test.describe('Actions', () => { - for (const { id, oldName, newName, callLocation } of [ + for (const { id, old_name, new_name, call_location } of [ { id: 'access-form-in-submit', - oldName: 'form', - newName: 'formElement', - callLocation: 'use:enhance submit function' + old_name: 'form', + new_name: 'formElement', + call_location: 'use:enhance submit function' }, { id: 'access-form-in-callback', - oldName: 'form', - newName: 'formElement', - callLocation: 'callback returned from use:enhance submit function' + old_name: 'form', + new_name: 'formElement', + call_location: 'callback returned from use:enhance submit function' }, { id: 'access-data-in-submit', - oldName: 'data', - newName: 'formData', - callLocation: 'use:enhance submit function' + old_name: 'data', + new_name: 'formData', + call_location: 'use:enhance submit function' }, { id: 'access-data-in-callback', - oldName: 'data', - newName: 'formData', - callLocation: 'callback returned from use:enhance submit function' + old_name: 'data', + new_name: 'formData', + call_location: 'callback returned from use:enhance submit function' } ]) { test(`Accessing v2 deprecated properties results in a warning log, type: ${id}`, async ({ @@ -867,7 +867,7 @@ test.describe('Actions', () => { await button.textContent('processed'); const log = await logPromise; expect(log.text()).toBe( - `\`${oldName}\` has been deprecated in favor of \`${newName}\`. \`${oldName}\` will be removed in a future version. (Called from ${callLocation})` + `\`${old_name}\` has been deprecated in favor of \`${new_name}\`. \`${old_name}\` will be removed in a future version. (Called from ${call_location})` ); expect(log.type()).toBe('warning'); }); From 0a9a3d627a8c5786490018e0a1de0c242010fb65 Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Wed, 10 May 2023 21:07:15 -0600 Subject: [PATCH 08/10] oops --- packages/kit/test/apps/basics/test/test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/kit/test/apps/basics/test/test.js b/packages/kit/test/apps/basics/test/test.js index 304b807e76c8..860904db8e6c 100644 --- a/packages/kit/test/apps/basics/test/test.js +++ b/packages/kit/test/apps/basics/test/test.js @@ -861,11 +861,11 @@ test.describe('Actions', () => { test.skip(!javaScriptEnabled, 'skip when js is disabled'); test.skip(!process.env.DEV, 'skip when not in dev mode'); await page.goto('/actions/enhance/old-property-access'); - const logPromise = page.waitForEvent('console'); + const log_promise = page.waitForEvent('console'); const button = page.locator(`#${id}`); await button.click(); await button.textContent('processed'); - const log = await logPromise; + const log = await log_promise; expect(log.text()).toBe( `\`${old_name}\` has been deprecated in favor of \`${new_name}\`. \`${old_name}\` will be removed in a future version. (Called from ${call_location})` ); From 7f50d7d2953d9b71910252c6c9d445252a600ab4 Mon Sep 17 00:00:00 2001 From: "S. Elliott Johnson" Date: Wed, 10 May 2023 21:08:38 -0600 Subject: [PATCH 09/10] oof --- packages/kit/test/apps/basics/test/test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/kit/test/apps/basics/test/test.js b/packages/kit/test/apps/basics/test/test.js index 860904db8e6c..1571911d7e7b 100644 --- a/packages/kit/test/apps/basics/test/test.js +++ b/packages/kit/test/apps/basics/test/test.js @@ -864,7 +864,7 @@ test.describe('Actions', () => { const log_promise = page.waitForEvent('console'); const button = page.locator(`#${id}`); await button.click(); - await button.textContent('processed'); + expect(await button.textContent()).toBe('processed'); // needed to make sure action completes const log = await log_promise; expect(log.text()).toBe( `\`${old_name}\` has been deprecated in favor of \`${new_name}\`. \`${old_name}\` will be removed in a future version. (Called from ${call_location})` From 8e2242191702c4a8fb7d87edc201266327249ddb Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Tue, 16 May 2023 17:34:12 -0400 Subject: [PATCH 10/10] add deprecation notice --- packages/kit/types/ambient.d.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/packages/kit/types/ambient.d.ts b/packages/kit/types/ambient.d.ts index 2ea7c3826db5..10e3529d238b 100644 --- a/packages/kit/types/ambient.d.ts +++ b/packages/kit/types/ambient.d.ts @@ -80,8 +80,16 @@ declare module '$app/forms' { Invalid extends Record | undefined = Record > = (input: { action: URL; + /** + * use `formData` instead of `data` + * @deprecated + */ data: FormData; formData: FormData; + /** + * use `formElement` instead of `form` + * @deprecated + */ form: HTMLFormElement; formElement: HTMLFormElement; controller: AbortController; @@ -90,8 +98,16 @@ declare module '$app/forms' { }) => MaybePromise< | void | ((opts: { + /** + * use `formData` instead of `data` + * @deprecated + */ data: FormData; formData: FormData; + /** + * use `formElement` instead of `form` + * @deprecated + */ form: HTMLFormElement; formElement: HTMLFormElement; action: URL;