Skip to content

Commit

Permalink
feat: add edge_http_client (#20)
Browse files Browse the repository at this point in the history
Co-authored-by: Andrei Lesnitsky <andrei.lesnitsky@gmail.com>
  • Loading branch information
Ehesp and lesnitsky committed Apr 5, 2023
1 parent bbd4773 commit 7526a76
Show file tree
Hide file tree
Showing 51 changed files with 2,525 additions and 381 deletions.
112 changes: 112 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "cloudflare-durable-objects",
"cwd": "examples/cloudflare-durable-objects",
"request": "launch",
"type": "dart"
},
{
"name": "vercel-edge-shelf",
"cwd": "examples/vercel-edge-shelf",
"request": "launch",
"type": "dart"
},
{
"name": "cloudflare_workers",
"cwd": "packages/cloudflare_workers",
"request": "launch",
"type": "dart"
},
{
"name": "deno_deploy",
"cwd": "packages/deno_deploy",
"request": "launch",
"type": "dart"
},
{
"name": "edge",
"cwd": "packages/edge",
"request": "launch",
"type": "dart"
},
{
"name": "edge_runtime",
"cwd": "packages/edge_runtime",
"request": "launch",
"type": "dart"
},
{
"name": "netlify_edge",
"cwd": "packages/netlify_edge",
"request": "launch",
"type": "dart"
},
{
"name": "supabase_functions",
"cwd": "packages/supabase_functions",
"request": "launch",
"type": "dart"
},
{
"name": "vercel_edge",
"cwd": "packages/vercel_edge",
"request": "launch",
"type": "dart"
},
{
"name": "__brick__",
"cwd": "bricks/cloudflare_workers/__brick__",
"request": "launch",
"type": "dart"
},
{
"name": "__brick__",
"cwd": "bricks/vercel_edge/__brick__",
"request": "launch",
"type": "dart"
},
{
"name": "example",
"cwd": "packages/cloudflare_workers/example",
"request": "launch",
"type": "dart"
},
{
"name": "example",
"cwd": "packages/edge_runtime/example",
"request": "launch",
"type": "dart"
},
{
"name": "example",
"cwd": "packages/netlify_edge/example",
"request": "launch",
"type": "dart"
},
{
"name": "example",
"cwd": "packages/supabase_functions/example",
"request": "launch",
"type": "dart"
},
{
"name": "example",
"cwd": "packages/vercel_edge/example",
"request": "launch",
"type": "dart"
},
{
"name": "edge_runtime_test",
"cwd": "packages/edge_runtime",
"program": "test",
"request": "launch",
"type": "dart",
"args": ["-p", "chrome"]
}
]
}
10 changes: 5 additions & 5 deletions examples/cloudflare-durable-objects/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ packages:
path: "../../packages/cloudflare_workers"
relative: true
source: path
version: "0.0.3+1"
version: "0.0.3+2"
collection:
dependency: transitive
description:
Expand Down Expand Up @@ -86,14 +86,14 @@ packages:
path: "../../packages/edge"
relative: true
source: path
version: "0.0.5"
version: "0.0.6"
edge_runtime:
dependency: "direct overridden"
description:
path: "../../packages/edge_runtime"
relative: true
source: path
version: "0.0.3"
version: "0.0.3+1"
file:
dependency: transitive
description:
Expand Down Expand Up @@ -162,10 +162,10 @@ packages:
dependency: transitive
description:
name: js_bindings
sha256: d7890d70b8895020bd8744d8f6fe2db78b5f1ffe7359e9d257986ea1becfd726
sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926"
url: "https://pub.dev"
source: hosted
version: "0.1.0"
version: "0.1.2+1"
json_annotation:
dependency: transitive
description:
Expand Down
32 changes: 14 additions & 18 deletions examples/supabase-edge-functions/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -74,28 +74,25 @@ packages:
source: hosted
version: "3.0.2"
deno_deploy:
dependency: transitive
dependency: "direct overridden"
description:
name: deno_deploy
sha256: "3b6eef9d88d93e6144b9f9501481615ac1a55e8ca7ff4882250799eeb0d70840"
url: "https://pub.dev"
source: hosted
path: "../../packages/deno_deploy"
relative: true
source: path
version: "0.0.1-dev.3"
edge:
dependency: "direct main"
description:
name: edge
sha256: f3c0c6e6e0845c64a8d44c6208a856dbf4a75b8a2d37aeb7a8a338f6c3433426
url: "https://pub.dev"
source: hosted
path: "../../packages/edge"
relative: true
source: path
version: "0.0.6"
edge_runtime:
dependency: transitive
dependency: "direct overridden"
description:
name: edge_runtime
sha256: "9ce28ef2c83f0db9eb857c4b433c1531c5bab31627cc6544727d4abc918570d7"
url: "https://pub.dev"
source: hosted
path: "../../packages/edge_runtime"
relative: true
source: path
version: "0.0.3+1"
file:
dependency: transitive
Expand Down Expand Up @@ -316,10 +313,9 @@ packages:
supabase_functions:
dependency: "direct main"
description:
name: supabase_functions
sha256: "4f9c5e3755e0f8e6066f528642840ec3ea9a2025ee1069293512083ade375b0b"
url: "https://pub.dev"
source: hosted
path: "../../packages/supabase_functions"
relative: true
source: path
version: "0.0.1+1"
term_glyph:
dependency: transitive
Expand Down
10 changes: 10 additions & 0 deletions examples/supabase-edge-functions/pubspec_overrides.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# melos_managed_dependency_overrides: deno_deploy,edge,edge_runtime,supabase_functions
dependency_overrides:
deno_deploy:
path: ../../packages/deno_deploy
edge:
path: ../../packages/edge
edge_runtime:
path: ../../packages/edge_runtime
supabase_functions:
path: ../../packages/supabase_functions
10 changes: 5 additions & 5 deletions examples/vercel-edge-shelf/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,14 @@ packages:
path: "../../packages/edge"
relative: true
source: path
version: "0.0.5"
version: "0.0.6"
edge_runtime:
dependency: "direct overridden"
description:
path: "../../packages/edge_runtime"
relative: true
source: path
version: "0.0.3"
version: "0.0.3+1"
file:
dependency: transitive
description:
Expand Down Expand Up @@ -163,10 +163,10 @@ packages:
dependency: transitive
description:
name: js_bindings
sha256: d7890d70b8895020bd8744d8f6fe2db78b5f1ffe7359e9d257986ea1becfd726
sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926"
url: "https://pub.dev"
source: hosted
version: "0.1.0"
version: "0.1.2+1"
json_annotation:
dependency: transitive
description:
Expand Down Expand Up @@ -357,7 +357,7 @@ packages:
path: "../../packages/vercel_edge"
relative: true
source: path
version: "0.0.3+1"
version: "0.0.3+2"
vm_service:
dependency: transitive
description:
Expand Down
10 changes: 5 additions & 5 deletions packages/cloudflare_workers/example/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ packages:
path: ".."
relative: true
source: path
version: "0.0.3+1"
version: "0.0.3+2"
collection:
dependency: transitive
description:
Expand Down Expand Up @@ -86,14 +86,14 @@ packages:
path: "../../edge"
relative: true
source: path
version: "0.0.5"
version: "0.0.6"
edge_runtime:
dependency: "direct overridden"
description:
path: "../../edge_runtime"
relative: true
source: path
version: "0.0.3"
version: "0.0.3+1"
file:
dependency: transitive
description:
Expand Down Expand Up @@ -162,10 +162,10 @@ packages:
dependency: transitive
description:
name: js_bindings
sha256: d7890d70b8895020bd8744d8f6fe2db78b5f1ffe7359e9d257986ea1becfd726
sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926"
url: "https://pub.dev"
source: hosted
version: "0.1.0"
version: "0.1.2+1"
json_annotation:
dependency: transitive
description:
Expand Down
18 changes: 13 additions & 5 deletions packages/cloudflare_workers/lib/public/email_message.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
import 'dart:js_util';

