Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

revert: Conn type changes in #10012 and #10061 #10255

Merged
merged 2 commits into from
Apr 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 15 additions & 21 deletions cli/dts/lib.deno.ns.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1726,44 +1726,40 @@ declare namespace Deno {
* Requires `allow-write` permission. */
export function truncate(name: string, len?: number): Promise<void>;

export interface Addr {
transport: string;
}

export interface NetAddr extends Addr {
export interface NetAddr {
transport: "tcp" | "udp";
hostname: string;
port: number;
}

export interface UnixAddr extends Addr {
export interface UnixAddr {
transport: "unix" | "unixpacket";
path: string;
}

export type Addr = NetAddr | UnixAddr;

/** A generic network listener for stream-oriented protocols. */
export interface Listener<Address extends Addr = Addr>
extends AsyncIterable<Conn<Address>> {
export interface Listener extends AsyncIterable<Conn> {
/** Waits for and resolves to the next connection to the `Listener`. */
accept(): Promise<Conn<Address>>;
accept(): Promise<Conn>;
/** Close closes the listener. Any pending accept promises will be rejected
* with errors. */
close(): void;
/** Return the address of the `Listener`. */
readonly addr: Address;
readonly addr: Addr;

/** Return the rid of the `Listener`. */
readonly rid: number;

[Symbol.asyncIterator](): AsyncIterableIterator<Conn<Address>>;
[Symbol.asyncIterator](): AsyncIterableIterator<Conn>;
}

export interface Conn<Address extends Addr = Addr>
extends Reader, Writer, Closer {
export interface Conn extends Reader, Writer, Closer {
/** The local address of the connection. */
readonly localAddr: Address;
readonly localAddr: Addr;
/** The remote address of the connection. */
readonly remoteAddr: Address;
readonly remoteAddr: Addr;
/** The resource ID of the connection. */
readonly rid: number;
/** Shuts down (`shutdown(2)`) the write side of the connection. Most
Expand Down Expand Up @@ -1791,7 +1787,7 @@ declare namespace Deno {
* Requires `allow-net` permission. */
export function listen(
options: ListenOptions & { transport?: "tcp" },
): Listener<NetAddr>;
): Listener;

export interface ListenTlsOptions extends ListenOptions {
/** Server certificate file. */
Expand All @@ -1810,7 +1806,7 @@ declare namespace Deno {
* ```
*
* Requires `allow-net` permission. */
export function listenTls(options: ListenTlsOptions): Listener<NetAddr>;
export function listenTls(options: ListenTlsOptions): Listener;

export interface ConnectOptions {
/** The port to connect to. */
Expand All @@ -1833,7 +1829,7 @@ declare namespace Deno {
* ```
*
* Requires `allow-net` permission for "tcp". */
export function connect(options: ConnectOptions): Promise<Conn<NetAddr>>;
export function connect(options: ConnectOptions): Promise<Conn>;

export interface ConnectTlsOptions {
/** The port to connect to. */
Expand All @@ -1859,9 +1855,7 @@ declare namespace Deno {
*
* Requires `allow-net` permission.
*/
export function connectTls(
options: ConnectTlsOptions,
): Promise<Conn<NetAddr>>;
export function connectTls(options: ConnectTlsOptions): Promise<Conn>;

/** Shutdown socket send operations.
*
Expand Down
28 changes: 11 additions & 17 deletions cli/dts/lib.deno.unstable.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -874,26 +874,23 @@ declare namespace Deno {
/** **UNSTABLE**: new API, yet to be vetted.
*
* A generic transport listener for message-oriented protocols. */
export interface DatagramConn<Address extends Addr = Addr>
extends AsyncIterable<[Uint8Array, Address]> {
export interface DatagramConn extends AsyncIterable<[Uint8Array, Addr]> {
/** **UNSTABLE**: new API, yet to be vetted.
*
* Waits for and resolves to the next message to the `UDPConn`. */
receive(p?: Uint8Array): Promise<[Uint8Array, Address]>;
receive(p?: Uint8Array): Promise<[Uint8Array, Addr]>;
/** UNSTABLE: new API, yet to be vetted.
*
* Sends a message to the target. */
send(p: Uint8Array, addr: Address): Promise<number>;
send(p: Uint8Array, addr: Addr): Promise<number>;
/** UNSTABLE: new API, yet to be vetted.
*
* Close closes the socket. Any pending message promises will be rejected
* with errors. */
close(): void;
/** Return the address of the `UDPConn`. */
readonly addr: Address;
[Symbol.asyncIterator](): AsyncIterableIterator<
[Uint8Array, Address]
>;
readonly addr: Addr;
[Symbol.asyncIterator](): AsyncIterableIterator<[Uint8Array, Addr]>;
}

export interface UnixListenOptions {
Expand All @@ -912,7 +909,7 @@ declare namespace Deno {
* Requires `allow-read` and `allow-write` permission. */
export function listen(
options: UnixListenOptions & { transport: "unix" },
): Listener<UnixAddr>;
): Listener;

/** **UNSTABLE**: new API, yet to be vetted
*
Expand All @@ -933,7 +930,7 @@ declare namespace Deno {
* Requires `allow-net` permission. */
export function listenDatagram(
options: ListenOptions & { transport: "udp" },
): DatagramConn<NetAddr>;
): DatagramConn;

/** **UNSTABLE**: new API, yet to be vetted
*
Expand All @@ -949,7 +946,7 @@ declare namespace Deno {
* Requires `allow-read` and `allow-write` permission. */
export function listenDatagram(
options: UnixListenOptions & { transport: "unixpacket" },
): DatagramConn<UnixAddr>;
): DatagramConn;

export interface UnixConnectOptions {
transport: "unix";
Expand All @@ -972,11 +969,8 @@ declare namespace Deno {
*
* Requires `allow-net` permission for "tcp" and `allow-read` for "unix". */
export function connect(
options: ConnectOptions,
): Promise<Conn<NetAddr>>;
export function connect(
options: UnixConnectOptions,
): Promise<Conn<UnixAddr>>;
options: ConnectOptions | UnixConnectOptions,
): Promise<Conn>;

export interface StartTlsOptions {
/** A literal IP address or host name that can be resolved to an IP address.
Expand Down Expand Up @@ -1005,7 +999,7 @@ declare namespace Deno {
export function startTls(
conn: Conn,
options?: StartTlsOptions,
): Promise<Conn<NetAddr>>;
): Promise<Conn>;

export interface ListenTlsOptions {
/** **UNSTABLE**: new API, yet to be vetted.
Expand Down
6 changes: 0 additions & 6 deletions cli/tests/unit/net_test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,6 @@ unitTest({ perms: { net: true } }, function netTcpListenClose(): void {
listener.close();
});

unitTest({ perms: { net: true } }, function netListenPortType(): void {
const listener = Deno.listen({ port: 0, transport: "tcp" });
listener.addr.port;
listener.close();
});

unitTest(
{
perms: { net: true },
Expand Down
6 changes: 0 additions & 6 deletions runtime/js/40_tls.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,12 +68,6 @@
conn,
{ hostname = "127.0.0.1", certFile } = {},
) {
if (
!(conn.localAddr.transport === "tcp" ||
conn.localAddr.transport === "udp")
) {
throw new TypeError(`conn is not a valid network connection`);
}
const res = await opStartTls({
rid: conn.rid,
hostname,
Expand Down