UNPKG

@eclipse-glsp/protocol

Version:

The protocol definition for client-server communication in GLSP

52 lines 2.15 kB
/******************************************************************************** * Copyright (c) 2023-2024 EclipseSource and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at * http://www.eclipse.org/legal/epl-2.0. * * This Source Code may also be made available under the following Secondary * Licenses when the conditions for such availability set forth in the Eclipse * Public License v. 2.0 are satisfied: GNU General Public License, version 2 * with the GNU Classpath Exception which is available at * https://www.gnu.org/software/classpath/license.html. * * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 ********************************************************************************/ /// <reference types="node" /> import { Logger, MessageConnection } from 'vscode-jsonrpc'; import { MaybePromise } from '../../utils/type-util'; export interface GLSPWebSocketOptions { /** * Allow automatic reconnect of WebSocket connections * @default true */ reconnecting?: boolean; /** * Max attempts of reconnects * @default Infinity */ reconnectAttempts?: number; /** * The time delay in milliseconds between reconnect attempts * @default 1000 */ reconnectDelay?: number; } export declare const GLSPConnectionHandler: unique symbol; export interface GLSPConnectionHandler { onConnection?(connection: MessageConnection): MaybePromise<void>; onReconnect?(connection: MessageConnection): MaybePromise<void>; logger?: Logger; } export declare class GLSPWebSocketProvider { protected url: string; protected webSocket: WebSocket; protected reconnectTimer: NodeJS.Timeout; protected reconnectAttempts: number; protected options: GLSPWebSocketOptions; constructor(url: string, options?: GLSPWebSocketOptions); protected createWebSocket(url: string): WebSocket; listen(handler: GLSPConnectionHandler, isReconnecting?: boolean): Promise<MessageConnection>; } //# sourceMappingURL=ws-connection-provider.d.ts.map