```sh npm install --save @blackglory/mq-js # or yarn add @blackglory/mq-js ```
npm install @blackglory/mq-jssh
npm install --save @blackglory/mq-js
or
yarn add @blackglory/mq-js
`API
$3
`ts
interface IMQClientOptions {
server: string
timeout?: number
retryIntervalForReconnection?: number
}interface IQueueConfig extends JSONObject {
unique: boolean
draftingTimeout: number
orderedTimeout: number
activeTimeout: number
concurrency: number | null
behaviorWhenCompleted: AdditionalBehavior
behaviorWhenAbandoned: AdditionalBehavior
}
interface IMessage {
slots: Record
priority: number | null
state: MessageState
}
interface IQueueStats {
drafting: number
waiting: number
ordered: number
active: number
failed: number
completed: number
abandoned: number
}
enum MessageState {
Drafting
, Waiting
, Ordered
, Active
, Failed
, Completed
, Abandoned
}
enum AdditionalBehavior {
None
, RemoveMessage
, RemoveAllSlots
}
class QueueNotFound extends CustomError {}
class MessageNotFound extends CustomError {}
class SlotNotFound extends CustomError {}
class DuplicateMessage extends CustomError {}
class DuplicateMessageId extends CustomError {}
class BadMessageState extends CustomError {}
class MQClient {
static create(options: IMQClientOptions): Promise
close(): Promise
getAllQueueIds(signal?: AbortSignal): Promise
getQueue(queueId: string, signal?: AbortSignal): Promise
setQueue(queueId: string, config: IQueueConfig, signal?: AbortSignal): Promise
removeQueue(queueId: string, signal?: AbortSignal): Promise
getQueueStats(queueId: string, signal?: AbortSignal): Promise
resetQueue(queueId: string, signal?: AbortSignal): Promise
/**
* @throws {QueueNotFound}
* @throws {DuplicateMessageId}
*/
draftMessage(
queueId: string
, priority: number | null
, slotNames: NonEmptyArray
, messageId?: string
, signal?: AbortSignal
): Promise
draftMessage(
queueId: string
, priority: number | null
, slotNames: NonEmptyArray
, signal?: AbortSignal
): Promise
/**
* @throws {QueueNotFound}
* @throws {MessageNotFound}
* @throws {SlotNotFound}
* @throws {BadMessageState}
* @throws {DuplicateMessage}
*/
setMessageSlot(
queueId: string
, messageId: string
, slotName: string
, value: JSONValue
, signal?: AbortSignal
): Promise
/**
* @throws {QueueNotFound}
* @throws {AbortError}
*/
orderMessage(queueId: string, signal?: AbortSignal): Promise
/**
* @throws {QueueNotFound}
*/
getMessage(
queueId: string
, messageId: string
, signal?: AbortSignal
): Promise
/**
* @throws {QueueNotFound}
*/
peekMessage(
queueId: string
, messageId: string
, signal?: AbortSignal
): Promise
/**
* @throws {QueueNotFound}
* @throws {MessageNotFound}
* @throws {BadMessageState}
*/
completeMessage(queueId: string, messageId: string, signal?: AbortSignal): Promise
/**
* @throws {QueueNotFound}
* @throws {MessageNotFound}
* @throws {BadMessageState}
*/
failMessage(queueId: string, messageId: string, signal?: AbortSignal): Promise
/**
* @throws {QueueNotFound}
* @throws {MessageNotFound}
* @throws {BadMessageState}
*/
renewMessage(queueId: string, messageId: string, signal?: AbortSignal): Promise
/**
* @throws {QueueNotFound}
* @throws {MessageNotFound}
*/
abandonMessage(queueId: string, messageId: string, signal?: AbortSignal): Promise
/**
* @throws {QueueNotFound}
*/
removeMessage(queueId: string, messageId: string, signal?: AbortSignal): Promise
/**
* @throws {QueueNotFound}
*/
abandonAllFailedMessages(queueId: string, signal?: AbortSignal): Promise
/**
* @throws {QueueNotFound}
*/
renewAllFailedMessages(queueId: string, signal?: AbortSignal): Promise
/**
* @throws {QueueNotFound}
*/
getMessageIdsByState(
queueId: string
, state: MessageState
, signal?: AbortSignal
): Promise
/**
* @throws {QueueNotFound}
*/
clearMessagesByState(
queueId: string
, state: MessageState
, signal?: AbortSignal
): Promise
}
``