UNPKG

@eclipse-ditto/ditto-javascript-client-dom

Version:

DOM implementation of Eclipse Ditto JavaScript API to be used in browsers.

77 lines 4.13 kB
/*! * Copyright (c) 2019 Contributors to the Eclipse Foundation * * See the NOTICE file(s) distributed with this work for additional * information regarding copyright ownership. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License 2.0 which is available at * http://www.eclipse.org/legal/epl-2.0 * * SPDX-License-Identifier: EPL-2.0 */ import { WebSocketThingsHandle } from './handles/things.interfaces'; import { FeaturesHandle } from './handles/features.interfaces'; import { EventsHandle } from './handles/events'; import { WebSocketMessagesHandle } from './handles/messages-websocket'; import { CommandsHandle } from './handles/commands'; import { WebSocketRequestSenderFactory } from './request-factory/websocket-request-sender'; import { WebSocketRequestHandler } from './request-factory/websocket-request-handler'; import { AbstractDittoClient, DittoClient, DittoClientHandles } from './ditto-client'; import { CustomBuilderContext } from './builder-steps'; export interface DittoWebSocketClient extends DittoClient<WebSocketThingsHandle, FeaturesHandle> { /** * Builds a handle to subscribe to Events. * * @return an EventsHandle. */ getEventsHandle(customBuildContext?: CustomBuilderContext): EventsHandle; /** * Close underlying websocket */ close(code?: number, data?: string): void; } export interface DittoWebSocketClientHandles extends DittoClientHandles<WebSocketRequestSenderFactory> { thingsHandle?: (requestSender: WebSocketRequestSenderFactory, customBuildContext?: CustomBuilderContext) => WebSocketThingsHandle; eventsHandle?: (requestSender: WebSocketRequestSenderFactory, requestHandler: WebSocketRequestHandler, customBuildContext?: CustomBuilderContext) => EventsHandle; } export interface DittoWebSocketTwinClient extends DittoWebSocketClient { } export interface DittoWebSocketLiveClient extends DittoWebSocketClient { /** * Builds a handle to handle Messages requests and subscriptions. * * @return a WebSocketMessagesHandle. */ getMessagesHandle(customBuildContext?: CustomBuilderContext): WebSocketMessagesHandle; /** * Builds a handle to subscribe to Commands. * * @return a CommandsHandle. */ getCommandsHandle(customBuildContext?: CustomBuilderContext): CommandsHandle; } export interface DittoWebSocketLiveClientHandles extends DittoWebSocketClientHandles { messagesHandle?: (requestSenderFactory: WebSocketRequestSenderFactory, requestHandler: WebSocketRequestHandler, customBuildContext?: CustomBuilderContext) => WebSocketMessagesHandle; commandsHandle?: (requestSenderFactory: WebSocketRequestSenderFactory, requestHandler: WebSocketRequestHandler, customBuildContext?: CustomBuilderContext) => CommandsHandle; } export type AllDittoWebSocketHandles = DittoWebSocketLiveClientHandles; export declare class DefaultDittoWebSocketClient extends AbstractDittoClient<WebSocketRequestSenderFactory, AllDittoWebSocketHandles> implements DittoWebSocketClient, DittoWebSocketLiveClient { private readonly responseHandler; private constructor(); /** * Returns an instance of DittoClient based on the context provided. * * @param requestSenderFactory - The request sender factory to use. * @param requester - The requester to use. * @param customHandles - custom handles to use with the client. * @return the DittoClient instance. */ static getInstance(requestSenderFactory: WebSocketRequestSenderFactory, requester: WebSocketRequestHandler, customHandles?: DittoWebSocketLiveClientHandles): DefaultDittoWebSocketClient; getThingsHandle(customBuildContext?: CustomBuilderContext): WebSocketThingsHandle; getEventsHandle(customBuildContext?: CustomBuilderContext): EventsHandle; getMessagesHandle(customBuildContext?: CustomBuilderContext): WebSocketMessagesHandle; getCommandsHandle(customBuildContext?: CustomBuilderContext): CommandsHandle; close(code?: number, data?: string): void; } //# sourceMappingURL=ditto-client-websocket.d.ts.map