@types/hotwired__turbo 8.0.0 → 8.0.1

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.
hotwired__turbo/README.md CHANGED
@@ -8,7 +8,7 @@ This package contains type definitions for @hotwired/turbo (https://turbo.hotwir
8
8
  Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/hotwired__turbo.
9
9
 
10
10
  ### Additional Details
11
- * Last updated: Mon, 26 Feb 2024 17:35:19 GMT
11
+ * Last updated: Fri, 19 Apr 2024 08:35:16 GMT
12
12
  * Dependencies: none
13
13
 
14
14
  # Credits
@@ -41,7 +41,13 @@ export class StreamElement extends HTMLElement {
41
41
  }
42
42
 
43
43
  export class FetchRequest {}
44
- export class FetchResponse {}
44
+ export class FetchResponse {
45
+ header(key: string): string | undefined;
46
+ statusCode: number;
47
+ responseText: Promise<string>;
48
+ location: URL;
49
+ response: Response;
50
+ }
45
51
 
46
52
  /**
47
53
  * Connects a stream source to the main session.
@@ -71,10 +77,16 @@ export interface TurboSession {
71
77
  renderStreamMessage(message: unknown): void;
72
78
  }
73
79
 
74
- export function visit(
75
- location: string,
76
- options?: { action?: "advance" | "replace"; frame?: string },
77
- ): void;
80
+ export const StreamActions: {
81
+ [action: string]: (this: StreamElement) => void;
82
+ };
83
+
84
+ export type Action = "advance" | "replace" | "restore";
85
+ export interface VisitOptions {
86
+ action?: Action;
87
+ frame?: string;
88
+ }
89
+ export function visit(location: string, options?: VisitOptions): void;
78
90
 
79
91
  export interface TurboGlobal {
80
92
  /**
@@ -98,10 +110,7 @@ export interface TurboGlobal {
98
110
  */
99
111
  setConfirmMethod(confirmMethod: () => boolean): void;
100
112
 
101
- visit(
102
- location: string,
103
- options?: { action?: "advance" | "replace"; frame?: string },
104
- ): void;
113
+ visit(location: string, options?: { action?: Action; frame?: string }): void;
105
114
 
106
115
  session: TurboSession;
107
116
  }
