UNPKG

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

Version:

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

87 lines 5.05 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 { WebSocketStateHandler } from './request-factory/resilience/websocket-resilience-interfaces'; import { WebSocketRequestSenderFactory } from './request-factory/websocket-request-sender'; import { WebSocketImplementationBuilderUrl } from './request-factory/websocket-request-handler'; import { DefaultDittoWebSocketClient, DittoWebSocketClient, DittoWebSocketLiveClient, DittoWebSocketTwinClient } from './ditto-client-websocket'; import { WebSocketThingsHandle } from './handles/things.interfaces'; import { WebSocketMessagesHandle } from './handles/messages-websocket'; import { CommandsHandle } from './handles/commands'; import { EventsHandle } from './handles/events'; import { FeaturesHandle } from './handles/features.interfaces'; import { AuthProvider } from '../auth/auth-provider'; import { ApiVersion, Channel } from '../model/ditto-protocol'; import { AbstractBuilder, BuildStep, CustomBuilderContext, CustomCommandsHandleStep, CustomEventsHandleStep, CustomFeaturesHandleStep, CustomMessagesHandleStep, CustomThingsHandleStep, ProtocolStep } from './builder-steps'; export interface WebSocketBuilderInitialStep extends ProtocolStep<WebSocketBufferStep> { } export interface WebSocketBufferStep extends BuildStep { withoutBuffer(): WebSocketChannelStep; withBuffer(size: number): WebSocketChannelStep; } export interface WebSocketChannelStep extends BuildStep { liveChannel(): WebSocketBuildStepLive; twinChannel(): WebSocketBuildStepTwin; } export interface WebSocketStateHandlerStep extends BuildStep { withStateHandler(handler: WebSocketStateHandler): this; } export interface WebSocketBuildStep extends BuildStep, WebSocketStateHandlerStep { /** * Builds a DittoClient for the selected API. * * @returns The DittoClient */ build(): DittoWebSocketClient; } /** * Step that allows to add custom handles for a client. */ export interface WebSocketCustomHandlesBuildStep extends BuildStep, WebSocketBuildStep, CustomThingsHandleStep<WebSocketRequestSenderFactory, WebSocketThingsHandle>, CustomFeaturesHandleStep<WebSocketRequestSenderFactory, FeaturesHandle>, CustomEventsHandleStep<WebSocketRequestSenderFactory, EventsHandle>, CustomMessagesHandleStep<WebSocketRequestSenderFactory, WebSocketMessagesHandle>, CustomCommandsHandleStep<WebSocketRequestSenderFactory, CommandsHandle> { } export interface WebSocketBuildStepLive extends WebSocketCustomHandlesBuildStep { build(): DittoWebSocketLiveClient; } export interface WebSocketBuildStepTwin extends WebSocketCustomHandlesBuildStep { build(): DittoWebSocketTwinClient; } /** * Implementation of all the methods to build a Context. */ export declare class WebSocketClientBuilder extends AbstractBuilder<WebSocketBufferStep> implements WebSocketBufferStep, WebSocketChannelStep, WebSocketBuildStepLive, WebSocketBuildStepTwin { private readonly builder; private channel; private stateHandler; private resilienceFactory; private customHandles; private constructor(); /** * Creates a new WebSocket Builder. * * @param urlBuilder The url builder used by the builder. */ static newBuilder(urlBuilder: WebSocketImplementationBuilderUrl): WebSocketBuilderInitialStep; finalize(): WebSocketBufferStep; withStateHandler(handler: WebSocketStateHandler): this; withBuffer(size: number): WebSocketChannelStep; withoutBuffer(): WebSocketChannelStep; liveChannel(): WebSocketBuildStepLive; twinChannel(): WebSocketBuildStepTwin; withCustomThingsHandle(factory: (requestSenderFactory: WebSocketRequestSenderFactory, customBuilderContext?: CustomBuilderContext) => WebSocketThingsHandle): this; withCustomFeaturesHandle(factory: (requestSenderFactory: WebSocketRequestSenderFactory, thingsId: string, customBuilderContext?: CustomBuilderContext) => FeaturesHandle): this; withCustomMessagesHandle(factory: (requestSenderFactory: WebSocketRequestSenderFactory, customBuilderContext?: CustomBuilderContext) => WebSocketMessagesHandle): this; withCustomEventsHandle(factory: (requestSenderFactory: WebSocketRequestSenderFactory, customBuilderContext?: CustomBuilderContext) => EventsHandle): this; withCustomCommandsHandle(factory: (requestSenderFactory: WebSocketRequestSenderFactory, customBuilderContext?: CustomBuilderContext) => CommandsHandle): this; build(): DefaultDittoWebSocketClient; buildClient(tls: boolean, domain: string, apiVersion: ApiVersion, stateHandler: WebSocketStateHandler, channel: Channel, authProviders: AuthProvider[]): DittoWebSocketClient; } //# sourceMappingURL=websocket-client-builder.d.ts.map