1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-11 10:07:54 -05:00
denoland-deno/extensions/net/04_net_unstable.js
Bartek Iwańczuk 38a7128cdd
feat: Add "deno_net" extension (#11150)
This commits moves implementation of net related APIs available on "Deno"
namespace to "deno_net" extension.

Following APIs were moved:
- Deno.listen()
- Deno.connect()
- Deno.listenTls()
- Deno.serveHttp()
- Deno.shutdown()
- Deno.resolveDns()
- Deno.listenDatagram()
- Deno.startTls()
- Deno.Conn
- Deno.Listener
- Deno.DatagramConn
2021-06-29 01:43:03 +02:00

49 lines
1 KiB
JavaScript

// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license.
"use strict";
((window) => {
const net = window.__bootstrap.net;
function listen(options) {
if (options.transport === "unix") {
const res = net.opListen(options);
return new net.Listener(res.rid, res.localAddr);
} else {
return net.listen(options);
}
}
function listenDatagram(
options,
) {
let res;
if (options.transport === "unixpacket") {
res = net.opListen(options);
} else {
res = net.opListen({
transport: "udp",
hostname: "127.0.0.1",
...options,
});
}
return new net.Datagram(res.rid, res.localAddr);
}
async function connect(
options,
) {
if (options.transport === "unix") {
const res = await net.opConnect(options);
return new net.Conn(res.rid, res.remoteAddr, res.localAddr);
} else {
return net.connect(options);
}
}
window.__bootstrap.netUnstable = {
connect,
listenDatagram,
listen,
};
})(this);