Skip to content

Commit 173be02

Browse files
committed
chore: more fixes on types, maybe
1 parent 2392355 commit 173be02

File tree

2 files changed

+126
-122
lines changed

2 files changed

+126
-122
lines changed

packages/svelte-form/src/createFormRune.svelte.ts

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ import type {
1010
FormOptions,
1111
FormValidateOrFn,
1212
} from '@tanstack/form-core'
13-
import type { FieldComponent } from './useField'
13+
import type { FieldComponent } from './types.js'
1414
import type { SvelteFormExtendedApi } from './createForm.svelte'
15-
import { getContext } from 'svelte'
15+
import { Component, getContext, Snippet, SvelteComponent } from 'svelte'
1616

1717
// We should never hit the `null` case here
1818
const fieldContextKey = "__tanstack_field_context_key"
@@ -124,8 +124,8 @@ export function createFormHookContexts() {
124124
}
125125

126126
interface CreateFormHookProps<
127-
TFieldComponents extends Record<string, ComponentType<any>>,
128-
TFormComponents extends Record<string, ComponentType<any>>,
127+
TFieldComponents extends Record<string, Component<any, any>>,
128+
TFormComponents extends Record<string, Component<any, any>>,
129129
> {
130130
fieldComponents: TFieldComponents
131131
fieldContext: Context<AnyFieldApi>
@@ -149,8 +149,8 @@ export type AppFieldExtendedReactFormApi<
149149
TOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData>,
150150
TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>,
151151
TSubmitMeta,
152-
TFieldComponents extends Record<string, ComponentType<any>>,
153-
TFormComponents extends Record<string, ComponentType<any>>,
152+
TFieldComponents extends Record<string, Component<any, any>>,
153+
TFormComponents extends Record<string, Component<any, any>>,
154154
> = SvelteFormExtendedApi<
155155
TFormData,
156156
TOnMount,
@@ -181,7 +181,7 @@ export type AppFieldExtendedReactFormApi<
181181
TSubmitMeta,
182182
NoInfer<TFieldComponents>
183183
>
184-
AppForm: ComponentType<PropsWithChildren>
184+
AppForm: Component<{children: Snippet}>
185185
}
186186

187187
export interface WithFormProps<
@@ -197,8 +197,8 @@ export interface WithFormProps<
197197
TOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TFormData>,
198198
TOnServer extends undefined | FormAsyncValidateOrFn<TFormData>,
199199
TSubmitMeta,
200-
TFieldComponents extends Record<string, ComponentType<any>>,
201-
TFormComponents extends Record<string, ComponentType<any>>,
200+
TFieldComponents extends Record<string, Component<any, any>>,
201+
TFormComponents extends Record<string, Component<any, any>>,
202202
TRenderProps extends object = Record<string, never>,
203203
> extends FormOptions<
204204
TFormData,
@@ -217,7 +217,7 @@ export interface WithFormProps<
217217
// Optional, but adds props to the `render` function outside of `form`
218218
props?: TRenderProps
219219
render: (
220-
props: PropsWithChildren<
220+
props:
221221
NoInfer<TRenderProps> & {
222222
form: AppFieldExtendedReactFormApi<
223223
TFormData,
@@ -234,15 +234,15 @@ export interface WithFormProps<
234234
TSubmitMeta,
235235
TFieldComponents,
236236
TFormComponents
237-
>
237+
>,
238+
children: Snippet
238239
}
239-
>,
240-
) => JSX.Element
240+
) => SvelteComponent
241241
}
242242