@@ -109,3 +118,109 @@ export interface TurboGlobal {
109
118
  declare global {
110
119
  const Turbo: TurboGlobal;
111
120
  }
121
+
122
+ export type Render = (currentElement: StreamElement) => Promise<void>;
123
+ export type TimingData = unknown;
124
+ export type VisitFallback = (location: string | Response, options: VisitOptions) => Promise<void>;
125
+
126
+ export type TurboBeforeCacheEvent = CustomEvent;
127
+ export type TurboBeforePrefetchEvent = CustomEvent;
128
+ export type TurboBeforeRenderEvent = CustomEvent<{
129
+ newBody: HTMLBodyElement;
130
+ renderMethod: "replace" | "morph";
131
+ isPreview: boolean;
132
+ resume: (value?: any) => void;
133
+ render: (currentBody: HTMLBodyElement, newBody: HTMLBodyElement) => void;
134
+ }>;
135
+ export type TurboBeforeVisitEvent = CustomEvent<{ url: string }>;
136
+ export type TurboClickEvent = CustomEvent<{
137
+ url: string;
138
+ originalEvent: MouseEvent;
139
+ }>;
140
+ export type TurboFrameLoadEvent = CustomEvent;
141
+ export type TurboBeforeFrameRenderEvent = CustomEvent<{
142
+ newFrame: FrameElement;
143
+ resume: (value?: any) => void;
144
+ render: (currentFrame: FrameElement, newFrame: FrameElement) => void;
145
+ }>;
146
+ export type TurboFrameRenderEvent = CustomEvent<{
147
+ fetchResponse: FetchResponse;
148
+ }>;
149
+ export type TurboLoadEvent = CustomEvent<{ url: string; timing: TimingData }>;
150
+ export type TurboRenderEvent = CustomEvent;
151
+ export type TurboReloadEvent = CustomEvent;
152
+ export type TurboVisitEvent = CustomEvent<{ url: string; action: Action }>;
153
+
154
+ export type TurboBeforeStreamRenderEvent = CustomEvent<{
155
+ newStream: StreamElement;
156
+ render: Render;
157
+ }>;
158
+
159
+ export interface FormSubmission {
160
+ stop(): void;
161
+ }
162
+ export type FormSubmissionResult =
163
+ | { success: boolean; fetchResponse: FetchResponse }
164
+ | { success: false; error: Error };
165
+
166
+ export type TurboSubmitStartEvent = CustomEvent<{
167
+ formSubmission: FormSubmission;
168
+ }>;
169
+ export type TurboSubmitEndEvent = CustomEvent<
170
+ & { formSubmission: FormSubmission }
171
+ & {
172
+ [K in keyof FormSubmissionResult]?: FormSubmissionResult[K];
173
+ }
174
+ >;
175
+
176
+ export type TurboFrameMissingEvent = CustomEvent<{
177
+ response: Response;
178
+ visit: VisitFallback;
179
+ }>;
180
+
181
+ export type TurboBeforeFetchRequestEvent = CustomEvent<{
182
+ fetchOptions: RequestInit;
183
+ url: URL;
184
+ resume: (value: any) => void;
185
+ }>;
186
+
187
+ export type TurboBeforeFetchResponseEvent = CustomEvent<{
188
+ fetchResponse: FetchResponse;
189
+ }>;
190
+
191
+ export type TurboFetchRequestErrorEvent = CustomEvent<{
192
+ request: FetchRequest;
193
+ error: Error;
194
+ }>;
195
+
196
+ export interface TurboElementEventMap {
197
+ "turbo:before-frame-render": TurboBeforeFrameRenderEvent;
198
+ "turbo:before-fetch-request": TurboBeforeFetchRequestEvent;
199
+ "turbo:before-fetch-response": TurboBeforeFetchResponseEvent;
200
+ "turbo:fetch-request-error": TurboFetchRequestErrorEvent;
201
+ "turbo:frame-load": TurboFrameLoadEvent;
202
+ "turbo:frame-render": TurboFrameRenderEvent;
203
+ "turbo:frame-missing": TurboFrameMissingEvent;
204
+ "turbo:submit-start": TurboSubmitStartEvent;
205
+ "turbo:submit-end": TurboSubmitEndEvent;
206
+ }
207
+
208
+ export interface TurboGlobalEventHandlersEventMap extends TurboElementEventMap {
209
+ "turbo:before-cache": TurboBeforeCacheEvent;
210
+ "turbo:before-prefetch": TurboBeforePrefetchEvent;
211
+ "turbo:before-stream-render": TurboBeforeStreamRenderEvent;
212
+ "turbo:before-render": TurboBeforeRenderEvent;
213
+ "turbo:before-visit": TurboBeforeVisitEvent;
214
+ "turbo:click": TurboClickEvent;
215
+ "turbo:load": TurboLoadEvent;
216
+ "turbo:render": TurboRenderEvent;
217
+ "turbo:reload": TurboReloadEvent;
218
+ "turbo:visit": TurboVisitEvent;
219
+ }
220
+
221
+ declare global {
222
+ /* eslint-disable @typescript-eslint/no-empty-interface */
223
+ interface ElementEventMap extends TurboElementEventMap {}
224
+ interface GlobalEventHandlersEventMap extends TurboGlobalEventHandlersEventMap {}
225
+ /* eslint-enable @typescript-eslint/no-empty-interface */
226
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@types/hotwired__turbo",
3
- "version": "8.0.0",
3
+ "version": "8.0.1",
4
4
  "description": "TypeScript definitions for @hotwired/turbo",
5
5
  "homepage": "https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/hotwired__turbo",
6
6
  "license": "MIT",
@@ -25,6 +25,6 @@
25
25
  },
26
26
  "scripts": {},
27
27
  "dependencies": {},
28
- "typesPublisherContentHash": "9add7020f634e3f37398181fbfad8008e17daa39c05964888b0aec96ed2642a6",
29
- "typeScriptVersion": "4.6"
28
+ "typesPublisherContentHash": "a7d5dae0961e1da2860933e6898168f27e7d686261200e2281efdbdd0ee6b08a",
29
+ "typeScriptVersion": "4.7"
30
30
  }