@akadenia/azure-storage
Version:
Microsoft Azure storage helper methods
91 lines (90 loc) • 4.09 kB
TypeScript
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>;
}