UNPKG

@akadenia/azure-storage

Version:
91 lines (90 loc) 4.09 kB
import { QueueClient, QueueSendMessageResponse } from "@azure/storage-queue"; export interface QueueManagedIdentityOptions { accountName: string; managedIdentityClientId?: string; } /** * @class QueueStorage - A class that contains azure queue storage helpers * Supports both connection string and managed identity authentication */ export declare class QueueStorage { private queueServiceClient; constructor(connectionString: string); constructor(managedIdentityOptions: QueueManagedIdentityOptions); /** * Gets a QueueClient for a specific queue * @param {string} queueName - The name of the queue * @returns {QueueClient} - A QueueClient instance for the specified queue */ getQueueClient(queueName: string): QueueClient; /** * Sends a message to the specified queue * @param {string} queueName - The name of the queue * @param {string | object} message - The message to send (string or object that will be JSON stringified) * @param {boolean} base64Encode - Whether to base64 encode the message (default: true) * @returns {Promise<QueueSendMessageResponse>} - The response from the queue operation * @throws {Error} If queue name or message is missing */ sendMessage(queueName: string, message: string | object, base64Encode?: boolean): Promise<QueueSendMessageResponse>; /** * Receives messages from the specified queue * @param {string} queueName - The name of the queue * @param {number} maxMessages - Maximum number of messages to receive (1-32, default: 1) * @param {number} visibilityTimeout - Visibility timeout in seconds (default: 30) * @returns {Promise<any>} - The received messages * @throws {Error} If queue name is missing */ receiveMessages(queueName: string, maxMessages?: number, visibilityTimeout?: number): Promise<any>; /** * Deletes a message from the specified queue * @param {string} queueName - The name of the queue * @param {string} messageId - The message ID * @param {string} popReceipt - The pop receipt from when the message was received * @returns {Promise<void>} * @throws {Error} If queue name, message ID, or pop receipt is missing */ deleteMessage(queueName: string, messageId: string, popReceipt: string): Promise<void>; /** * Peeks messages from the specified queue without removing them * @param {string} queueName - The name of the queue * @param {number} maxMessages - Maximum number of messages to peek (1-32, default: 1) * @returns {Promise<any>} - The peeked messages * @throws {Error} If queue name is missing */ peekMessages(queueName: string, maxMessages?: number): Promise<any>; /** * Clears all messages from the specified queue * @param {string} queueName - The name of the queue * @returns {Promise<void>} * @throws {Error} If queue name is missing */ clearMessages(queueName: string): Promise<void>; /** * Creates a queue if it doesn't exist * @param {string} queueName - The name of the queue to create * @returns {Promise<void>} * @throws {Error} If queue name is missing */ createQueue(queueName: string): Promise<void>; /** * Deletes a queue * @param {string} queueName - The name of the queue to delete * @returns {Promise<void>} * @throws {Error} If queue name is missing */ deleteQueue(queueName: string): Promise<void>; /** * Checks if a queue exists * @param {string} queueName - The name of the queue * @returns {Promise<boolean>} - True if the queue exists, false otherwise * @throws {Error} If queue name is missing */ queueExists(queueName: string): Promise<boolean>; /** * Gets the approximate number of messages in a queue * @param {string} queueName - The name of the queue * @returns {Promise<number>} - The approximate message count * @throws {Error} If queue name is missing */ getMessageCount(queueName: string): Promise<number>; }