@@ -3,59 +3,59 @@ import { NewEvalMessage, TypedValue, EvalFailedMessage, EvalDoneMessage, ServerM
33import { SendableConnection } from "../common/connection" ;
44
55export const evaluate = async ( connection : SendableConnection , message : NewEvalMessage ) : Promise < void > => {
6- const argStr : string [ ] = [ ] ;
7- message . getArgsList ( ) . forEach ( ( value ) => {
8- argStr . push ( value ) ;
9- } ) ;
10- const sendResp = ( resp : any ) : void => {
11- const evalDone = new EvalDoneMessage ( ) ;
12- evalDone . setId ( message . getId ( ) ) ;
13- const tof = typeof resp ;
14- if ( tof !== "undefined" ) {
15- const tv = new TypedValue ( ) ;
16- let t : TypedValue . Type ;
17- switch ( tof ) {
18- case "string" :
19- t = TypedValue . Type . STRING ;
20- break ;
21- case "boolean" :
22- t = TypedValue . Type . BOOLEAN ;
23- break ;
24- case "object" :
25- t = TypedValue . Type . OBJECT ;
26- break ;
27- case "number" :
28- t = TypedValue . Type . NUMBER ;
29- break ;
30- default :
31- sendErr ( EvalFailedMessage . Reason . EXCEPTION , `unsupported response type ${ tof } ` ) ;
32- return ;
33- }
34- tv . setValue ( tof === "string" ? resp : JSON . stringify ( resp ) ) ;
35- tv . setType ( t ) ;
36- evalDone . setResponse ( tv ) ;
37- }
6+ const argStr : string [ ] = [ ] ;
7+ message . getArgsList ( ) . forEach ( ( value ) => {
8+ argStr . push ( value ) ;
9+ } ) ;
10+ const sendResp = ( resp : any ) : void => {
11+ const evalDone = new EvalDoneMessage ( ) ;
12+ evalDone . setId ( message . getId ( ) ) ;
13+ const tof = typeof resp ;
14+ if ( tof !== "undefined" ) {
15+ const tv = new TypedValue ( ) ;
16+ let t : TypedValue . Type ;
17+ switch ( tof ) {
18+ case "string" :
19+ t = TypedValue . Type . STRING ;
20+ break ;
21+ case "boolean" :
22+ t = TypedValue . Type . BOOLEAN ;
23+ break ;
24+ case "object" :
25+ t = TypedValue . Type . OBJECT ;
26+ break ;
27+ case "number" :
28+ t = TypedValue . Type . NUMBER ;
29+ break ;
30+ default :
31+ sendErr ( EvalFailedMessage . Reason . EXCEPTION , `unsupported response type ${ tof } ` ) ;
32+ return ;
33+ }
34+ tv . setValue ( tof === "string" ? resp : JSON . stringify ( resp ) ) ;
35+ tv . setType ( t ) ;
36+ evalDone . setResponse ( tv ) ;
37+ }
3838
39- const serverMsg = new ServerMessage ( ) ;
40- serverMsg . setEvalDone ( evalDone ) ;
41- connection . send ( serverMsg . serializeBinary ( ) ) ;
42- } ;
43- const sendErr = ( reason : EvalFailedMessage . Reason , msg : string ) : void => {
44- const evalFailed = new EvalFailedMessage ( ) ;
45- evalFailed . setId ( message . getId ( ) ) ;
46- evalFailed . setReason ( reason ) ;
47- evalFailed . setMessage ( msg ) ;
39+ const serverMsg = new ServerMessage ( ) ;
40+ serverMsg . setEvalDone ( evalDone ) ;
41+ connection . send ( serverMsg . serializeBinary ( ) ) ;
42+ } ;
43+ const sendErr = ( reason : EvalFailedMessage . Reason , msg : string ) : void => {
44+ const evalFailed = new EvalFailedMessage ( ) ;
45+ evalFailed . setId ( message . getId ( ) ) ;
46+ evalFailed . setReason ( reason ) ;
47+ evalFailed . setMessage ( msg ) ;
4848
49- const serverMsg = new ServerMessage ( ) ;
50- serverMsg . setEvalFailed ( evalFailed ) ;
51- connection . send ( serverMsg . serializeBinary ( ) ) ;
52- } ;
53- try {
54- const value = vm . runInNewContext ( `(${ message . getFunction ( ) } )(${ argStr . join ( "," ) } )` , { require, setTimeout } , {
55- timeout : message . getTimeout ( ) || 30000 ,
56- } ) ;
57- sendResp ( await value ) ;
58- } catch ( ex ) {
59- sendErr ( EvalFailedMessage . Reason . EXCEPTION , ex . toString ( ) ) ;
60- }
49+ const serverMsg = new ServerMessage ( ) ;
50+ serverMsg . setEvalFailed ( evalFailed ) ;
51+ connection . send ( serverMsg . serializeBinary ( ) ) ;
52+ } ;
53+ try {
54+ const value = vm . runInNewContext ( `(${ message . getFunction ( ) } )(${ argStr . join ( "," ) } )` , { require, setTimeout } , {
55+ timeout : message . getTimeout ( ) || 30000 ,
56+ } ) ;
57+ sendResp ( await value ) ;
58+ } catch ( ex ) {
59+ sendErr ( EvalFailedMessage . Reason . EXCEPTION , ex . toString ( ) ) ;
60+ }
6161} ;
0 commit comments