Releases: ciscoheat/sveltekit-superforms
Releases Β· ciscoheat/sveltekit-superforms
v1.1.2
v1.1.1
v1.1.0
Added
- Support for
Set
in schemas, usingz.set()
.
Fixed
- Nested array and object-level errors are now all cleared on a successful client-side validation. (#196)
- Boolean fields with a default value of
true
always returnedtrue
when validating. - Fixed infinite deep type instantiation on
message
. (#143, thanks to Alisson Cavalcante Agiani) - Fixed typesVersions map that caused incorrect auto-import paths (#191, thanks to CokaKoala)
v1.0.0
Changed
- It's not possible to send arbitrary data to
superForm
anymore, aSuperValidated
structure is required, which is returned fromsuperValidate
on the server andsuperValidateSync
, so in most cases this is not a problem. message/setMessage
andsetError
can only set a status in the range400-599
.- As with a Zod schema with
refine/superRefine/transform
, array and object validation now forces the whole Zod schema to be validated client-side, not just per field. - The
Validation
type is now calledSuperValidated
. StringPath
andStringPathLeaves
are renamed toFormPath
andFormPathLeaves
.
Removed
- The
valid
option is removed frommessage
, any status >= 400 will return a fail. - The
$valid
,$empty
and$firstError
stores are removed from the client, they weren't that useful.allErrors
can be used instead, together with the$posted
store. empty
is removed fromSuperForm
.options.noErrors
is removed. Useoptions.errors
instead.- The virtually unused
meta
has been removed. Use the Zod schema directly instead for reflection.
Fixed
- When a redirect response is received, form timers will not reset until after navigation or
onDestroy
. - Fixed prototype mismatch for Zod schemas from different modules.
- SuperDebug color scheme updated. (Thanks to gregorymcmillan)
- Fixed flash messages being displayed early. This update also means that at least sveltekit-flash-message 1.0.0 is required to work together with Superforms.
- Form data was reset to its previous state when
error
was thrown. - Form-level errors can be added with
setError
, using an empty string as path. - Explicitly setting a form
id
for multiple forms is not required anymore when usinguse:enhance
, unless the forms are using the same schema. An id can be specified in the options or in a hidden form field called__superform_id
. FieldPath
is gone - the following methods are now using a string accessor liketags[2].id
instead of an array like['tags', 2, 'id']
:validate
,setError
and all proxy methods (ending withProxy
). This also applies to generic components.- The signature for
allErrors
andfirstError
has changed to{ path: string; messages: string[] }
. - The literal
"any"
is now an allowed value instep
for constraints. - Multiple
regex
andstep
are now allowed on a schema field. A warning will be emitted by default, that can be turned off. - The signature for
options.resetForm
has changed toboolean | () => boolean
(it was async before). - The undocumented
defaultData
is now calleddefaultValues
. - Added
[aria-invalid="true"]
toerrorSelector
option. options.resetForm
now works withoutuse:enhance
!- Fixed deprecation notices for
use:enhance
.
Added
- New Superforms domain! https://superforms.rocks
- Added
superValidateSync
, useful in components for SPA:s. - Added
defaultValues
, which takes a schema and returns the default values for it. - Support for
ZodPipeline
. - Arrays and objects in the schema can now have errors! They can be found at
field._errors
in the$errors
store. validate
will now validate the whole form when it's called with no arguments.- Support for
passthrough()
on a schema,superValidate
will allow extra keys in that case. - Added a
posted
store, a boolean which is false if the form hasn't been posted during its current lifetime. reset
now has an additionaldata
option that can be used to re-populate the form with data, andid
to set a different form id.intProxy
,numberProxy
,dateProxy
andstringProxy
now have anempty
option, so empty values can be set tonull
orundefined
.
v1.0.0-rc.4
Read the announcement and migration guide here.
Changed
- It's not possible to send arbitrary data to
superForm
anymore, aSuperValidated
structure is required, which is returned fromsuperValidate
on the server andsuperValidateSync
, so in most cases this is not a problem. - Reverted that
message/setMessage
andsetError
will throw an error if status is lower than 400. Using a range error type check instead.
Fixed
- Fixed flash messages being displayed early. This update also means that at least sveltekit-flash-message 1.0.0-rc.3 is required to work together with Superforms.
- Form data was reset to its previous state when
error
was thrown. - Form-level errors can be added with
setError
, using an empty string as path.
v1.0.0-rc.3
The third and final RC for Superforms 1.0 has been released!
Read the announcement and migration guide here.
Removed
- For type safety, you cannot send
null
orundefined
tosuperForm
anymore. UsesuperValidate
, or pass a complete data object tosuperForm
. Default values can be added with thedefaultValues
function. - The
valid
option is removed frommessage
, any status >= 400 will return a fail.
Changed
message/setMessage
andsetError
will now throw an error if the status option is below 400.
Added
- Arrays and objects in the schema can now have errors! They can be found at
field._errors
in the$errors
store. validate
will now validate the whole form when it's called with no arguments.- Support for
passthrough()
on a schema,superValidate
will allow extra keys in that case.
v1.0.0-rc.2
Read the announcement and migration guide here: https://github.com/ciscoheat/sveltekit-superforms/discussions/168
Changed
- The
Validation
type is now calledSuperValidated
. StringPath
andStringPathLeaves
are renamed toFormPath
andFormPathLeaves
.
Removed
- The
$valid
,$empty
and$firstError
stores are removed from the client, they weren't that useful.allErrors
can be used instead, together with the$posted
store. empty
is removed fromSuperForm
Fixed
- Async validation works again for custom validators and
superValidate
.
Added
- Added a
posted
store, a boolean which is false if the form hasn't been posted during its current lifetime. reset
now has an additionaldata
option that can be used to re-populate the form with data, andid
to set a different form id.intProxy
,numberProxy
,dateProxy
andstringProxy
now have anempty
option, so empty values can be set tonull
orundefined
.
v1.0.0-rc.1
Read the announcement and migration guide here: https://github.com/ciscoheat/sveltekit-superforms/discussions/168
Changed
- Explicitly setting a form
id
for multiple forms is not required anymore when usinguse:enhance
, unless the forms are using the same schema. An id can be specified in the options or in a hidden form field called__superform_id
. setError
doesn't handle form-level errors anymore, use refine/superRefine on the schema, or themessage
helper.FieldPath
is gone - the following methods are now using a string accessor liketags[2].id
instead of an array like['tags', 2, 'id']
:validate
,setError
and all proxy methods (ending withProxy
). This also applies to generic components.- The signature for
allErrors
andfirstError
has changed to{ path: string; messages: string[] }
. - The literal
"any"
is now an allowed value instep
for constraints. - Multiple
regex
andstep
is now allowed in a schema. A warning will be emitted by default, that can be turned off. - The signature for
options.resetForm
has changed toboolean | () => boolean
(it was async before). - The undocumented
defaultData
is now calleddefaultValues
. - Added
[aria-invalid="true"]
toerrorSelector
option. options.resetForm
now works withoutuse:enhance
!
Removed
options.noErrors
is removed. Useoptions.errors
instead.- The virtually unused
meta
has been removed. Use the Zod schema directly instead for reflection.
Fixed
- Fixed deprecation notices for
use:enhance
.
Added
- Added
superValidateSync
, useful in components for SPA:s. - Added
defaultValues
, which takes a schema and returns the default values for it. - Support for
ZodPipeline
.
v0.8.7
[0.8.7] - 2023-05-22
Fixed
onUpdate
didn't cancelapplyAction
andinvalidateAll
.- Hopefully fixed excessively deep infinity type instantiation on
message
helper. - Removed
errors.clear
optional parameterundefinePath
, which was left there by mistake.
Added
onUpdate
now hasformEl
in its signature.