code-server/packages/ide/src/fill/net.ts

56 lines
1.3 KiB
TypeScript
Raw Normal View History

import * as net from "net";
import { Client } from "@coder/protocol";
2019-01-19 07:04:24 +07:00
import { client } from "./client";
type NodeNet = typeof net;
/**
* Implementation of net for the browser.
*/
class Net implements NodeNet {
public constructor(
private readonly client: Client,
) {}
public get Socket(): typeof net.Socket {
return this.client.Socket;
}
public get Server(): typeof net.Server {
throw new Error("not implemented");
}
public connect(): net.Socket {
throw new Error("not implemented");
}
public createConnection(target: string | number | net.NetConnectOpts, host?: string | Function, callback?: Function): net.Socket {
if (typeof target === "object") {
throw new Error("not implemented");
}
return this.client.createConnection(target, typeof host === "function" ? host : callback) as net.Socket;
}
public isIP(_input: string): number {
throw new Error("not implemented");
}
public isIPv4(_input: string): boolean {
throw new Error("not implemented");
}
public isIPv6(_input: string): boolean {
throw new Error("not implemented");
}
public createServer(
_options?: { allowHalfOpen?: boolean, pauseOnConnect?: boolean } | ((socket: net.Socket) => void),
_connectionListener?: (socket: net.Socket) => void,
): net.Server {
return this.client.createServer() as net.Server;
}
}
2019-01-19 07:04:24 +07:00
export = new Net(client);