UNPKG

@ovotech/genesys-web-messaging-tester

Version:
43 lines (42 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SessionTranscriber = void 0; const events_1 = require("events"); /** * Transcribes a Web Messenger session into an array of transcribed messages. */ class SessionTranscriber extends events_1.EventEmitter { constructor(messengerSession, { nameForClient = 'You', nameForServer = 'Them', } = {}) { super(); this.messengerSession = messengerSession; this.conversation = []; this._nameForClient = nameForClient; this._nameForServer = nameForServer; this.messengerSession.on('structuredMessage', (event) => { this.recordStructuredMessage(event); }); } recordStructuredMessage(event) { if (event.body.type !== 'Text' && event.body.type !== 'Structured') { return; } const who = event.body.direction === 'Inbound' ? this._nameForClient : this._nameForServer; const message = event.body.text; const interaction = { who, message, toString: () => { return `${who}: ${message}`; }, }; this.conversation.push(interaction); this.emitInteraction(interaction); } emitInteraction(interaction) { this.emit('messageTranscribed', interaction); } getTranscript() { return this.conversation; } } exports.SessionTranscriber = SessionTranscriber;