From 1b6181e434422d3fe5aa49f59f1e7adc4ec4ce8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Tue, 28 Apr 2020 21:46:39 +0200 Subject: refactor: factor out datagram from Deno.listen(), make it unstable (#4968) This commit changes Deno.listen() API by factoring out datagram listeners to Deno.listenDatagram(). New Deno.listenDatagram() is unstable. --- cli/js/net.ts | 39 +++++++++++++++++++++++---------------- 1 file changed, 23 insertions(+), 16 deletions(-) (limited to 'cli/js/net.ts') diff --git a/cli/js/net.ts b/cli/js/net.ts index 05503b232..962c78a5b 100644 --- a/cli/js/net.ts +++ b/cli/js/net.ts @@ -146,36 +146,43 @@ export function listen( export function listen( options: UnixListenOptions & { transport: "unix" } ): Listener; -export function listen( +export function listen(options: ListenOptions | UnixListenOptions): Listener { + let res; + + if (options.transport === "unix") { + res = netOps.listen(options); + } else { + res = netOps.listen({ + transport: "tcp", + hostname: "127.0.0.1", + ...(options as ListenOptions), + }); + } + + return new ListenerImpl(res.rid, res.localAddr); +} + +export function listenDatagram( options: ListenOptions & { transport: "udp" } ): DatagramConn; -export function listen( +export function listenDatagram( options: UnixListenOptions & { transport: "unixpacket" } ): DatagramConn; -export function listen( +export function listenDatagram( options: ListenOptions | UnixListenOptions -): Listener | DatagramConn { +): DatagramConn { let res; - - if (options.transport === "unix" || options.transport === "unixpacket") { + if (options.transport === "unixpacket") { res = netOps.listen(options); } else { res = netOps.listen({ - transport: "tcp", + transport: "udp", hostname: "127.0.0.1", ...(options as ListenOptions), }); } - if ( - !options.transport || - options.transport === "tcp" || - options.transport === "unix" - ) { - return new ListenerImpl(res.rid, res.localAddr); - } else { - return new DatagramImpl(res.rid, res.localAddr); - } + return new DatagramImpl(res.rid, res.localAddr); } export interface ConnectOptions { -- cgit v1.2.3