UNPKG

lemon-core

Version:
108 lines (107 loc) 2.94 kB
import { CoreServices } from '../core-services'; /** * interface: SQSService * - common interface type for `SQS` */ export interface SQSService extends CoreServices { sendMessage(data: any, attr?: SQSAttribute): Promise<string>; receiveMessage(size?: number): Promise<{ list: SqsMessage[]; }>; deleteMessage(handle: string): Promise<void>; statistics(): Promise<SqsStatistics>; } export interface SQSAttribute { [key: string]: string | number; } export interface SqsMessage { sent: number; attr: SQSAttribute; data: any; id: string; handle: string; } export interface SqsStatistics { available: number; inflight: number; delayed: number; timeout: number; } export interface SqsRecord { messageId: string; receiptHandle: string; body: string; attributes: any; messageAttributes: any; md5OfBody: string; md5OfMessageAttributes: string; eventSource: 'aws:sqs'; eventSourceARN: string; awsRegion: string; } /** * class: AWSSQSService * - support of AWS `SQS` Service */ export declare class AWSSQSService implements SQSService { static SQS_REGION: string; static SQS_ENDPOINT: string; protected _region: string; protected _endpoint: string; /** * default constructor. */ constructor(endpoint?: string, region?: string); region(): string; endpoint(): string; /** * hello */ hello: () => string; /** * send message into SQS. * * @param data object data to be json. * @param attr attribute set. */ sendMessage(data: any, attr?: SQSAttribute): Promise<string>; /** * receive message by size. * * @param size (default 1) size of message */ receiveMessage(size?: number): Promise<{ list: SqsMessage[]; }>; /** * delete message by id * @param handle handle-id to delete. */ deleteMessage(handle: string): Promise<void>; /** * statistics for the given type. * * @param {*} TYPE */ statistics(): Promise<SqsStatistics>; } /** **************************************************************************************************************** * Dummy SQS Service ** ****************************************************************************************************************/ /** * class: MyDummySQSService * - simulated dummy `SQSService` which is identical to real-service. */ export declare class MyDummySQSService implements SQSService { private buffer; private endpoint; private timeout; constructor(endpoint: string, timeout?: number); hello: () => string; sendMessage(data: any, attr?: SQSAttribute): Promise<string>; receiveMessage(size?: number): Promise<{ list: SqsMessage[]; }>; deleteMessage(handle: string): Promise<void>; statistics(): Promise<SqsStatistics>; }