import 'package:edge_runtime/src/headers.dart';
import 'package:edge_runtime/src/readable_stream.dart';
import 'package:edge_runtime/edge_runtime.dart' show Headers, ReadableStream;
import 'package:edge_runtime/src/interop/readable_stream.dart';
import '../interop/email_message_interop.dart' as interop;
import 'package:edge_runtime/src/interop/headers.dart' as headers_interop;

class EmailMessage {
final interop.EmailMessage _delegate;
Expand All @@ -10,14 +12,20 @@ class EmailMessage {

String get from => _delegate.from;
String get to => _delegate.to;
Headers get headers => headersFromJsObject(_delegate.headers);
ReadableStream get raw => readableStreamFromJsObject(_delegate.raw);
Headers get headers => headersFromJsObject(
getProperty<headers_interop.Headers>(_delegate, 'headers'),
);
Stream<List<int>> get raw {
final readable = getProperty<ReadableStream>(_delegate, 'raw');
return streamFromJSReadable(readable);
}

int get rawSize => _delegate.rawSize;

void setReject(String reason) => _delegate.setReject(reason);

Future<void> forward(String to, Headers? headers) =>
_delegate.forward(to, headers?.delegate);
_delegate.forward(to, headers?.toJsBindingsHeaders());
}

EmailMessage emailMessageFromJsObject(interop.EmailMessage obj) =>
Expand Down
17 changes: 14 additions & 3 deletions packages/cloudflare_workers/lib/public/kv_namespace.dart
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import 'dart:js_util';
import 'dart:typed_data';

import 'package:edge_runtime/src/interop/utils_interop.dart';
import 'package:edge_runtime/src/readable_stream.dart';
import 'package:edge_runtime/src/interop/readable_stream.dart';

import '../interop/kv_namespace_interop.dart' as interop;

Expand Down Expand Up @@ -89,7 +90,7 @@ class KVNamespace {
);
}

Future<ReadableStream?> getStream(
Future<Stream<List<int>>?> getStream(
String name, {
int? cacheTtl,
}) async {
Expand All @@ -100,7 +101,17 @@ class KVNamespace {
..cacheTtl = cacheTtl,
);

return readableStreamFromJsObject(stream);
if (stream == null) {
return null;
}

final reader = callMethod<ReadableStreamDefaultReader>(
stream,
'getReader',
[],
);

return streamFromJSReader(reader);
}

Future<KVNamespaceGetWithMetadataResult<ReadableStream?>>
Expand Down
8 changes: 4 additions & 4 deletions packages/cloudflare_workers/pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -111,14 +111,14 @@ packages:
path: "../edge"
relative: true
source: path
version: "0.0.5"
version: "0.0.6"
edge_runtime:
dependency: "direct main"
description:
path: "../edge_runtime"
relative: true
source: path
version: "0.0.3"
version: "0.0.3+1"
file:
dependency: transitive
description:
Expand Down Expand Up @@ -203,10 +203,10 @@ packages:
dependency: "direct main"
description:
name: js_bindings
sha256: d7890d70b8895020bd8744d8f6fe2db78b5f1ffe7359e9d257986ea1becfd726
sha256: "4b2f25c42b5b5eb2537bfe1006878787bdf10d50f680d80d15bd90569e36c926"
url: "https://pub.dev"
source: hosted
version: "0.1.0"
version: "0.1.2+1"
json_annotation:
dependency: transitive
description:
Expand Down
Loading

0 comments on commit 7526a76

Please sign in to comment.