@@ -2,24 +2,24 @@ const path = require("path");
22const Mali = require ( "mali" ) ;
33// consider replacing highland with normal node code for converting array to streams
44const hl = require ( "highland" ) ;
5- const grpc = require ( ' grpc' ) ;
5+ const grpc = require ( "@ grpc/grpc-js" ) ;
66
77const PROTO_PATH = path . join ( __dirname , "./protos/hw2.proto" ) ;
88const HOSTPORT = "0.0.0.0:50051" ;
99
1010const dataStream = [
1111 {
12- message : "You"
12+ message : "You" ,
1313 } ,
1414 {
15- message : "Are"
15+ message : "Are" ,
1616 } ,
1717 {
18- message : "doing IT"
18+ message : "doing IT" ,
1919 } ,
2020 {
21- message : "Champ"
22- }
21+ message : "Champ" ,
22+ } ,
2323] ;
2424
2525/**
@@ -31,8 +31,8 @@ const dataStream = [
3131function sayHello ( ctx ) {
3232 // create new metadata
3333 let metadata = new grpc . Metadata ( ) ;
34- metadata . set ( 'it' , ' works?' )
35- metadata . set ( ' indeed' , ' it do' )
34+ metadata . set ( "it" , " works?" ) ;
35+ metadata . set ( " indeed" , " it do" ) ;
3636 // Watcher creates a watch execution context for the watch
3737 // The execution context provides scripts and templates with access to the watch metadata
3838 // console.log("received metadata from client request", ctx.metadata)
@@ -44,8 +44,8 @@ function sayHello(ctx) {
4444 ctx . res = { message : "Hello " + ctx . req . name } ;
4545
4646 // send response header metadata object directly as an argument and that is set and sent
47- metadata . set ( ' UNARY' , ' yes' )
48- ctx . sendMetadata ( metadata )
47+ metadata . set ( " UNARY" , " yes" ) ;
48+ ctx . sendMetadata ( metadata ) ;
4949
5050 // console.log(`set sayHello response: ${ctx.res.message}`);
5151}
@@ -54,8 +54,8 @@ function sayHello(ctx) {
5454function sayHelloNested ( ctx ) {
5555 // create new metadata
5656 let metadata = new grpc . Metadata ( ) ;
57- metadata . set ( 'it' , ' works?' )
58- metadata . set ( ' indeed' , ' it do' )
57+ metadata . set ( "it" , " works?" ) ;
58+ metadata . set ( " indeed" , " it do" ) ;
5959 // Watcher creates a watch execution context for the watch
6060 // The execution context provides scripts and templates with access to the watch metadata
6161 // console.log("received metadata from client request", ctx.metadata)
@@ -66,94 +66,96 @@ function sayHelloNested(ctx) {
6666 let firstPerson = ctx . req . firstPerson . name ;
6767 let secondPerson = ctx . req . secondPerson . name ;
6868 // console.log("firstPerson line 68 from server.js:", firstPerson)
69- ctx . res = { "serverMessage" : [ { message : "Hello! " + firstPerson } , { message : 'Hello! ' + secondPerson } ] }
69+ ctx . res = {
70+ serverMessage : [
71+ { message : "Hello! " + firstPerson } ,
72+ { message : "Hello! " + secondPerson } ,
73+ ] ,
74+ } ;
7075
7176 // send response header metadata object directly as an argument and that is set and sent
72- ctx . sendMetadata ( metadata )
77+ ctx . sendMetadata ( metadata ) ;
7378}
7479// Server-Side Stream
7580// used highland library to manage asynchronous data
7681async function sayHellos ( ctx ) {
7782 // create new metadata
7883 let metadata = new grpc . Metadata ( ) ;
79- metadata . set ( 'it' , ' works?' )
80- metadata . set ( ' indeed' , ' it do' )
84+ metadata . set ( "it" , " works?" ) ;
85+ metadata . set ( " indeed" , " it do" ) ;
8186 // The execution context provides scripts and templates with access to the watch metadata
8287 // console.dir(ctx.metadata, { depth: 3, colors: true });
8388 // converts a request into strings
8489 // console.log(`got sayHellos request name:`, JSON.stringify(ctx.req, null, 4));
8590
8691 // alias for ctx.request.req
8792 // In case of UNARY and RESPONSE_STREAM calls it is simply the gRPC call's request
88-
89- let reqMessages = { "message" : 'hello!!! ' + ctx . req . name }
9093
91- dataStream . push ( reqMessages )
92- reqMessages = dataStream
93- let streamData = await hl ( reqMessages )
94+ let reqMessages = { message : "hello!!! " + ctx . req . name } ;
95+
96+ dataStream . push ( reqMessages ) ;
97+ reqMessages = dataStream ;
98+ let streamData = await hl ( reqMessages ) ;
9499 ctx . res = streamData ;
95- metadata . set ( ' serverStream' , ' indeed' )
96- dataStream . pop ( )
100+ metadata . set ( " serverStream" , " indeed" ) ;
101+ dataStream . pop ( ) ;
97102
98103 // send response header metadata object directly as an argument and that is set and sent
99- ctx . sendMetadata ( metadata )
104+ ctx . sendMetadata ( metadata ) ;
100105
101106 // ends server stream
102- ctx . res . end ( )
107+ ctx . res . end ( ) ;
103108}
104109
105-
106110// Client-Side stream
107- function sayHelloCs ( ctx ) {
111+ function sayHelloCs ( ctx ) {
108112 // create new metadata
109113 let metadata = new grpc . Metadata ( ) ;
110- metadata . set ( 'it' , ' works?' )
111- metadata . set ( ' indeed' , ' it do' )
112- metadata . set ( ' clientStream' , ' indubitably' )
114+ metadata . set ( "it" , " works?" ) ;
115+ metadata . set ( " indeed" , " it do" ) ;
116+ metadata . set ( " clientStream" , " indubitably" ) ;
113117 // The execution context provides scripts and templates with access to the watch metadata
114- console . dir ( ctx . metadata , { depth : 3 , colors : true } )
118+ console . dir ( ctx . metadata , { depth : 3 , colors : true } ) ;
115119 // console.log('got sayHelloClients')
116120 let counter = 0 ;
117121 let messages = [ ] ;
118122 // client streaming calls to write messages and end writing before you can get the response
119123 return new Promise ( ( resolve , reject ) => {
120124 hl ( ctx . req )
121- . map ( message => {
122- counter ++
125+ . map ( ( message ) => {
126+ counter ++ ;
123127 // console.log('message content',message.name)
124- ctx . response . res = { message : ' Client stream: ' + message . name }
125- messages . push ( message . name )
126- ctx . sendMetadata ( metadata )
128+ ctx . response . res = { message : " Client stream: " + message . name } ;
129+ messages . push ( message . name ) ;
130+ ctx . sendMetadata ( metadata ) ;
127131 } )
128132 // returns all the elements as an array
129133 . collect ( )
130134 . toCallback ( ( err , result ) => {
131- if ( err ) return reject ( err )
135+ if ( err ) return reject ( err ) ;
132136 // console.log(`done sayHelloClients counter ${counter}`)
133- ctx . response . res = { message : ' SAYHELLOCs Client stream: ' + messages }
137+ ctx . response . res = { message : " SAYHELLOCs Client stream: " + messages } ;
134138 // console.log(ctx.response.res)
135- resolve ( )
136- } )
137- } )
139+ resolve ( ) ;
140+ } ) ;
141+ } ) ;
138142}
139143
140144// Bi-Di stream
141145function sayHelloBidi ( ctx ) {
142146 // create new metadata
143147 let metadata = new grpc . Metadata ( ) ;
144- metadata . set ( 'it' , ' works?' )
145- metadata . set ( ' indeed' , ' it do' )
148+ metadata . set ( "it" , " works?" ) ;
149+ metadata . set ( " indeed" , " it do" ) ;
146150 // console.log("got sayHelloBidi");
147151 // The execution context provides scripts and templates with access to the watch metadata
148152 console . dir ( ctx . metadata , { depth : 3 , colors : true } ) ;
149153 let counter = 0 ;
150- ctx . req . on ( "data" , d => {
154+ ctx . req . on ( "data" , ( d ) => {
151155 counter ++ ;
152156 ctx . res . write ( { message : "bidi stream: " + d . name } ) ;
153-
154-
155157 } ) ;
156- metadata . set ( ' bidiStream' , ' ohyes' )
158+ metadata . set ( " bidiStream" , " ohyes" ) ;
157159 ctx . sendMetadata ( metadata ) ;
158160 // calls end to client before closing server
159161 ctx . req . on ( "end" , ( ) => {
0 commit comments