mirror of
https://github.com/denoland/deno.git
synced 2025-12-23 08:48:24 +00:00
|
Some checks are pending
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions
Bumped versions for 2.6.2 --------- Co-authored-by: bartlomieju <bartlomieju@users.noreply.github.com> Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com> |
||
|---|---|---|
| .. | ||
| 20_headers.js | ||
| 21_formdata.js | ||
| 22_body.js | ||
| 22_http_client.js | ||
| 23_request.js | ||
| 23_response.js | ||
| 26_fetch.js | ||
| 27_eventsource.js | ||
| Cargo.toml | ||
| dns.rs | ||
| fs_fetch_handler.rs | ||
| internal.d.ts | ||
| lib.rs | ||
| proxy.rs | ||
| README.md | ||
| tests.rs | ||
deno_fetch
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:
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<Permissions>(Default::default()) in the
extensions field of your RuntimeOptions
Where:
- Permissions: a struct implementing
deno_fetch::FetchPermissions - Options:
deno_fetch::Options, which implementsDefault
Dependencies
- deno_webidl: Provided by the
deno_webidlcrate - deno_web: Provided by the
deno_webcrate - deno_console: Provided by the
deno_consolecrate
Provided ops
Following ops are provided, which can be accessed through Deno.ops:
- op_fetch
- op_fetch_send
- op_utf8_to_byte_string
- op_fetch_custom_client