Releases: ciscoheat/sveltekit-superforms
Releases · ciscoheat/sveltekit-superforms
v2.3.0
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
undefinedwhen 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
Migration guide: https://superforms.rocks/migration-v2
More detailed list of what's new: https://superforms.rocks/whats-new-v2
Fixed
- Added
focusOnErroroption toSuperForm.validateFormtype (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.
$postedwas reset by mistake tofalseafter posting, whenresetFormoption was true.
v2.2.0
Migration guide: https://superforms.rocks/migration-v2
More detailed list of what's new: https://superforms.rocks/whats-new-v2
Added
- VineJS adapter!
- Added
focusOnErroroption tovalidateForm, defaulttrue.
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,
$errorsprimarily, 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
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
undefinedwhen usingdataType: 'json'.
v2.0.0
Migration guide: https://superforms.rocks/migration-v2
More detailed list of what's new: https://superforms.rocks/whats-new-v2
Removed
superForm.fieldswas a rarely used and lesser version offormFieldProxy, switch to that instead.- Removed
fieldsoptions when setting tainted status. - Remvoed
messageparameter inonErrorevent, use$messagedirectly instead.
Changed
- Adapters required for validation! Import from
sveltekit-superforms/adaptersand usesuperValidate(zod(schema))instead ofsuperValidate(schema). If type parameters are used, it must now be wrapped withInferfor schemas. - Default
superFormoptions now follow SvelteKit more closely:resetForm: trueandtaintedMessage: falseare default now. Adddefine: { SUPERFORMS_LEGACY: true }invite.config.tsto keep the old behavior. superValidateSyncis renamed todefaults. It returns default values for the schema, and does no validation anymore. Use+page.tsif initial validation is required, as described on the SPA page.arrayProxy:fieldErrorsrenamed tovalueErrors.- 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
superformClientadapter. The input for the validator functions can now beundefined. - If
superValidateis called with just the schema, the default values aren't validated (i.e. no side-effects for default values) unlesserrorsis set totrue. - Properties with default values don't have
requiredin their constraints anymore. - Form id cannot be
undefinedanymore, must bestring. (Set automatically by default now). flashMessage.onError.messageoption insuperFormrenamed toflashMessage.onError.flashMessage.constraintsare now optional in theSuperValidatedtype, and are returned only when loading data, not posting. This is only relevant if you modify constraints before callingsuperForm.- Removed the
defaultValidatorsoption,'clear'can now be set directly onvalidatorsinstead. - Removed the
emptyIfZerosetting fromnumberProxyandintProxy. validate()called with no arguments is renamed tovalidateForm()and can take two extra options,updateandschema.
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?)andsuperForm.isTainted($tainted)for better tainted fields check. - File upload support! Use
withFileswhen returning in form actions:return withFiles({ form }). - SuperDebug now displays
FileandFileList. - All proxies can now take the whole
superFormobject (previously only theformstore was accepted), with an extrataintoption to prevent tainting. taintedMessagecan now be an async function resolving totrueif navigation should be allowed, despite the form being tainted.- Added an
onChangeevent tosuperForm, that returns a list of modified fields whenever$formis updated. - Added
'zero'to the empty option ofnumberProxyandintProxy. Also addedinitiallyEmptyIfZerooption, to show the placeholder for numeric inputs, which would otherwise display0.
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.12.0
Added
- Support for Zod branded types in schemas. (#286)
- Peer dependencies updated to support SvelteKit 2. (#299)
Fixed
- Tainted fields were set to undefined when not needed, unwantingly triggering client-side validation.
- Schema transformations now updates the form data depending on input type. Checkboxes, radio buttons and selects updates the data immediately. Other inputs waits until blurred. (#298)
- In SPA mode, the
novalidateattribute now only disables the browser validation constraints, not the entire client-side validation. (#297) - Errors thrown in hooks are now handled properly by
onError. Status will always be 500 though. (#292)