UNPKG

stub-azure-function-context

Version:

Provides an object similar to Function Runtime's context for use in unit testing

60 lines 1.84 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.QueueBinding = void 0; const crypto_1 = require("crypto"); const MESSAGE_MAP = { messageId: 'id', messageText: 'queueTrigger', dequeueCount: 'dequeueCount', expiresOn: 'expirationTime', insertedOn: 'insertionTime', nextVisibleOn: 'nextVisibleTime', popReceipt: 'popReceipt', }; class QueueBinding { static createFromMessageText(queueTrigger) { const now = Date.now(); return new QueueBinding({ id: (0, crypto_1.randomUUID)(), queueTrigger, dequeueCount: 1, insertionTime: new Date(now).toJSON(), expirationTime: new Date(now + (7 * 24 * 60 * 60 * 1000)).toJSON(), nextVisibleTime: new Date(now + (5 * 60 * 1000)).toJSON(), popReceipt: (0, crypto_1.randomUUID)(), }); } static createFromDequeuedMessageItem(messageItem) { const keys = Object.keys(MESSAGE_MAP); const bindingData = keys.reduce((bindingData, messageKey) => { const key = MESSAGE_MAP[messageKey]; return { ...bindingData, [key]: messageItem[messageKey], }; }, {}); return new QueueBinding(bindingData); } data; constructor(bindingData) { this.data = bindingData; } toContextBinding() { return this.data; } toTrigger() { if (typeof this.data.queueTrigger === 'string') { try { return JSON.parse(this.data.queueTrigger); } catch (e) { } } return this.data.queueTrigger; } toBindingData() { return this.data; } } exports.QueueBinding = QueueBinding; //# sourceMappingURL=queue-binding.js.map