-
Notifications
You must be signed in to change notification settings - Fork 30.1k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
PR-URL: #51527 Reviewed-By: Matthew Aitken <maitken033380023@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
- Loading branch information
1 parent
dde9e08
commit 7a1e321
Showing
28 changed files
with
2,277 additions
and
500 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# EventSource | ||
|
||
Undici exposes a WHATWG spec-compliant implementation of [EventSource](https://developer.mozilla.org/en-US/docs/Web/API/EventSource) | ||
for [Server-Sent Events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events). | ||
|
||
## Instantiating EventSource | ||
|
||
Undici exports a EventSource class. You can instantiate the EventSource as | ||
follows: | ||
|
||
```mjs | ||
import { EventSource } from 'undici' | ||
|
||
const evenSource = new EventSource('http://localhost:3000') | ||
evenSource.onmessage = (event) => { | ||
console.log(event.data) | ||
} | ||
``` | ||
|
||
More information about the EventSource API can be found on | ||
[MDN](https://developer.mozilla.org/en-US/docs/Web/API/EventSource). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
# Class: RedirectHandler | ||
|
||
A class that handles redirection logic for HTTP requests. | ||
|
||
## `new RedirectHandler(dispatch, maxRedirections, opts, handler, redirectionLimitReached)` | ||
|
||
Arguments: | ||
|
||
- **dispatch** `function` - The dispatch function to be called after every retry. | ||
- **maxRedirections** `number` - Maximum number of redirections allowed. | ||
- **opts** `object` - Options for handling redirection. | ||
- **handler** `object` - An object containing handlers for different stages of the request lifecycle. | ||
- **redirectionLimitReached** `boolean` (default: `false`) - A flag that the implementer can provide to enable or disable the feature. If set to `false`, it indicates that the caller doesn't want to use the feature and prefers the old behavior. | ||
|
||
Returns: `RedirectHandler` | ||
|
||
### Parameters | ||
|
||
- **dispatch** `(options: Dispatch.DispatchOptions, handlers: Dispatch.DispatchHandlers) => Promise<Dispatch.DispatchResponse>` (required) - Dispatch function to be called after every redirection. | ||
- **maxRedirections** `number` (required) - Maximum number of redirections allowed. | ||
- **opts** `object` (required) - Options for handling redirection. | ||
- **handler** `object` (required) - Handlers for different stages of the request lifecycle. | ||
- **redirectionLimitReached** `boolean` (default: `false`) - A flag that the implementer can provide to enable or disable the feature. If set to `false`, it indicates that the caller doesn't want to use the feature and prefers the old behavior. | ||
|
||
### Properties | ||
|
||
- **location** `string` - The current redirection location. | ||
- **abort** `function` - The abort function. | ||
- **opts** `object` - The options for handling redirection. | ||
- **maxRedirections** `number` - Maximum number of redirections allowed. | ||
- **handler** `object` - Handlers for different stages of the request lifecycle. | ||
- **history** `Array` - An array representing the history of URLs during redirection. | ||
- **redirectionLimitReached** `boolean` - Indicates whether the redirection limit has been reached. | ||
|
||
### Methods | ||
|
||
#### `onConnect(abort)` | ||
|
||
Called when the connection is established. | ||
|
||
Parameters: | ||
|
||
- **abort** `function` - The abort function. | ||
|
||
#### `onUpgrade(statusCode, headers, socket)` | ||
|
||
Called when an upgrade is requested. | ||
|
||
Parameters: | ||
|
||
- **statusCode** `number` - The HTTP status code. | ||
- **headers** `object` - The headers received in the response. | ||
- **socket** `object` - The socket object. | ||
|
||
#### `onError(error)` | ||
|
||
Called when an error occurs. | ||
|
||
Parameters: | ||
|
||
- **error** `Error` - The error that occurred. | ||
|
||
#### `onHeaders(statusCode, headers, resume, statusText)` | ||
|
||
Called when headers are received. | ||
|
||
Parameters: | ||
|
||
- **statusCode** `number` - The HTTP status code. | ||
- **headers** `object` - The headers received in the response. | ||
- **resume** `function` - The resume function. | ||
- **statusText** `string` - The status text. | ||
|
||
#### `onData(chunk)` | ||
|
||
Called when data is received. | ||
|
||
Parameters: | ||
|
||
- **chunk** `Buffer` - The data chunk received. | ||
|
||
#### `onComplete(trailers)` | ||
|
||
Called when the request is complete. | ||
|
||
Parameters: | ||
|
||
- **trailers** `object` - The trailers received. | ||
|
||
#### `onBodySent(chunk)` | ||
|
||
Called when the request body is sent. | ||
|
||
Parameters: | ||
|
||
- **chunk** `Buffer` - The chunk of the request body sent. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.