ivr-tester
Version:
An automated testing framework for IVR call flows
45 lines (44 loc) • 1.6 kB
JavaScript
;
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 = "";