@inertiajs/core 2.1.0 → 2.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +190 -13
- package/dist/index.esm.js.map +3 -3
- package/dist/index.js +190 -13
- package/dist/index.js.map +3 -3
- package/package.json +1 -1
- package/types/index.d.ts +2 -1
- package/types/prefetched.d.ts +3 -1
- package/types/requestParams.d.ts +1 -0
- package/types/resetFormFields.d.ts +1 -0
- package/types/router.d.ts +17 -16
- package/types/types.d.ts +101 -44
- package/types/url.d.ts +5 -2
package/package.json
CHANGED
package/types/index.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Router } from './router';
|
|
2
2
|
export { objectToFormData } from './formData';
|
|
3
3
|
export { formDataToObject } from './formObject';
|
|
4
|
+
export { resetFormFields } from './resetFormFields';
|
|
4
5
|
export { default as createHeadManager } from './head';
|
|
5
6
|
export { hide as hideProgress, reveal as revealProgress, default as setupProgress } from './progress';
|
|
6
7
|
export { default as shouldIntercept } from './shouldIntercept';
|
|
7
8
|
export * from './types';
|
|
8
|
-
export { hrefToUrl, mergeDataIntoQueryString, urlWithoutHash } from './url';
|
|
9
|
+
export { hrefToUrl, mergeDataIntoQueryString, urlWithoutHash, isUrlMethodPair } from './url';
|
|
9
10
|
export { type Router };
|
|
10
11
|
export declare const router: Router;
|
package/types/prefetched.d.ts
CHANGED
|
@@ -5,9 +5,11 @@ declare class PrefetchedRequests {
|
|
|
5
5
|
protected inFlightRequests: InFlightPrefetch[];
|
|
6
6
|
protected removalTimers: PrefetchRemovalTimer[];
|
|
7
7
|
protected currentUseId: string | null;
|
|
8
|
-
add(params: ActiveVisit, sendFunc: (params: InternalActiveVisit) => void, { cacheFor }: PrefetchOptions): Promise<void> | Promise<Response>;
|
|
8
|
+
add(params: ActiveVisit, sendFunc: (params: InternalActiveVisit) => void, { cacheFor, cacheTags }: PrefetchOptions): Promise<void> | Promise<Response>;
|
|
9
9
|
removeAll(): void;
|
|
10
|
+
removeByTags(tags: string[]): void;
|
|
10
11
|
remove(params: ActiveVisit): void;
|
|
12
|
+
protected removeFromInFlight(params: ActiveVisit): void;
|
|
11
13
|
protected extractStaleValues(cacheFor: PrefetchOptions['cacheFor']): [number, number];
|
|
12
14
|
protected cacheForToStaleAndExpires(cacheFor: PrefetchOptions['cacheFor']): [CacheForOption, CacheForOption];
|
|
13
15
|
protected clearTimer(params: ActiveVisit): void;
|
package/types/requestParams.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export declare class RequestParams {
|
|
|
23
23
|
onStart(): void;
|
|
24
24
|
onPrefetching(): void;
|
|
25
25
|
onPrefetchResponse(response: Response): void;
|
|
26
|
+
onPrefetchError(error: Error): void;
|
|
26
27
|
all(): InternalActiveVisit;
|
|
27
28
|
headers(): AxiosRequestConfig['headers'];
|
|
28
29
|
setPreserveOptions(page: Page): void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function resetFormFields(formElement: HTMLFormElement, defaults: FormData, fieldNames?: string[]): void;
|
package/types/router.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { RequestStream } from './requestStream';
|
|
2
|
-
import { ActiveVisit, ClientSideVisitOptions, Component, GlobalEvent, GlobalEventNames, GlobalEventResult, InFlightPrefetch, Page, PendingVisit, PendingVisitOptions, PollOptions, PrefetchedResponse, PrefetchOptions, ReloadOptions, RequestPayload, RouterInitParams,
|
|
2
|
+
import { ActiveVisit, ClientSideVisitOptions, Component, GlobalEvent, GlobalEventNames, GlobalEventResult, InFlightPrefetch, Page, PendingVisit, PendingVisitOptions, PollOptions, PrefetchedResponse, PrefetchOptions, ReloadOptions, RequestPayload, RouterInitParams, UrlMethodPair, VisitCallbacks, VisitHelperOptions, VisitOptions } from './types';
|
|
3
3
|
export declare class Router {
|
|
4
4
|
protected syncRequestStream: RequestStream;
|
|
5
5
|
protected asyncRequestStream: RequestStream;
|
|
6
6
|
init({ initialPage, resolveComponent, swapComponent }: RouterInitParams): void;
|
|
7
|
-
get<T extends RequestPayload = RequestPayload>(url: URL | string, data?: T, options?: VisitHelperOptions<T>): void;
|
|
8
|
-
post<T extends RequestPayload = RequestPayload>(url: URL | string, data?: T, options?: VisitHelperOptions<T>): void;
|
|
9
|
-
put<T extends RequestPayload = RequestPayload>(url: URL | string, data?: T, options?: VisitHelperOptions<T>): void;
|
|
10
|
-
patch<T extends RequestPayload = RequestPayload>(url: URL | string, data?: T, options?: VisitHelperOptions<T>): void;
|
|
11
|
-
delete<T extends RequestPayload = RequestPayload>(url: URL | string, options?: Omit<VisitOptions<T>, 'method'>): void;
|
|
7
|
+
get<T extends RequestPayload = RequestPayload>(url: URL | string | UrlMethodPair, data?: T, options?: VisitHelperOptions<T>): void;
|
|
8
|
+
post<T extends RequestPayload = RequestPayload>(url: URL | string | UrlMethodPair, data?: T, options?: VisitHelperOptions<T>): void;
|
|
9
|
+
put<T extends RequestPayload = RequestPayload>(url: URL | string | UrlMethodPair, data?: T, options?: VisitHelperOptions<T>): void;
|
|
10
|
+
patch<T extends RequestPayload = RequestPayload>(url: URL | string | UrlMethodPair, data?: T, options?: VisitHelperOptions<T>): void;
|
|
11
|
+
delete<T extends RequestPayload = RequestPayload>(url: URL | string | UrlMethodPair, options?: Omit<VisitOptions<T>, 'method'>): void;
|
|
12
12
|
reload<T extends RequestPayload = RequestPayload>(options?: ReloadOptions<T>): void;
|
|
13
13
|
remember(data: unknown, key?: string): void;
|
|
14
14
|
restore(key?: string): unknown;
|
|
@@ -19,22 +19,23 @@ export declare class Router {
|
|
|
19
19
|
stop: VoidFunction;
|
|
20
20
|
start: VoidFunction;
|
|
21
21
|
};
|
|
22
|
-
visit<T extends RequestPayload = RequestPayload>(href: string | URL, options?: VisitOptions<T>): void;
|
|
23
|
-
getCached(href: string | URL, options?: VisitOptions): InFlightPrefetch | PrefetchedResponse | null;
|
|
24
|
-
flush(href: string | URL, options?: VisitOptions): void;
|
|
22
|
+
visit<T extends RequestPayload = RequestPayload>(href: string | URL | UrlMethodPair, options?: VisitOptions<T>): void;
|
|
23
|
+
getCached(href: string | URL | UrlMethodPair, options?: VisitOptions): InFlightPrefetch | PrefetchedResponse | null;
|
|
24
|
+
flush(href: string | URL | UrlMethodPair, options?: VisitOptions): void;
|
|
25
25
|
flushAll(): void;
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
flushByCacheTags(tags: string | string[]): void;
|
|
27
|
+
getPrefetching(href: string | URL | UrlMethodPair, options?: VisitOptions): InFlightPrefetch | PrefetchedResponse | null;
|
|
28
|
+
prefetch(href: string | URL | UrlMethodPair, options?: VisitOptions, prefetchOptions?: Partial<PrefetchOptions>): void;
|
|
28
29
|
clearHistory(): void;
|
|
29
30
|
decryptHistory(): Promise<Page>;
|
|
30
31
|
resolveComponent(component: string): Promise<Component>;
|
|
31
|
-
replace(params: ClientSideVisitOptions): void;
|
|
32
|
-
push(params: ClientSideVisitOptions): void;
|
|
33
|
-
protected clientVisit(params: ClientSideVisitOptions
|
|
32
|
+
replace<TProps = Page['props']>(params: ClientSideVisitOptions<TProps>): void;
|
|
33
|
+
push<TProps = Page['props']>(params: ClientSideVisitOptions<TProps>): void;
|
|
34
|
+
protected clientVisit<TProps = Page['props']>(params: ClientSideVisitOptions<TProps>, { replace }?: {
|
|
34
35
|
replace?: boolean;
|
|
35
36
|
}): void;
|
|
36
|
-
protected getPrefetchParams(href: string | URL, options: VisitOptions): ActiveVisit;
|
|
37
|
-
protected getPendingVisit(href: string | URL, options: VisitOptions, pendingVisitOptions?: Partial<PendingVisitOptions>): PendingVisit;
|
|
37
|
+
protected getPrefetchParams(href: string | URL | UrlMethodPair, options: VisitOptions): ActiveVisit;
|
|
38
|
+
protected getPendingVisit(href: string | URL | UrlMethodPair, options: VisitOptions, pendingVisitOptions?: Partial<PendingVisitOptions>): PendingVisit;
|
|
38
39
|
protected getVisitEvents(options: VisitOptions): VisitCallbacks;
|
|
39
40
|
protected loadDeferredProps(): void;
|
|
40
41
|
}
|
package/types/types.d.ts
CHANGED
|
@@ -5,13 +5,49 @@ declare module 'axios' {
|
|
|
5
5
|
percentage: number | undefined;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
export type
|
|
8
|
+
export type DefaultInertiaConfig = {
|
|
9
|
+
errorValueType: string;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Designed to allow overriding of some core types using TypeScript
|
|
13
|
+
* interface declaration merging.
|
|
14
|
+
*
|
|
15
|
+
* @see {@link DefaultInertiaConfig} for keys to override
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* declare module '@inertiajs/core' {
|
|
19
|
+
* export interface InertiaConfig {
|
|
20
|
+
* errorValueType: string[]
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export interface InertiaConfig {
|
|
26
|
+
}
|
|
27
|
+
export type InertiaConfigFor<Key extends keyof DefaultInertiaConfig> = Key extends keyof InertiaConfig ? InertiaConfig[Key] : DefaultInertiaConfig[Key];
|
|
28
|
+
export type ErrorValue = InertiaConfigFor<'errorValueType'>;
|
|
29
|
+
export type Errors = Record<string, ErrorValue>;
|
|
9
30
|
export type ErrorBag = Record<string, Errors>;
|
|
31
|
+
export type FormDataConvertibleValue = Blob | FormDataEntryValue | Date | boolean | number | null | undefined;
|
|
10
32
|
export type FormDataConvertible = Array<FormDataConvertible> | {
|
|
11
33
|
[key: string]: FormDataConvertible;
|
|
12
|
-
} |
|
|
13
|
-
export type
|
|
14
|
-
|
|
34
|
+
} | FormDataConvertibleValue;
|
|
35
|
+
export type FormDataType<T extends object> = {
|
|
36
|
+
[K in keyof T]: T[K] extends FormDataConvertibleValue ? T[K] : T[K] extends (...args: unknown[]) => unknown ? never : T[K] extends object | Array<unknown> ? FormDataType<T[K]> : never;
|
|
37
|
+
};
|
|
38
|
+
export type FormDataKeys<T> = T extends Function | FormDataConvertibleValue ? never : T extends Array<unknown> ? number extends T['length'] ? `${number}` | `${number}.${FormDataKeys<T[number]>}` : Extract<keyof T, `${number}`> | {
|
|
39
|
+
[Key in Extract<keyof T, `${number}`>]: `${Key & string}.${FormDataKeys<T[Key & string]> & string}`;
|
|
40
|
+
}[Extract<keyof T, `${number}`>] : string extends keyof T ? string : Extract<keyof T, string> | {
|
|
41
|
+
[Key in Extract<keyof T, string>]: `${Key}.${FormDataKeys<T[Key]> & string}`;
|
|
42
|
+
}[Extract<keyof T, string>];
|
|
43
|
+
type PartialFormDataErrors<T> = {
|
|
44
|
+
[K in string extends keyof T ? string : Extract<keyof FormDataError<T>, string>]?: ErrorValue;
|
|
45
|
+
};
|
|
46
|
+
export type FormDataErrors<T> = PartialFormDataErrors<T> & {
|
|
47
|
+
[K in keyof PartialFormDataErrors<T>]: NonNullable<PartialFormDataErrors<T>[K]>;
|
|
48
|
+
};
|
|
49
|
+
export type FormDataValues<T, K extends FormDataKeys<T>> = K extends `${infer P}.${infer Rest}` ? T extends unknown[] ? P extends `${infer I extends number}` ? Rest extends FormDataKeys<T[I]> ? FormDataValues<T[I], Rest> : never : never : P extends keyof T ? Rest extends FormDataKeys<T[P]> ? FormDataValues<T[P], Rest> : never : never : K extends keyof T ? T[K] : T extends unknown[] ? T[K & number] : never;
|
|
50
|
+
export type FormDataError<T> = Partial<Record<FormDataKeys<T>, ErrorValue>>;
|
|
15
51
|
export type Method = 'get' | 'post' | 'put' | 'patch' | 'delete';
|
|
16
52
|
export type RequestPayload = Record<string, FormDataConvertible> | FormData;
|
|
17
53
|
export interface PageProps {
|
|
@@ -38,17 +74,17 @@ export type ScrollRegion = {
|
|
|
38
74
|
top: number;
|
|
39
75
|
left: number;
|
|
40
76
|
};
|
|
41
|
-
export interface ClientSideVisitOptions {
|
|
77
|
+
export interface ClientSideVisitOptions<TProps = Page['props']> {
|
|
42
78
|
component?: Page['component'];
|
|
43
79
|
url?: Page['url'];
|
|
44
|
-
props?: ((props:
|
|
80
|
+
props?: ((props: TProps) => PageProps) | PageProps;
|
|
45
81
|
clearHistory?: Page['clearHistory'];
|
|
46
82
|
encryptHistory?: Page['encryptHistory'];
|
|
47
83
|
preserveScroll?: VisitOptions['preserveScroll'];
|
|
48
84
|
preserveState?: VisitOptions['preserveState'];
|
|
49
85
|
errorBag?: string | null;
|
|
50
86
|
onError?: (errors: Errors) => void;
|
|
51
|
-
onFinish?: (visit: ClientSideVisitOptions) => void;
|
|
87
|
+
onFinish?: (visit: ClientSideVisitOptions<TProps>) => void;
|
|
52
88
|
onSuccess?: (page: Page) => void;
|
|
53
89
|
}
|
|
54
90
|
export type PageResolver = (name: string) => Component;
|
|
@@ -80,19 +116,20 @@ export type Visit<T extends RequestPayload = RequestPayload> = {
|
|
|
80
116
|
fresh: boolean;
|
|
81
117
|
reset: string[];
|
|
82
118
|
preserveUrl: boolean;
|
|
119
|
+
invalidateCacheTags: string | string[];
|
|
83
120
|
};
|
|
84
|
-
export type GlobalEventsMap = {
|
|
121
|
+
export type GlobalEventsMap<T extends RequestPayload = RequestPayload> = {
|
|
85
122
|
before: {
|
|
86
|
-
parameters: [PendingVisit];
|
|
123
|
+
parameters: [PendingVisit<T>];
|
|
87
124
|
details: {
|
|
88
|
-
visit: PendingVisit
|
|
125
|
+
visit: PendingVisit<T>;
|
|
89
126
|
};
|
|
90
127
|
result: boolean | void;
|
|
91
128
|
};
|
|
92
129
|
start: {
|
|
93
|
-
parameters: [PendingVisit];
|
|
130
|
+
parameters: [PendingVisit<T>];
|
|
94
131
|
details: {
|
|
95
|
-
visit: PendingVisit
|
|
132
|
+
visit: PendingVisit<T>;
|
|
96
133
|
};
|
|
97
134
|
result: void;
|
|
98
135
|
};
|
|
@@ -104,9 +141,9 @@ export type GlobalEventsMap = {
|
|
|
104
141
|
result: void;
|
|
105
142
|
};
|
|
106
143
|
finish: {
|
|
107
|
-
parameters: [ActiveVisit];
|
|
144
|
+
parameters: [ActiveVisit<T>];
|
|
108
145
|
details: {
|
|
109
|
-
visit: ActiveVisit
|
|
146
|
+
visit: ActiveVisit<T>;
|
|
110
147
|
};
|
|
111
148
|
result: void;
|
|
112
149
|
};
|
|
@@ -151,48 +188,48 @@ export type GlobalEventsMap = {
|
|
|
151
188
|
result: boolean | void;
|
|
152
189
|
};
|
|
153
190
|
prefetched: {
|
|
154
|
-
parameters: [AxiosResponse, ActiveVisit];
|
|
191
|
+
parameters: [AxiosResponse, ActiveVisit<T>];
|
|
155
192
|
details: {
|
|
156
193
|
response: AxiosResponse;
|
|
157
194
|
fetchedAt: number;
|
|
158
|
-
visit: ActiveVisit
|
|
195
|
+
visit: ActiveVisit<T>;
|
|
159
196
|
};
|
|
160
197
|
result: void;
|
|
161
198
|
};
|
|
162
199
|
prefetching: {
|
|
163
|
-
parameters: [ActiveVisit];
|
|
200
|
+
parameters: [ActiveVisit<T>];
|
|
164
201
|
details: {
|
|
165
|
-
visit: ActiveVisit
|
|
202
|
+
visit: ActiveVisit<T>;
|
|
166
203
|
};
|
|
167
204
|
result: void;
|
|
168
205
|
};
|
|
169
206
|
};
|
|
170
207
|
export type PageEvent = 'newComponent' | 'firstLoad';
|
|
171
|
-
export type GlobalEventNames = keyof GlobalEventsMap
|
|
172
|
-
export type GlobalEvent<TEventName extends GlobalEventNames> = CustomEvent<GlobalEventDetails<TEventName>>;
|
|
173
|
-
export type GlobalEventParameters<TEventName extends GlobalEventNames> = GlobalEventsMap[TEventName]['parameters'];
|
|
174
|
-
export type GlobalEventResult<TEventName extends GlobalEventNames> = GlobalEventsMap[TEventName]['result'];
|
|
175
|
-
export type GlobalEventDetails<TEventName extends GlobalEventNames> = GlobalEventsMap[TEventName]['details'];
|
|
176
|
-
export type GlobalEventTrigger<TEventName extends GlobalEventNames> = (...params: GlobalEventParameters<TEventName>) => GlobalEventResult<TEventName>;
|
|
177
|
-
export type GlobalEventCallback<TEventName extends GlobalEventNames> = (...params: GlobalEventParameters<TEventName>) => GlobalEventResult<TEventName>;
|
|
208
|
+
export type GlobalEventNames<T extends RequestPayload = RequestPayload> = keyof GlobalEventsMap<T>;
|
|
209
|
+
export type GlobalEvent<TEventName extends GlobalEventNames<T>, T extends RequestPayload = RequestPayload> = CustomEvent<GlobalEventDetails<TEventName, T>>;
|
|
210
|
+
export type GlobalEventParameters<TEventName extends GlobalEventNames<T>, T extends RequestPayload = RequestPayload> = GlobalEventsMap<T>[TEventName]['parameters'];
|
|
211
|
+
export type GlobalEventResult<TEventName extends GlobalEventNames<T>, T extends RequestPayload = RequestPayload> = GlobalEventsMap<T>[TEventName]['result'];
|
|
212
|
+
export type GlobalEventDetails<TEventName extends GlobalEventNames<T>, T extends RequestPayload = RequestPayload> = GlobalEventsMap<T>[TEventName]['details'];
|
|
213
|
+
export type GlobalEventTrigger<TEventName extends GlobalEventNames<T>, T extends RequestPayload = RequestPayload> = (...params: GlobalEventParameters<TEventName, T>) => GlobalEventResult<TEventName, T>;
|
|
214
|
+
export type GlobalEventCallback<TEventName extends GlobalEventNames<T>, T extends RequestPayload = RequestPayload> = (...params: GlobalEventParameters<TEventName, T>) => GlobalEventResult<TEventName, T>;
|
|
178
215
|
export type InternalEvent = 'missingHistoryItem' | 'loadDeferredProps';
|
|
179
|
-
export type VisitCallbacks = {
|
|
216
|
+
export type VisitCallbacks<T extends RequestPayload = RequestPayload> = {
|
|
180
217
|
onCancelToken: {
|
|
181
218
|
({ cancel }: {
|
|
182
219
|
cancel: VoidFunction;
|
|
183
220
|
}): void;
|
|
184
221
|
};
|
|
185
|
-
onBefore: GlobalEventCallback<'before'>;
|
|
186
|
-
onStart: GlobalEventCallback<'start'>;
|
|
187
|
-
onProgress: GlobalEventCallback<'progress'>;
|
|
188
|
-
onFinish: GlobalEventCallback<'finish'>;
|
|
189
|
-
onCancel: GlobalEventCallback<'cancel'>;
|
|
190
|
-
onSuccess: GlobalEventCallback<'success'>;
|
|
191
|
-
onError: GlobalEventCallback<'error'>;
|
|
192
|
-
onPrefetched: GlobalEventCallback<'prefetched'>;
|
|
193
|
-
onPrefetching: GlobalEventCallback<'prefetching'>;
|
|
222
|
+
onBefore: GlobalEventCallback<'before', T>;
|
|
223
|
+
onStart: GlobalEventCallback<'start', T>;
|
|
224
|
+
onProgress: GlobalEventCallback<'progress', T>;
|
|
225
|
+
onFinish: GlobalEventCallback<'finish', T>;
|
|
226
|
+
onCancel: GlobalEventCallback<'cancel', T>;
|
|
227
|
+
onSuccess: GlobalEventCallback<'success', T>;
|
|
228
|
+
onError: GlobalEventCallback<'error', T>;
|
|
229
|
+
onPrefetched: GlobalEventCallback<'prefetched', T>;
|
|
230
|
+
onPrefetching: GlobalEventCallback<'prefetching', T>;
|
|
194
231
|
};
|
|
195
|
-
export type VisitOptions<T extends RequestPayload = RequestPayload> = Partial<Visit<T> & VisitCallbacks
|
|
232
|
+
export type VisitOptions<T extends RequestPayload = RequestPayload> = Partial<Visit<T> & VisitCallbacks<T>>;
|
|
196
233
|
export type ReloadOptions<T extends RequestPayload = RequestPayload> = Omit<VisitOptions<T>, 'preserveScroll' | 'preserveState'>;
|
|
197
234
|
export type PollOptions = {
|
|
198
235
|
keepAlive?: boolean;
|
|
@@ -210,10 +247,11 @@ export type PendingVisitOptions = {
|
|
|
210
247
|
cancelled: boolean;
|
|
211
248
|
interrupted: boolean;
|
|
212
249
|
};
|
|
213
|
-
export type PendingVisit = Visit & PendingVisitOptions;
|
|
214
|
-
export type ActiveVisit = PendingVisit & Required<VisitOptions
|
|
250
|
+
export type PendingVisit<T extends RequestPayload = RequestPayload> = Visit<T> & PendingVisitOptions;
|
|
251
|
+
export type ActiveVisit<T extends RequestPayload = RequestPayload> = PendingVisit<T> & Required<VisitOptions<T>>;
|
|
215
252
|
export type InternalActiveVisit = ActiveVisit & {
|
|
216
253
|
onPrefetchResponse?: (response: Response) => void;
|
|
254
|
+
onPrefetchError?: (error: Error) => void;
|
|
217
255
|
};
|
|
218
256
|
export type VisitId = unknown;
|
|
219
257
|
export type Component = unknown;
|
|
@@ -225,7 +263,16 @@ export type LinkPrefetchOption = 'mount' | 'hover' | 'click';
|
|
|
225
263
|
export type CacheForOption = number | string;
|
|
226
264
|
export type PrefetchOptions = {
|
|
227
265
|
cacheFor: CacheForOption | CacheForOption[];
|
|
266
|
+
cacheTags: string | string[];
|
|
228
267
|
};
|
|
268
|
+
export interface LinkComponentBaseProps extends Partial<Pick<Visit<RequestPayload>, 'data' | 'method' | 'replace' | 'preserveScroll' | 'preserveState' | 'only' | 'except' | 'headers' | 'queryStringArrayFormat' | 'async'> & Omit<VisitCallbacks, 'onCancelToken'> & {
|
|
269
|
+
href: string | UrlMethodPair;
|
|
270
|
+
onCancelToken: (cancelToken: import('axios').CancelTokenSource) => void;
|
|
271
|
+
prefetch: boolean | LinkPrefetchOption | LinkPrefetchOption[];
|
|
272
|
+
cacheFor: CacheForOption | CacheForOption[];
|
|
273
|
+
cacheTags: string | string[];
|
|
274
|
+
}> {
|
|
275
|
+
}
|
|
229
276
|
type PrefetchObject = {
|
|
230
277
|
params: ActiveVisit;
|
|
231
278
|
response: Promise<Response>;
|
|
@@ -243,6 +290,7 @@ export type PrefetchedResponse = PrefetchObject & {
|
|
|
243
290
|
timestamp: number;
|
|
244
291
|
singleUse: boolean;
|
|
245
292
|
inFlight: false;
|
|
293
|
+
tags: string[];
|
|
246
294
|
};
|
|
247
295
|
export type PrefetchRemovalTimer = {
|
|
248
296
|
params: ActiveVisit;
|
|
@@ -263,23 +311,32 @@ export type ProgressSettings = {
|
|
|
263
311
|
includeCSS: boolean;
|
|
264
312
|
color: string;
|
|
265
313
|
};
|
|
314
|
+
export type UrlMethodPair = {
|
|
315
|
+
url: string;
|
|
316
|
+
method: Method;
|
|
317
|
+
};
|
|
266
318
|
export type FormComponentOptions = Pick<VisitOptions, 'preserveScroll' | 'preserveState' | 'preserveUrl' | 'replace' | 'only' | 'except' | 'reset'>;
|
|
267
|
-
export type FormComponentProps = Partial<Pick<Visit, '
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
method: Method;
|
|
271
|
-
};
|
|
319
|
+
export type FormComponentProps = Partial<Pick<Visit, 'headers' | 'queryStringArrayFormat' | 'errorBag' | 'showProgress' | 'invalidateCacheTags'> & Omit<VisitCallbacks, 'onPrefetched' | 'onPrefetching'>> & {
|
|
320
|
+
method?: Method | Uppercase<Method>;
|
|
321
|
+
action?: string | UrlMethodPair;
|
|
272
322
|
transform?: (data: Record<string, FormDataConvertible>) => Record<string, FormDataConvertible>;
|
|
273
323
|
options?: FormComponentOptions;
|
|
324
|
+
onSubmitComplete?: (props: FormComponentonSubmitCompleteArguments) => void;
|
|
325
|
+
disableWhileProcessing?: boolean;
|
|
326
|
+
resetOnSuccess?: boolean | string[];
|
|
327
|
+
resetOnError?: boolean | string[];
|
|
328
|
+
setDefaultsOnSuccess?: boolean;
|
|
274
329
|
};
|
|
275
330
|
export type FormComponentMethods = {
|
|
276
331
|
clearErrors: (...fields: string[]) => void;
|
|
277
332
|
resetAndClearErrors: (...fields: string[]) => void;
|
|
278
333
|
setError(field: string, value: string): void;
|
|
279
334
|
setError(errors: Record<string, string>): void;
|
|
280
|
-
reset: () => void;
|
|
335
|
+
reset: (...fields: string[]) => void;
|
|
281
336
|
submit: () => void;
|
|
337
|
+
defaults: () => void;
|
|
282
338
|
};
|
|
339
|
+
export type FormComponentonSubmitCompleteArguments = Pick<FormComponentMethods, 'reset' | 'defaults'>;
|
|
283
340
|
export type FormComponentState = {
|
|
284
341
|
errors: Record<string, string>;
|
|
285
342
|
hasErrors: boolean;
|
package/types/url.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { FormDataConvertible, Method, RequestPayload, VisitOptions } from './types';
|
|
1
|
+
import { FormDataConvertible, Method, RequestPayload, UrlMethodPair, VisitOptions } from './types';
|
|
2
2
|
export declare function hrefToUrl(href: string | URL): URL;
|
|
3
3
|
export declare const transformUrlAndData: (href: string | URL, data: RequestPayload, method: Method, forceFormData: VisitOptions['forceFormData'], queryStringArrayFormat: VisitOptions['queryStringArrayFormat']) => [URL, RequestPayload];
|
|
4
|
-
|
|
4
|
+
type MergeDataIntoQueryStringDataReturnType<T extends RequestPayload> = T extends Record<string, FormDataConvertible> ? Record<string, FormDataConvertible> : RequestPayload;
|
|
5
|
+
export declare function mergeDataIntoQueryString<T extends RequestPayload>(method: Method, href: URL | string, data: T, qsArrayFormat?: 'indices' | 'brackets'): [string, MergeDataIntoQueryStringDataReturnType<T>];
|
|
5
6
|
export declare function urlWithoutHash(url: URL | Location): URL;
|
|
6
7
|
export declare const setHashIfSameUrl: (originUrl: URL | Location, destinationUrl: URL | Location) => void;
|
|
7
8
|
export declare const isSameUrlWithoutHash: (url1: URL | Location, url2: URL | Location) => boolean;
|
|
9
|
+
export declare function isUrlMethodPair(href: unknown): href is UrlMethodPair;
|
|
10
|
+
export {};
|