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

Method #handlePacket

packages/core/src/v3/zodIpc.ts:192–256  ·  view source on GitHub ↗
(packet: Packet)

Source from the content-addressed store, hash-verified

190 }
191
192 async #handlePacket(packet: Packet): Promise<void> {
193 const parsedPacket = Packet.safeParse(packet);
194
195 if (!parsedPacket.success) {
196 // console.error("dropping invalid packet", packet);
197 return;
198 }
199
200 // console.log("<-", packet);
201
202 switch (parsedPacket.data.type) {
203 case "ACK": {
204 // Check our list of ACKs and resolve with the message
205 const ack = this.#acks.get(parsedPacket.data.id);
206
207 if (!ack) {
208 return;
209 }
210
211 clearTimeout(ack.timeout);
212 ack.resolve(parsedPacket.data.message);
213
214 break;
215 }
216 case "CONNECT": {
217 if (!parsedPacket.data.sessionId) {
218 // This is a client trying to connect, so we generate and send back a session ID
219 const id = randomUUID();
220
221 await this.#sendPacket({ type: "CONNECT", sessionId: id });
222
223 return;
224 }
225
226 // This is a server replying to our connect message
227 if (this.#sessionId) {
228 // We're already connected
229 return;
230 }
231
232 this.#sessionId = parsedPacket.data.sessionId;
233
234 break;
235 }
236 case "EVENT": {
237 const result = await this.#handler.handleMessage(parsedPacket.data.message);
238
239 if (typeof parsedPacket.data.id === "undefined") {
240 return;
241 }
242
243 // There's an ID so we should ACK
244 await this.#sendPacket({
245 type: "ACK",
246 id: parsedPacket.data.id,
247 message: result,
248 });
249

Callers 1

#registerHandlersMethod · 0.95

Calls 4

#sendPacketMethod · 0.95
resolveMethod · 0.80
getMethod · 0.45
handleMessageMethod · 0.45

Tested by

no test coverage detected