File tree Expand file tree Collapse file tree 3 files changed +46
-2
lines changed
Expand file tree Collapse file tree 3 files changed +46
-2
lines changed Original file line number Diff line number Diff line change @@ -36,6 +36,11 @@ export interface ClientMessageCreateRecognizer {
3636 grammar ?: string ;
3737}
3838
39+ export interface ClientMessageRetrieveFinalResult {
40+ action : "retrieveFinalResult" ;
41+ recognizerId : string ;
42+ }
43+
3944export interface ClientMessageRemoveRecognizer {
4045 action : "remove" ;
4146 recognizerId : string ;
@@ -47,6 +52,7 @@ export type ClientMessage =
4752 | ClientMessageCreateRecognizer
4853 | ClientMessageAudioChunk
4954 | ClientMessageSet
55+ | ClientMessageRetrieveFinalResult
5056 | ClientMessageRemoveRecognizer ;
5157
5258export namespace ClientMessage {
@@ -80,6 +86,12 @@ export namespace ClientMessage {
8086 return message ?. action === "create" ;
8187 }
8288
89+ export function isRecognizerRetrieveFinalResultMessage (
90+ message : ClientMessage
91+ ) : message is ClientMessageRetrieveFinalResult {
92+ return message ?. action === "retrieveFinalResult" ;
93+ }
94+
8395 export function isRecognizerRemoveMessage (
8496 message : ClientMessage
8597 ) : message is ClientMessageRemoveRecognizer {
Original file line number Diff line number Diff line change @@ -8,12 +8,12 @@ import {
88 ClientMessageTerminate ,
99 ClientMessageLoad ,
1010 ClientMessageRemoveRecognizer ,
11+ ClientMessageCreateRecognizer ,
12+ ClientMessageRetrieveFinalResult ,
1113 ModelMessage ,
1214 RecognizerEvent ,
1315 RecognizerMessage ,
1416 ServerMessage ,
15- ServerMessageLoadResult ,
16- ClientMessageCreateRecognizer ,
1717} from "./interfaces" ;
1818import { Logger } from "./utils/logging" ;
1919
@@ -211,6 +211,13 @@ export class Model extends EventTarget {
211211 ) ;
212212 }
213213
214+ public retrieveFinalResult ( ) : void {
215+ model . postMessage < ClientMessageRetrieveFinalResult > ( {
216+ action : "retrieveFinalResult" ,
217+ recognizerId : this . id ,
218+ } ) ;
219+ }
220+
214221 public remove ( ) : void {
215222 model . unregisterRecognizer ( this . id ) ;
216223
Original file line number Diff line number Diff line change @@ -92,6 +92,15 @@ export class RecognizerWorker {
9292 return ;
9393 }
9494
95+ if ( ClientMessage . isRecognizerRetrieveFinalResultMessage ( message ) ) {
96+ this . retrieveFinalResult ( message . recognizerId )
97+ . then ( ( result ) => {
98+ ctx . postMessage ( result ) ;
99+ } )
100+ . catch ( ( error ) => ctx . postMessage ( { event : "error" , recognizerId : message . recognizerId , error : error . message } ) ) ;
101+ return ;
102+ }
103+
95104 if ( ClientMessage . isTerminateMessage ( message ) ) {
96105 this . terminate ( ) ;
97106 return ;
@@ -301,6 +310,22 @@ export class RecognizerWorker {
301310 }
302311 }
303312
313+ private async retrieveFinalResult ( recognizerId : string ) {
314+ if ( ! this . recognizers . has ( recognizerId ) ) {
315+ throw new Error (
316+ `Recognizer (id: ${ recognizerId } ): Does not exist or has already been deleted`
317+ ) ;
318+ }
319+ const recognizer = this . recognizers . get ( recognizerId ) ! ;
320+ const finalResult = recognizer . recognizer . FinalResult ( ) ;
321+
322+ return {
323+ event : "result" ,
324+ recognizerId,
325+ result : JSON . parse ( finalResult ) ,
326+ } ;
327+ }
328+
304329 private async removeRecognizer ( recognizerId : string ) {
305330 if ( ! this . recognizers . has ( recognizerId ) ) {
306331 throw new Error (
You can’t perform that action at this time.
0 commit comments