aws-iot-device-sdk-v2
Version:
NodeJS API for the AWS IoT service
75 lines (74 loc) • 2.59 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from "events";
import { CrtError, mqtt_request_response } from "aws-crt";
import * as mqtt_request_response_utils from "./mqtt_request_response_utils";
export interface IncomingPublishEvent<T> {
message: T;
}
/**
* Signature for a handler that listens to incoming publish events.
*/
export type IncomingPublishListener<T> = (eventData: IncomingPublishEvent<T>) => void;
export interface IncomingPublishErrorEvent {
payload: ArrayBuffer;
error: ServiceError;
}
/**
* Signature for a handler that listens to incoming publish error events
*/
export type IncomingPublishErrorListener = (eventData: IncomingPublishErrorEvent) => void;
export type SubscriptionStatusEventListener = mqtt_request_response.SubscriptionStatusListener;
export declare class StreamingOperation<EventType> extends EventEmitter {
private operation;
private deserializer;
private constructor();
static create<EventType>(config: mqtt_request_response_utils.StreamingOperationConfig): StreamingOperation<EventType>;
open(): void;
close(): void;
/**
* Event emitted when the stream's subscription status changes.
*
* Listener type: {@link mqtt_request_response.SubscriptionStatusListener}
*
* @event
*/
static SUBSCRIPTION_STATUS: string;
/**
* Event emitted when a stream message is received
*
* Listener type: {@link IncomingPublishListener}
*
* @event
*/
static INCOMING_PUBLISH: string;
/**
* Event emitted when a stream message is received but handling it resulted in an error
*
* Listener type: {@link IncomingPublishErrorListener}
*
* @event
*/
static INCOMING_PUBLISH_ERROR: string;
on(event: 'subscriptionStatus', listener: mqtt_request_response.SubscriptionStatusListener): this;
on(event: 'incomingPublish', listener: IncomingPublishListener<EventType>): this;
on(event: 'incomingPublishError', listener: IncomingPublishErrorListener): this;
private onSubscriptionStatusChanged;
private onIncomingPublish;
}
/**
* @internal
*/
interface ServiceErrorOptions {
description: string;
internalError?: CrtError;
modeledError?: any;
}
export declare class ServiceError extends Error {
/** Optional inner/triggering error that can contain additional context. */
readonly internalError?: CrtError;
/** Optional service-specific modelled error data */
readonly modeledError?: any;
/** @internal */
constructor(options: ServiceErrorOptions);
}
export {};