summaryrefslogtreecommitdiff
path: root/cli/js/ops/fetch.ts
diff options
context:
space:
mode:
Diffstat (limited to 'cli/js/ops/fetch.ts')
-rw-r--r--cli/js/ops/fetch.ts28
1 files changed, 28 insertions, 0 deletions
diff --git a/cli/js/ops/fetch.ts b/cli/js/ops/fetch.ts
new file mode 100644
index 000000000..c5c0cb883
--- /dev/null
+++ b/cli/js/ops/fetch.ts
@@ -0,0 +1,28 @@
+// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
+
+import { sendAsync } from "./dispatch_json.ts";
+
+interface FetchRequest {
+ url: string;
+ method: string | null;
+ headers: Array<[string, string]>;
+}
+
+export interface FetchResponse {
+ bodyRid: number;
+ status: number;
+ statusText: string;
+ headers: Array<[string, string]>;
+}
+
+export async function fetch(
+ args: FetchRequest,
+ body: ArrayBufferView | undefined
+): Promise<FetchResponse> {
+ let zeroCopy = undefined;
+ if (body) {
+ zeroCopy = new Uint8Array(body.buffer, body.byteOffset, body.byteLength);
+ }
+
+ return await sendAsync("op_fetch", args, zeroCopy);
+}