diff --git a/src/node/plugin.ts b/src/node/plugin.ts index 1e9e901c7..cf06d3d70 100644 --- a/src/node/plugin.ts +++ b/src/node/plugin.ts @@ -7,7 +7,7 @@ import * as pluginapi from "../../typings/pluginapi" import { version } from "./constants" import { proxy } from "./proxy" import * as util from "./util" -import { Router as WsRouter, WebsocketRouter } from "./wsRouter" +import { Router as WsRouter, WebsocketRouter, wss } from "./wsRouter" const fsp = fs.promises /** @@ -24,6 +24,7 @@ require("module")._load = function (request: string, parent: object, isMain: boo Level, proxy, WsRouter, + wss, } } return originalLoad.apply(this, [request, parent, isMain]) diff --git a/test/test-plugin/src/index.ts b/test/test-plugin/src/index.ts index c7d03bdd2..211ddf0d8 100644 --- a/test/test-plugin/src/index.ts +++ b/test/test-plugin/src/index.ts @@ -1,8 +1,5 @@ import * as cs from "code-server" import * as fspath from "path" -import Websocket from "ws" - -const wss = new Websocket.Server({ noServer: true }) export const plugin: cs.Plugin = { displayName: "Test Plugin", @@ -28,7 +25,7 @@ export const plugin: cs.Plugin = { wsRouter() { const wr = cs.WsRouter() wr.ws("/test-app", (req) => { - wss.handleUpgrade(req, req.socket, req.head, (ws) => { + cs.wss.handleUpgrade(req, req.socket, req.head, (ws) => { ws.send("hello") }) }) diff --git a/typings/pluginapi.d.ts b/typings/pluginapi.d.ts index 1802f089f..aa9ce0ff3 100644 --- a/typings/pluginapi.d.ts +++ b/typings/pluginapi.d.ts @@ -6,6 +6,7 @@ import * as express from "express" import * as expressCore from "express-serve-static-core" import ProxyServer from "http-proxy" import * as net from "net" +import Websocket from "ws" /** * Overlay @@ -102,6 +103,11 @@ export interface WebsocketRouter { */ export function WsRouter(): WebsocketRouter +/** + * The websocket server used by code-server. + */ +export const wss: Websocket.Server + /** * The Express import used by code-server. * @@ -110,7 +116,6 @@ export function WsRouter(): WebsocketRouter * instances. */ export { express } - /** * Use to add a field to a log. *