243243
export function createFormHook<
244-
const TComponents extends Record<string, ComponentType<any>>,
245-
const TFormComponents extends Record<string, ComponentType<any>>,
244+
const TComponents extends Record<string, Component<any, any>>,
245+
const TFormComponents extends Record<string, Component<any, any>>,
246246
>({
247247
fieldComponents,
248248
fieldContext,

packages/svelte-form/src/types.ts

Lines changed: 111 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,20 @@ export type CreateFieldOptions<
2323
TOnMount extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
2424
TOnChange extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
2525
TOnChangeAsync extends
26-
| undefined
27-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
26+
| undefined
27+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
2828
TOnBlur extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
2929
TOnBlurAsync extends
30-
| undefined
31-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
30+
| undefined
31+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
3232
TOnSubmit extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
3333
TOnSubmitAsync extends
34-
| undefined
35-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
34+
| undefined
35+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
3636
TOnDynamic extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
3737
TOnDynamicAsync extends
38-
| undefined
39-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
38+
| undefined
39+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
4040
TFormOnMount extends undefined | FormValidateOrFn<TParentData>,
4141
TFormOnChange extends undefined | FormValidateOrFn<TParentData>,
4242
TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn<TParentData>,
@@ -123,6 +123,7 @@ export type FieldComponent<
123123
TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TParentData>,
124124
TFormOnServer extends undefined | FormAsyncValidateOrFn<TParentData>,
125125
TParentSubmitMeta,
126+
ExtendedApi = {},
126127
> =
127128
// This giant type allows the type
128129
// - to be used as a function (which they are now in Svelte 5)
@@ -135,20 +136,20 @@ export type FieldComponent<
135136
TOnMount extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
136137
TOnChange extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
137138
TOnChangeAsync extends
138-
| undefined
139-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
139+
| undefined
140+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
140141
TOnBlur extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
141142
TOnBlurAsync extends
142-
| undefined
143-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
143+
| undefined
144+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
144145
TOnSubmit extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
145146
TOnSubmitAsync extends
146-
| undefined
147-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
147+
| undefined
148+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
148149
TOnDynamic extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
149150
TOnDynamicAsync extends
150-
| undefined
151-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
151+
| undefined
152+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
152153
>(
153154
internal: any,
154155
{
@@ -178,70 +179,72 @@ export type FieldComponent<
178179
TFormOnDynamic,
179180
TFormOnDynamicAsync,
180181
TFormOnServer,
181-
TParentSubmitMeta
182+
TParentSubmitMeta,
183+
ExtendedApi
182184
>,
183185
'form'
184186
>,
185187
) => {}) &
186-
(new <
187-
TName extends DeepKeys<TParentData>,
188-
TData extends DeepValue<TParentData, TName>,
189-
TOnMount extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
190-
TOnChange extends
191-
| undefined
192-
| FieldValidateOrFn<TParentData, TName, TData>,
193-
TOnChangeAsync extends
194-
| undefined
195-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
196-
TOnBlur extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
197-
TOnBlurAsync extends
198-
| undefined
199-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
200-
TOnSubmit extends
201-
| undefined
202-
| FieldValidateOrFn<TParentData, TName, TData>,
203-
TOnSubmitAsync extends
204-
| undefined
205-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
206-
TOnDynamic extends
207-
| undefined
208-
| FieldValidateOrFn<TParentData, TName, TData>,
209-
TOnDynamicAsync extends
210-
| undefined
211-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
212-
>(
213-
opts: ComponentConstructorOptions<
214-
Omit<
215-
FieldComponentProps<
216-
TParentData,
217-
TName,
218-
TData,
219-
TOnMount,
220-
TOnChange,
221-
TOnChangeAsync,
222-
TOnBlur,
223-
TOnBlurAsync,
224-
TOnSubmit,
225-
TOnSubmitAsync,
226-
TOnDynamic,
227-
TOnDynamicAsync,
228-
TFormOnMount,
229-
TFormOnChange,
230-
TFormOnChangeAsync,
231-
TFormOnBlur,
232-
TFormOnBlurAsync,
233-
TFormOnSubmit,
234-
TFormOnSubmitAsync,
235-
TFormOnDynamic,
236-
TFormOnDynamicAsync,
237-
TFormOnServer,
238-
TParentSubmitMeta
239-
>,
240-
'form'
241-
>
242-
>,
243-
) => SvelteComponent) &
244-
WithoutFunction<Component>
188+
(new <
189+
TName extends DeepKeys<TParentData>,
190+
TData extends DeepValue<TParentData, TName>,
191+
TOnMount extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
192+
TOnChange extends
193+
| undefined
194+
| FieldValidateOrFn<TParentData, TName, TData>,
195+
TOnChangeAsync extends
196+
| undefined
197+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
198+
TOnBlur extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
199+
TOnBlurAsync extends
200+
| undefined
201+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
202+
TOnSubmit extends
203+
| undefined
204+
| FieldValidateOrFn<TParentData, TName, TData>,
205+
TOnSubmitAsync extends
206+
| undefined
207+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
208+
TOnDynamic extends
209+
| undefined
210+
| FieldValidateOrFn<TParentData, TName, TData>,
211+
TOnDynamicAsync extends
212+
| undefined
213+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
214+
>(
215+
opts: ComponentConstructorOptions<
216+
Omit<
217+
FieldComponentProps<
218+
TParentData,
219+
TName,
220+
TData,
221+
TOnMount,
222+
TOnChange,
223+
TOnChangeAsync,
224+
TOnBlur,
225+
TOnBlurAsync,
226+
TOnSubmit,
227+
TOnSubmitAsync,
228+
TOnDynamic,
229+
TOnDynamicAsync,
230+
TFormOnMount,
231+
TFormOnChange,
232+
TFormOnChangeAsync,
233+
TFormOnBlur,
234+
TFormOnBlurAsync,
235+
TFormOnSubmit,
236+
TFormOnSubmitAsync,
237+
TFormOnDynamic,
238+
TFormOnDynamicAsync,
239+
TFormOnServer,
240+
TParentSubmitMeta,
241+
ExtendedApi
242+
>,
243+
'form'
244+
>
245+
>,
246+
) => SvelteComponent) &
247+
WithoutFunction<Component>
245248

246249
type FieldComponentProps<
247250
TParentData,
@@ -250,20 +253,20 @@ type FieldComponentProps<
250253
TOnMount extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
251254
TOnChange extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
252255
TOnChangeAsync extends
253-
| undefined
254-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
256+
| undefined
257+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
255258
TOnBlur extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
256259
TOnBlurAsync extends
257-
| undefined
258-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
260+
| undefined
261+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
259262
TOnSubmit extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
260263
TOnSubmitAsync extends
261-
| undefined
262-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
264+
| undefined
265+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
263266
TOnDynamic extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
264267
TOnDynamicAsync extends
265-
| undefined
266-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
268+
| undefined
269+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
267270
TFormOnMount extends undefined | FormValidateOrFn<TParentData>,
268271
TFormOnChange extends undefined | FormValidateOrFn<TParentData>,
269272
TFormOnChangeAsync extends undefined | FormAsyncValidateOrFn<TParentData>,
@@ -275,6 +278,7 @@ type FieldComponentProps<
275278
TFormOnDynamicAsync extends undefined | FormAsyncValidateOrFn<TParentData>,
276279
TFormOnServer extends undefined | FormAsyncValidateOrFn<TParentData>,
277280
TParentSubmitMeta,
281+
ExtendedApi = {},
278282
> = {
279283
children: Snippet<
280284
[
@@ -302,7 +306,7 @@ type FieldComponentProps<
302306
TFormOnDynamicAsync,
303307
TFormOnServer,
304308
TParentSubmitMeta
305-
>,
309+
> & ExtendedApi,
306310
]
307311
>
308312
} & Omit<
@@ -353,20 +357,20 @@ export type CreateField<
353357
TOnMount extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
354358
TOnChange extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
355359
TOnChangeAsync extends
356-
| undefined
357-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
360+
| undefined
361+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
358362
TOnBlur extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
359363
TOnBlurAsync extends
360-
| undefined
361-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
364+
| undefined
365+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
362366
TOnSubmit extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
363367
TOnSubmitAsync extends
364-
| undefined
365-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
368+
| undefined
369+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
366370
TOnDynamic extends undefined | FieldValidateOrFn<TParentData, TName, TData>,
367371
TOnDynamicAsync extends
368-
| undefined
369-
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
372+
| undefined
373+
| FieldAsyncValidateOrFn<TParentData, TName, TData>,
370374
TSubmitMeta,
371375
>(
372376
opts: () => { name: Narrow<TName> } & Omit<
@@ -422,17 +426,17 @@ export type CreateField<
422426
TFormOnServer,
423427
TParentSubmitMeta
424428
> &
425-
SvelteFieldApi<
426-
TParentData,
427-
TFormOnMount,
428-
TFormOnChange,
429-
TFormOnChangeAsync,
430-
TFormOnBlur,
431-
TFormOnBlurAsync,
432-
TFormOnSubmit,
433-
TFormOnSubmitAsync,
434-
TFormOnDynamic,
435-
TFormOnDynamicAsync,
436-
TFormOnServer,
437-
TParentSubmitMeta
438-
>
429+
SvelteFieldApi<
430+
TParentData,
431+
TFormOnMount,
432+
TFormOnChange,
433+
TFormOnChangeAsync,
434+
TFormOnBlur,
435+
TFormOnBlurAsync,
436+
TFormOnSubmit,
437+
TFormOnSubmitAsync,
438+
TFormOnDynamic,
439+
TFormOnDynamicAsync,
440+
TFormOnServer,
441+
TParentSubmitMeta
442+
>

0 commit comments

Comments
 (0)