@@ -59,67 +59,70 @@ export function getGitpodService(): GitpodService {
59
59
const service = _gp . gitpodService || ( _gp . gitpodService = require ( "./service-mock" ) . gitpodServiceMock ) ;
60
60
return service ;
61
61
}
62
- let user : any ;
63
- const service = _gp . gitpodService || ( _gp . gitpodService = createGitpodService ( ) ) ;
64
- service . server = new Proxy ( service . server , {
65
- get ( target , propKey ) {
66
- return async function ( ...args : any [ ] ) {
67
- if ( propKey === "getLoggedInUser" ) {
68
- user = await target [ propKey ] ( ...args ) ;
69
- return user ;
70
- }
71
- if ( propKey === "getWorkspace" ) {
72
- try {
73
- return await target [ propKey ] ( ...args ) ;
74
- } finally {
75
- const grpcType = "unary" ;
76
- // emulates frequent unary calls to public API
77
- const isTest = await getExperimentsClient ( ) . getValueAsync (
78
- "public_api_dummy_reliability_test" ,
79
- false ,
80
- { user, grpcType } ,
81
- ) ;
82
- if ( isTest ) {
83
- helloService . sayHello ( { } ) . catch ( ( e ) => {
84
- metricsReporter . reportError ( e , {
85
- userId : user ?. id ,
86
- workspaceId : args [ 0 ] ,
87
- grpcType,
62
+ let service = _gp . gitpodService ;
63
+ if ( ! service ) {
64
+ let user : any ;
65
+ service = _gp . gitpodService = createGitpodService ( ) ;
66
+ service . server = new Proxy ( service . server , {
67
+ get ( target , propKey ) {
68
+ return async function ( ...args : any [ ] ) {
69
+ if ( propKey === "getLoggedInUser" ) {
70
+ user = await target [ propKey ] ( ...args ) ;
71
+ return user ;
72
+ }
73
+ if ( propKey === "getWorkspace" ) {
74
+ try {
75
+ return await target [ propKey ] ( ...args ) ;
76
+ } finally {
77
+ const grpcType = "unary" ;
78
+ // emulates frequent unary calls to public API
79
+ const isTest = await getExperimentsClient ( ) . getValueAsync (
80
+ "public_api_dummy_reliability_test" ,
81
+ false ,
82
+ { user, grpcType } ,
83
+ ) ;
84
+ if ( isTest ) {
85
+ helloService . sayHello ( { } ) . catch ( ( e ) => {
86
+ metricsReporter . reportError ( e , {
87
+ userId : user ?. id ,
88
+ workspaceId : args [ 0 ] ,
89
+ grpcType,
90
+ } ) ;
91
+ console . error ( e ) ;
88
92
} ) ;
89
- console . error ( e ) ;
90
- } ) ;
93
+ }
91
94
}
92
95
}
93
- }
94
- return target [ propKey ] ( ...args ) ;
95
- } ;
96
- } ,
97
- } ) ;
98
- ( async ( ) => {
99
- const grpcType = "server-stream" ;
100
- // emulates server side streaming with public API
101
- while ( true ) {
102
- const isTest = await getExperimentsClient ( ) . getValueAsync ( "public_api_dummy_reliability_test" , false , {
103
- user,
104
- grpcType,
105
- } ) ;
106
- if ( isTest ) {
107
- try {
108
- let previousCount = 0 ;
109
- for await ( const reply of helloService . lotsOfReplies ( { previousCount } ) ) {
110
- previousCount = reply . count ;
96
+ return target [ propKey ] ( ...args ) ;
97
+ } ;
98
+ } ,
99
+ } ) ;
100
+ ( async ( ) => {
101
+ const grpcType = "server-stream" ;
102
+ // emulates server side streaming with public API
103
+ while ( true ) {
104
+ const isTest = await getExperimentsClient ( ) . getValueAsync ( "public_api_dummy_reliability_test" , false , {
105
+ user,
106
+ grpcType,
107
+ } ) ;
108
+ if ( isTest ) {
109
+ try {
110
+ let previousCount = 0 ;
111
+ for await ( const reply of helloService . lotsOfReplies ( { previousCount } ) ) {
112
+ previousCount = reply . count ;
113
+ }
114
+ } catch ( e ) {
115
+ metricsReporter . reportError ( e , {
116
+ userId : user ?. id ,
117
+ grpcType,
118
+ } ) ;
119
+ console . error ( e ) ;
111
120
}
112
- } catch ( e ) {
113
- metricsReporter . reportError ( e , {
114
- userId : user ?. id ,
115
- grpcType,
116
- } ) ;
117
- console . error ( e ) ;
118
121
}
122
+ await new Promise ( ( resolve ) => setTimeout ( resolve , 3000 ) ) ;
119
123
}
120
- await new Promise ( ( resolve ) => setTimeout ( resolve , 3000 ) ) ;
121
- }
122
- } ) ( ) ;
124
+ } ) ( ) ;
125
+ }
123
126
return service ;
124
127
}
125
128
0 commit comments