@eclipse-ditto/ditto-javascript-client-dom
Version:
DOM implementation of Eclipse Ditto JavaScript API to be used in browsers.
87 lines • 5.05 kB
TypeScript
/*!
* 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