Skip to content

Releases: ciscoheat/sveltekit-superforms

v2.5.0

21 Feb 15:45
Compare
Choose a tag to compare

Migration guide: https://superforms.rocks/migration-v2
More detailed list of what's new: https://superforms.rocks/whats-new-v2

Added

  • get and set accessor for onChange.
  • submit method for superForm, a convenience instead of using requestSubmit. Requires use:enhance or that a HTMLElement inside the form (or the form itself) is passed as an argument.

Fixed

  • Type parameter was missing in ChangeEvent, which should be of the inferred schema type.
  • Type for onChange.paths wasn't strongly typed to FormPath.
  • Initial data was dereferenced after calling superForm, so it wasn't possible to update it when using reset.
  • FormOptions type required a type parameter that should've been defaulted to Record<string, unknown>.
  • Auto-overflow on SuperDebug, for small spaces.

v2.4.0

20 Feb 10:17
Compare
Choose a tag to compare

Migration guide: https://superforms.rocks/migration-v2
More detailed list of what's new: https://superforms.rocks/whats-new-v2

Added

  • Added config option to Valibot adapter, for the SchemaConfig type.

Fixed

  • Nullable fields weren't always detected in JSON Schemas.
  • Constraints weren't added when using default values for Arktype, Vine and Valibot schemas.
  • Fixed null support for Joi, Arktype and Vine schemas.

v2.3.0

18 Feb 08:10
Compare
Choose a tag to compare

Migration guide: https://superforms.rocks/migration-v2
More detailed list of what's new: https://superforms.rocks/whats-new-v2

Fixed

  • Depending on the JSON Schema, dates were sometimes set to undefined when posting invalid data.

Added

  • onSubmit.jsonData, to override what's being submitted, when dataType is set to 'json' and validation succeeds for $form.
  • onSubmit.validators, to temporarily override validators for the current submission.

v2.2.1

16 Feb 19:32
Compare
Choose a tag to compare

Migration guide: https://superforms.rocks/migration-v2
More detailed list of what's new: https://superforms.rocks/whats-new-v2

Fixed

  • Added focusOnError option to SuperForm.validateForm type (it was only in the implementation).
  • Enums could not be detected as an invalid value if the posted value was an empty string, instead it defaulted to the enum first value.
  • $posted was reset by mistake to false after posting, when resetForm option was true.

v2.2.0

15 Feb 16:48
Compare
Choose a tag to compare

Migration guide: https://superforms.rocks/migration-v2
More detailed list of what's new: https://superforms.rocks/whats-new-v2

Added

  • VineJS adapter!
  • Added focusOnError option to validateForm, default true.

Fixed

  • Autofocus is now working when using validateForm({ update: true }).
  • Default values are now applied properly for single-type unions, even a mix of integers and numbers.
  • SuperStruct types, $errors primarily, didn't handle nested data properly.

Changed

  • The inferred type parameters were swapped in message, it can now be used to specify the message type.

v2.1.0

13 Feb 14:05
Compare
Choose a tag to compare

Migration guide: https://superforms.rocks/migration-v2
More detailed list of what's new: https://superforms.rocks/whats-new-v2

Fixed

  • Enums can now be a required field again, as they don't need an explicit default value anymore. If no explicit default value exists, the first enum value will be used.
  • Empty arrays were set to undefined when using dataType: 'json'.

v2.0.0

11 Feb 16:31
Compare
Choose a tag to compare

Migration guide: https://superforms.rocks/migration-v2
More detailed list of what's new: https://superforms.rocks/whats-new-v2

Removed

  • superForm.fields was a rarely used and lesser version of formFieldProxy, switch to that instead.
  • Removed fields options when setting tainted status.
  • Remvoed message parameter in onError event, use $message directly instead.

Changed

  • Adapters required for validation! Import from sveltekit-superforms/adapters and use superValidate(zod(schema)) instead of superValidate(schema). If type parameters are used, it must now be wrapped with Infer for schemas.
  • Default superForm options now follow SvelteKit more closely: resetForm: true and taintedMessage: false are default now. Add define: { SUPERFORMS_LEGACY: true } in vite.config.ts to keep the old behavior.
  • superValidateSync is renamed to defaults. It returns default values for the schema, and does no validation anymore. Use +page.ts if initial validation is required, as described on the SPA page.
  • arrayProxy: fieldErrors renamed to valueErrors.
  • Enums must have an explicit default value in the schema.
  • Numeric enums cannot be parsed with their string values anymore.
  • Superform validator functions, previously just an object with functions, requires the superformClient adapter. The input for the validator functions can now be undefined.
  • If superValidate is called with just the schema, the default values aren't validated (i.e. no side-effects for default values) unless errors is set to true.
  • Properties with default values don't have required in their constraints anymore.
  • Form id cannot be undefined anymore, must be string. (Set automatically by default now).
  • flashMessage.onError.message option in superForm renamed to flashMessage.onError.flashMessage.
  • constraints are now optional in the SuperValidated type, and are returned only when loading data, not posting. This is only relevant if you modify constraints before calling superForm.
  • Removed the defaultValidators option, 'clear' can now be set directly on validators instead.
  • Removed the emptyIfZero setting from numberProxy and intProxy.
  • validate() called with no arguments is renamed to validateForm() and can take two extra options, update and schema.

Added

  • Support for unions in schemas. A union must have an explicit default value, and multi-type unions can only be used with dataType: 'json' set.
  • Added superForm.isTainted(path?) and superForm.isTainted($tainted) for better tainted fields check.
  • File upload support! Use withFiles when returning in form actions: return withFiles({ form }).
  • SuperDebug now displays File and FileList.
  • All proxies can now take the whole superForm object (previously only the form store was accepted), with an extra taint option to prevent tainting.
  • taintedMessage can now be an async function resolving to true if navigation should be allowed, despite the form being tainted.
  • Added an onChange event to superForm, that returns a list of modified fields whenever $form is updated.
  • Added 'zero' to the empty option of numberProxy and intProxy. Also added initiallyEmptyIfZero option, to show the placeholder for numeric inputs, which would otherwise display 0.

v1.13.4

20 Jan 09:23
Compare
Choose a tag to compare

Fixed

  • Error set on the server with setError didn't show up when submitting the form with an enter keypress.

v1.13.3

14 Jan 14:42
Compare
Choose a tag to compare

Fixed

  • Using full version of klona to address a cloning issue. (#312)
  • Nullable nested objects couldn't be reassigned with $form when null. (#311)

v1.13.2

07 Jan 12:45
Compare
Choose a tag to compare

Fixed

  • The timers didn't reset after navigation in certain cases.
  • Exported FormPathType in top export.