@@ -7,7 +7,7 @@ export interface CreateFormObjectOptions<
77 TData extends Record < string , any > ,
88 TSchema extends StandardSchemaV1 ,
99 TAdditionalProps ,
10- TResult = TData ,
10+ TResult extends TData | void = TData ,
1111> {
1212 defaultValues ?: ( ( ) => Partial < TData > ) | undefined
1313 resetDefaultValues ?: ( ( ) => Awaitable < Partial < TData > > ) | undefined
@@ -26,14 +26,15 @@ export type FormObjectChanged<TData> = {
2626
2727export interface FormObjectAdditionalProps <
2828 TData extends Record < string , any > ,
29+ TResult extends TData | void = TData ,
2930> {
3031 $changedProps : FormObjectChanged < TData >
3132 $hasChanges : ( ) => boolean
3233 /**
3334 * @deprecated Use `$onSuccess` instead
3435 */
35- $onSaved : EventHookOn < TData >
36- $onSuccess : EventHookOn < TData >
36+ $onSaved : EventHookOn < TResult >
37+ $onSuccess : EventHookOn < TResult >
3738 $onError : EventHookOn < Error >
3839 $onChange : EventHookOn < FormObjectChanged < TData > >
3940}
@@ -42,7 +43,8 @@ type VueFormObject<
4243 TData extends Record < string , any > ,
4344 TSchema extends StandardSchemaV1 = StandardSchemaV1 ,
4445 TAdditionalProps = Record < string , never > ,
45- > = FormObjectBase < TData , TSchema > & FormObjectAdditionalProps < TData > & TAdditionalProps & Partial < TData > & ( ( ) => Promise < TData > )
46+ TResult extends TData | void = TData ,
47+ > = FormObjectBase < TResult , TSchema > & FormObjectAdditionalProps < TData , TResult > & TAdditionalProps & Partial < TData > & ( ( ) => Promise < TData > )
4648
4749/**
4850 * Object returned by `store.<Collection>.createForm()`
@@ -66,7 +68,8 @@ export function createFormObject<
6668 TData extends Record < string , any > = Record < string , any > ,
6769 TSchema extends StandardSchemaV1 = StandardSchemaV1 ,
6870 const TAdditionalProps = Record < string , never > ,
69- > ( options : CreateFormObjectOptions < TData , TSchema , TAdditionalProps > ) {
71+ TResult extends TData | void = TData ,
72+ > ( options : CreateFormObjectOptions < TData , TSchema , TAdditionalProps , TResult > ) {
7073 let initialData = pickNonSpecialProps ( options . defaultValues ?.( ) ?? { } , true ) as Partial < TData >
7174
7275 const onSuccess = createEventHook ( )
@@ -135,7 +138,7 @@ export function createFormObject<
135138 return this . $onSaved ( ...args )
136139 } ,
137140 $onChange : onChange . on ,
138- } satisfies FormObjectBase < TData , TSchema > & FormObjectAdditionalProps < TData > ) as FormObjectBase < TData , TSchema > & FormObjectAdditionalProps < TData >
141+ } satisfies FormObjectBase < TResult , TSchema > & FormObjectAdditionalProps < TData > ) as FormObjectBase < TResult , TSchema > & FormObjectAdditionalProps < TData >
139142
140143 // On change
141144
@@ -185,7 +188,7 @@ export function createFormObject<
185188 // Validate initially (don't await for it)
186189 queueChange ( )
187190
188- return proxy as VueFormObject < TData , TSchema , TAdditionalProps >
191+ return proxy as VueFormObject < TData , TSchema , TAdditionalProps , TResult >
189192}
190193
191194/**
0 commit comments