diff options
Diffstat (limited to 'ext/fetch')
-rw-r--r-- | ext/fetch/README.md | 80 |
1 files changed, 79 insertions, 1 deletions
diff --git a/ext/fetch/README.md b/ext/fetch/README.md index 2c946197e..d088a6147 100644 --- a/ext/fetch/README.md +++ b/ext/fetch/README.md @@ -1,5 +1,83 @@ # deno_fetch -This crate implements the Fetch API. +**This crate implements the Fetch API.** Spec: https://fetch.spec.whatwg.org/ + +## Usage Example + +From javascript, include the extension's source, and assign the following +properties to the global scope: + +```javascript +import * as headers from "ext:deno_fetch/20_headers.js"; +import * as formData from "ext:deno_fetch/21_formdata.js"; +import * as request from "ext:deno_fetch/23_request.js"; +import * as response from "ext:deno_fetch/23_response.js"; +import * as fetch from "ext:deno_fetch/26_fetch.js"; +import * as eventSource from "ext:deno_fetch/27_eventsource.js"; + +// Set up the callback for Wasm streaming ops +Deno.core.setWasmStreamingCallback(fetch.handleWasmStreaming); + +Object.defineProperty(globalThis, "fetch", { + value: fetch.fetch, + enumerable: true, + configurable: true, + writable: true, +}); + +Object.defineProperty(globalThis, "Request", { + value: request.Request, + enumerable: false, + configurable: true, + writable: true, +}); + +Object.defineProperty(globalThis, "Response", { + value: response.Response, + enumerable: false, + configurable: true, + writable: true, +}); + +Object.defineProperty(globalThis, "Headers", { + value: headers.Headers, + enumerable: false, + configurable: true, + writable: true, +}); + +Object.defineProperty(globalThis, "FormData", { + value: formData.FormData, + enumerable: false, + configurable: true, + writable: true, +}); +``` + +Then from rust, provide +`deno_fetch::deno_fetch::init_ops_and_esm<Permissions>(Default::default())` in +the `extensions` field of your `RuntimeOptions` + +Where: + +- Permissions: a struct implementing `deno_fetch::FetchPermissions` +- Options: `deno_fetch::Options`, which implements `Default` + +## Dependencies + +- **deno_webidl**: Provided by the `deno_webidl` crate +- **deno_web**: Provided by the `deno_web` crate +- **deno_url**: Provided by the `deno_url` crate +- **deno_console**: Provided by the `deno_console` crate + +## Provided ops + +Following ops are provided, which can be accessed through `Deno.ops`: + +- op_fetch +- op_fetch_send +- op_fetch_response_upgrade +- op_utf8_to_byte_string +- op_fetch_custom_client |