diff --git a/packages/interface/src/transport.ts b/packages/interface/src/transport.ts index 6a63b5b9..68fde4d9 100644 --- a/packages/interface/src/transport.ts +++ b/packages/interface/src/transport.ts @@ -26,6 +26,7 @@ export interface Channel> extends Phantom { request>>( request: HTTPRequest ): Await>> + url?: URL } export interface RequestEncoder { diff --git a/packages/transport/test/https.spec.js b/packages/transport/test/https.spec.js index 2027dfe9..db7c51ff 100644 --- a/packages/transport/test/https.spec.js +++ b/packages/transport/test/https.spec.js @@ -83,3 +83,19 @@ if (typeof globalThis.fetch === 'undefined') { } }) } + +test('should expose url', async () => { + const channel = HTTP.open({ + url: new URL('https://ucan.xyz/'), + fetch: async (url, init) => { + return { + ok: true, + status: 200, + url, + arrayBuffer: () => UTF8.encode('pong').buffer, + headers: new Map([['content-type', 'text/plain']]), + } + }, + }) + assert.equal(channel.url?.toString(), 'https://ucan.xyz/') +}) \ No newline at end of file