UNPKG

ivr-tester

Version:

An automated testing framework for IVR call flows

45 lines (44 loc) 1.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PromptTranscriptionBuilder = void 0; class PromptTranscriptionBuilder { constructor() { this.transcriptions = []; } add(event) { this.transcriptions.push(event); } clear() { this.transcriptions = []; } merge() { if (this.transcriptions.length === 0) { return PromptTranscriptionBuilder.EMPTY_TRANSCRIPTION; } // If all transcripts partial then return last partial const areAllPartial = this.transcriptions.every((t) => t.isFinal === false); if (areAllPartial) { const lastPartial = this.transcriptions[this.transcriptions.length - 1]; return lastPartial.transcription; } // Return finals const areAllFinals = this.transcriptions.every((t) => t.isFinal); if (areAllFinals) { return this.transcriptions.map((t) => t.transcription).join(" "); } // Return Merged finals and last partial const lastTranscription = this.transcriptions[this.transcriptions.length - 1]; const mergedFinals = this.transcriptions .filter((t) => t.isFinal) .map((t) => t.transcription) .join(" "); if (lastTranscription.isFinal) { return mergedFinals; } else { return `${mergedFinals} ${lastTranscription.transcription}`; } } } exports.PromptTranscriptionBuilder = PromptTranscriptionBuilder; PromptTranscriptionBuilder.EMPTY_TRANSCRIPTION = "";