@eclipse-emfcloud/modelserver-client
Version:
Typescript rest client to interact with an EMF.cloud modelserver
72 lines • 4.41 kB
TypeScript
/********************************************************************************
* Copyright (c) 2021-2023 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 { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
import WebSocket from 'isomorphic-ws';
import URI from 'urijs';
import { ModelServerClientApiV1, ModelServerError, ServerConfiguration, SubscriptionOptions } from './model-server-client-api-v1';
import { Mapper, MessageDataMapper, Model, ModelServerMessage } from './model-server-message';
import { ModelServerCommand } from './model/command-model';
import { Diagnostic } from './model/diagnostic';
import { SubscriptionListener } from './subscription-listener';
import { AnyObject, TypeGuard } from './utils/type-util';
/**
* A client to interact with a model server.
*/
export declare class ModelServerClient implements ModelServerClientApiV1 {
protected restClient: AxiosInstance;
protected openSockets: Map<string, WebSocket>;
protected _baseUrl: URI;
protected defaultFormat: string;
initialize(baseUrl: URI): void | Promise<void>;
protected getAxisConfig(baseURL: URI): AxiosRequestConfig | undefined;
get(modeluri: URI): Promise<AnyObject>;
get<M>(modeluri: URI, typeGuard: TypeGuard<M>): Promise<M>;
get(modeluri: URI, format: string): Promise<string>;
getAll(): Promise<Model[]>;
getAll<M>(typeGuard: TypeGuard<M>): Promise<Model<M>[]>;
getAll(format: string): Promise<Model<string>[]>;
getModelUris(): Promise<URI[]>;
getElementById(modeluri: URI, elementid: string): Promise<AnyObject>;
getElementById<M>(modeluri: URI, elementid: string, typeGuard: TypeGuard<M>): Promise<M>;
getElementById(modeluri: URI, elementid: string, format: string): Promise<string>;
getElementByName(modeluri: URI, elementname: string): Promise<AnyObject>;
getElementByName<M>(modeluri: URI, elementname: string, typeGuard: TypeGuard<M>, format?: string): Promise<M>;
getElementByName(modeluri: URI, elementname: string, format: string): Promise<string>;
create(modeluri: URI, model: AnyObject | string): Promise<AnyObject>;
create(modeluri: URI, model: AnyObject | string, format: string): Promise<string>;
create<M>(modeluri: URI, model: AnyObject | string, typeGuard: TypeGuard<M>): Promise<M>;
update(modeluri: URI, model: AnyObject | string): Promise<AnyObject>;
update<M>(modeluri: URI, model: string | string, typeGuard: TypeGuard<M>): Promise<M>;
update(modeluri: URI, model: AnyObject | string, format: string): Promise<AnyObject>;
delete(modeluri: URI): Promise<boolean>;
close(modeluri: URI): Promise<boolean>;
save(modeluri: URI): Promise<boolean>;
saveAll(): Promise<boolean>;
validate(modeluri: URI): Promise<Diagnostic>;
getValidationConstraints(modeluri: URI): Promise<string>;
getTypeSchema(modeluri: URI): Promise<string>;
getUiSchema(schemaname: string): Promise<string>;
configureServer(configuration: ServerConfiguration): Promise<boolean>;
ping(): Promise<boolean>;
edit(modeluri: URI, command: ModelServerCommand): Promise<boolean>;
undo(modeluri: URI): Promise<string>;
redo(modeluri: URI): Promise<string>;
send(modeluri: URI, message: ModelServerMessage): boolean;
subscribe(modeluri: URI, options?: SubscriptionOptions): void;
unsubscribe(modeluri: URI): boolean;
protected createSubscriptionPath(modeluri: URI, options: SubscriptionOptions): URI;
protected doSubscribe(listener: SubscriptionListener, modeluri: URI, path: URI): void;
protected isSocketOpen(modeluri: URI): boolean;
protected process<T>(request: Promise<AxiosResponse<ModelServerMessage>>, mapper: MessageDataMapper<T>): Promise<T>;
protected processMessageAsData<M>(request: Promise<AxiosResponse<M>>): Promise<M>;
protected processGeneric<M, T>(request: Promise<AxiosResponse<M>>, mapper: Mapper<M, T>, erroResponse: (message: M) => ModelServerError | undefined): Promise<T>;
}
//# sourceMappingURL=model-server-client.d.ts.map