From c06134fb166d29d71cec4bb8339491e28b92c4a8 Mon Sep 17 00:00:00 2001 From: Samuel Macleod Date: Wed, 14 May 2025 00:12:31 +0100 Subject: [PATCH] repro --- .../connect-with-global-outbound/config.capnp | 21 +++++++++++++++++++ .../connect-with-global-outbound/outbound.js | 6 ++++++ .../connect-with-global-outbound/worker.js | 14 +++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 samples/connect-with-global-outbound/config.capnp create mode 100644 samples/connect-with-global-outbound/outbound.js create mode 100644 samples/connect-with-global-outbound/worker.js diff --git a/samples/connect-with-global-outbound/config.capnp b/samples/connect-with-global-outbound/config.capnp new file mode 100644 index 00000000000..27db43b6e30 --- /dev/null +++ b/samples/connect-with-global-outbound/config.capnp @@ -0,0 +1,21 @@ +using Workerd = import "/workerd/workerd.capnp"; + +const helloWorldExample :Workerd.Config = ( + services = [ (name = "main", worker = .helloWorld), (name = "outbound", worker = .outbound) ], + sockets = [ ( name = "http", address = "*:8080", http = (), service = "main" ) ] +); + +const helloWorld :Workerd.Worker = ( + modules = [ + (name = "worker", esModule = embed "worker.js") + ], + compatibilityDate = "2023-02-28", + globalOutbound = "outbound" +); + +const outbound :Workerd.Worker = ( + modules = [ + (name = "worker", esModule = embed "outbound.js") + ], + compatibilityDate = "2023-02-28", +); diff --git a/samples/connect-with-global-outbound/outbound.js b/samples/connect-with-global-outbound/outbound.js new file mode 100644 index 00000000000..86056f98c01 --- /dev/null +++ b/samples/connect-with-global-outbound/outbound.js @@ -0,0 +1,6 @@ +export default { + fetch(request) { + console.log('Outbound Worker called'); + return fetch(request); + }, +}; diff --git a/samples/connect-with-global-outbound/worker.js b/samples/connect-with-global-outbound/worker.js new file mode 100644 index 00000000000..0b08dabdfb9 --- /dev/null +++ b/samples/connect-with-global-outbound/worker.js @@ -0,0 +1,14 @@ +import { connect } from 'cloudflare:sockets'; + +export default { + async fetch(req, env) { + const url = new URL(req.url); + if (url.pathname == '/http') { + return fetch('http://example.com'); + } else if (url.pathname == '/connect') { + await connect('example.com:5432'); + return new Response('connection ok'); + } + return new Response('try /http or /connect'); + }, +};