-
Notifications
You must be signed in to change notification settings - Fork 22
/
top.dart
52 lines (48 loc) · 1.46 KB
/
top.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import 'dart:js_util';
import 'package:edge_runtime/edge_runtime.dart' hide fetch;
import 'package:edge_runtime/src/headers.dart';
import 'package:edge_runtime/src/response.dart';
import 'package:edge_runtime/src/abort.dart';
import 'package:js_bindings/js_bindings.dart' as interop;
import 'package:edge_runtime/src/interop/utils_interop.dart' as interop;
import 'package:edge_runtime/src/interop/scope_interop.dart' as interop;
import 'request_init.dart';
Future<Response> fetch(
Resource resource, {
CloudflareRequestInit? cf,
String? method,
Headers? headers,
Object? body,
String? referrer,
interop.ReferrerPolicy? referrerPolicy,
interop.RequestMode? mode,
interop.RequestCredentials? credentials,
interop.RequestCache? cache,
interop.RequestRedirect? redirect,
String? integrity,
bool? keepalive,
AbortSignal? signal,
interop.RequestDuplex? duplex,
}) async {
return responseFromJsObject(await promiseToFuture(interop.fetch(
interop.requestFromResource(resource),
jsify({
// Cloudflare specific properties
cf: cf ?? interop.jsUndefined,
// Fetch API properties
method: method,
headers: headers?.delegate,
body: body,
referrer: referrer,
referrerPolicy: referrerPolicy,
mode: mode,
credentials: credentials,
cache: cache,
redirect: redirect,
integrity: integrity,
keepalive: keepalive,
signal: signal?.delegate,
duplex: duplex,
}),
)));
}