@naktibalda/stub-azure-function-context
Version:
Unmaintained fork of stub-azure-function-context
49 lines • 1.55 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.QueueBinding = void 0;
const uuid_1 = require("uuid");
const MESSAGE_MAP = {
messageId: 'id',
messageText: 'queueTrigger',
dequeueCount: 'dequeueCount',
expiresOn: 'expirationTime',
insertedOn: 'insertionTime',
nextVisibleOn: 'nextVisibleTime',
popReceipt: 'popReceipt',
};
class QueueBinding {
constructor(bindingData) {
this.data = bindingData;
}
static createFromMessageText(queueTrigger) {
const now = Date.now();
return new QueueBinding({
id: (0, uuid_1.v4)(),
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, uuid_1.v4)(),
});
}
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);
}
toContextBinding() {
return this.data;
}
toTrigger() {
return this.data.queueTrigger;
}
}
exports.QueueBinding = QueueBinding;
//# sourceMappingURL=queue-binding.js.map