MCPcopy Index your code
hub / github.com/triggerdotdev/trigger.dev / handleSocket

Method handleSocket

apps/yalt/src/index.ts:175–219  ·  view source on GitHub ↗
(socket: WebSocket)

Source from the content-addressed store, hash-verified

173 }
174
175 private async handleSocket(socket: WebSocket) {
176 if (this.socket) {
177 this.socket.close(1000, 'replaced');
178 }
179
180 this.socket = socket;
181
182 this.socket.addEventListener('message', (event) => {
183 // Here we need to listen for "response" messages from the client and send them to the server via stored promises on this object
184 const data = JSON.parse(typeof event.data === 'string' ? event.data : new TextDecoder('utf-8').decode(event.data));
185
186 const message = ClientMessages.safeParse(data);
187
188 if (!message.success) {
189 console.error(message.error);
190 return;
191 }
192
193 switch (message.data.type) {
194 case 'response': {
195 const { id, ...response } = message.data;
196
197 const resolver = this.responseResolvers[id];
198
199 if (!resolver) {
200 console.error(`No resolver found for ${id}`);
201 return;
202 }
203
204 delete this.responseResolvers[id];
205
206 resolver.resolve(
207 new Response(response.body, {
208 status: response.status,
209 headers: response.headers,
210 }),
211 );
212
213 break;
214 }
215 }
216 });
217
218 this.socket.accept();
219 }
220
221 private async handleTunnelRequest(request: Request): Promise<Response> {
222 if (!this.socket) {

Callers 1

fetchMethod · 0.95

Calls 4

parseMethod · 0.80
resolveMethod · 0.80
errorMethod · 0.65
closeMethod · 0.45

Tested by

no test coverage detected