diff options
author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-04-28 21:46:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-28 21:46:39 +0200 |
commit | 1b6181e434422d3fe5aa49f59f1e7adc4ec4ce8f (patch) | |
tree | 6c58cc861c5efbbfcd51bb92e5a71d1db4ecf4ad /cli/js/net.ts | |
parent | ea28a088a473083cb759a3264235005a25450cbc (diff) |
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.
Diffstat (limited to 'cli/js/net.ts')
-rw-r--r-- | cli/js/net.ts | 39 |
1 files changed, 23 insertions, 16 deletions
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 { |