UNPKG

@aws-amplify/pubsub

Version:

Pubsub category of aws-amplify

78 lines (77 loc) 3.1 kB
import Observable from 'zen-observable-ts'; import { ProviderOptions } from '../../types/Provider'; import { CustomUserAgentDetails } from '@aws-amplify/core'; import { GRAPHQL_AUTH_MODE } from '@aws-amplify/auth'; import { AbstractPubSubProvider } from '../PubSubProvider'; import { PubSubContent, PubSubContentObserver } from '../../types/PubSub'; import { SUBSCRIPTION_STATUS } from '../constants'; export declare type ObserverQuery = { observer: PubSubContentObserver; query: string; variables: Record<string, unknown>; subscriptionState: SUBSCRIPTION_STATUS; subscriptionReadyCallback?: Function; subscriptionFailedCallback?: Function; startAckTimeoutId?: ReturnType<typeof setTimeout>; }; declare type GraphqlAuthModes = keyof typeof GRAPHQL_AUTH_MODE; export interface AWSAppSyncRealTimeProviderOptions extends ProviderOptions { appSyncGraphqlEndpoint?: string; authenticationType?: GraphqlAuthModes; query?: string; variables?: Record<string, unknown>; apiKey?: string; region?: string; graphql_headers?: () => {} | (() => Promise<{}>); additionalHeaders?: { [key: string]: string; }; } export declare class AWSAppSyncRealTimeProvider extends AbstractPubSubProvider<AWSAppSyncRealTimeProviderOptions> { private awsRealTimeSocket?; private socketStatus; private keepAliveTimeoutId?; private keepAliveTimeout; private keepAliveAlertTimeoutId?; private subscriptionObserverMap; private promiseArray; private connectionState; private readonly connectionStateMonitor; private readonly reconnectionMonitor; private connectionStateMonitorSubscription; constructor(options?: ProviderOptions); /** * Mark the socket closed and release all active listeners */ close(): void; getNewWebSocket(url: string, protocol: string): WebSocket; getProviderName(): string; newClient(): Promise<any>; publish(_topics: string[] | string, _msg: PubSubContent, _options?: AWSAppSyncRealTimeProviderOptions): Promise<void>; private isCustomDomain; subscribe(_topics: string[] | string, options?: AWSAppSyncRealTimeProviderOptions, customUserAgentDetails?: CustomUserAgentDetails): Observable<Record<string, unknown>>; protected get isSSLEnabled(): boolean; private _startSubscriptionWithAWSAppSyncRealTime; private _logStartSubscriptionError; private _waitForSubscriptionToBeConnected; private _sendUnsubscriptionMessage; private _removeSubscriptionObserver; private _closeSocketIfRequired; private _handleIncomingSubscriptionMessage; private _errorDisconnect; private _timeoutStartSubscriptionAck; private _initializeWebSocketConnection; private _initializeRetryableHandshake; private _initializeHandshake; private _awsRealTimeHeaderBasedAuth; private _awsRealTimeCUPHeader; private _awsRealTimeOPENIDHeader; private _awsRealTimeApiKeyHeader; private _awsRealTimeIAMHeader; private _customAuthHeader; /** * @private */ _ensureCredentials(): any; } export {};