@eclipse-emfcloud/modelserver-theia
Version:
## Typescript Client API
50 lines • 2.96 kB
TypeScript
/// <reference types="ws" />
/********************************************************************************
* Copyright (c) 2022 STMicroelectronics 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
* https://www.eclipse.org/legal/epl-2.0, or the MIT License which is
* available at https://opensource.org/licenses/MIT.
*
* SPDX-License-Identifier: EPL-2.0 OR MIT
*******************************************************************************/
import { ModelServerClientApiV1, ModelServerClientApiV2, SubscriptionListener, SubscriptionOptionsV2 } from '@eclipse-emfcloud/modelserver-client';
import { JsonRpcServer } from '@theia/core';
import WebSocket from 'isomorphic-ws';
import URI from 'urijs';
export declare const MODEL_SERVER_CLIENT_SERVICE_PATH = "/services/modelserverclient";
export declare const MODEL_SERVER_CLIENT_V2_SERVICE_PATH = "/services/modelserverclient/v2";
export declare const ModelServerFrontendClient: unique symbol;
export interface ModelServerFrontendClient {
onOpen(modeluri: URI, event: WebSocket.Event): void;
onClose(modeluri: URI, event: WebSocket.CloseEvent): void;
onError(modeluri: URI, event: WebSocket.ErrorEvent): void;
onMessage(modeluri: URI, event: WebSocket.MessageEvent): void;
}
export declare const TheiaModelServerClient: unique symbol;
export interface TheiaModelServerClient extends ModelServerClientApiV1, JsonRpcServer<ModelServerFrontendClient> {
}
export declare const TheiaModelServerClientV2: unique symbol;
export interface TheiaModelServerClientV2 extends ModelServerClientApiV2, JsonRpcServer<ModelServerFrontendClient> {
/**
* Subscribe to model notifications. In the Theia context, the `listener` parameter is optional because
* it defaults to the frontend client proxy.
*
* @param modeluri the URI of the model to which to subscribe
* @param listener the subscription listener. If omitted, the front-end client is substituted. This lets the
* client handle both Theia RPC events and the messages from the _Model Server_
* @param options optional subscription options, including message format, time-out, and message filtering
*/
subscribe(modeluri: URI, listener?: SubscriptionListener, options?: SubscriptionOptionsV2): SubscriptionListener;
/**
* Subscribe the frontend client of the remote `TheiaModelServerClientV2` service as
* the `SubscriptionListener` handler for model notifications. This is
* equivalent to passing `undefined` as the second argument to the {@link subscribe} method.
*
* @param modeluri the URI of the model to which to subscribe
* @param options optional subscription options, including message format, time-out, and message filtering
*/
selfSubscribe(modeluri: URI, options?: SubscriptionOptionsV2): void;
}
//# sourceMappingURL=protocol.d.ts.map