MCPcopy Index your code
hub / github.com/Effect-TS/effect / handleMessage

Function handleMessage

packages/platform/src/internal/worker.ts:112–149  ·  view source on GitHub ↗
(response: Worker.Worker.Response<E, O>)

Source from the content-addressed store, hash-verified

110 )
111
112 const handleMessage = (response: Worker.Worker.Response<E, O>) =>
113 Effect.suspend(() => {
114 const mailbox = requestMap.get(response[0])
115 if (!mailbox) return Effect.void
116
117 switch (response[1]) {
118 // data
119 case 0: {
120 return Deferred.DeferredTypeId in mailbox
121 ? Deferred.succeed(mailbox, response[2][0])
122 : mailbox.offerAll(response[2])
123 }
124 // end
125 case 1: {
126 if (response.length === 2) {
127 return Deferred.DeferredTypeId in mailbox
128 ? Deferred.interrupt(mailbox)
129 : mailbox.end
130 }
131 return Deferred.DeferredTypeId in mailbox
132 ? Deferred.succeed(mailbox, response[2][0])
133 : Effect.zipRight(mailbox.offerAll(response[2]), mailbox.end)
134 }
135 // error / defect
136 case 2:
137 case 3: {
138 if (response[1] === 2) {
139 return Deferred.DeferredTypeId in mailbox
140 ? Deferred.fail(mailbox, response[2])
141 : mailbox.fail(response[2])
142 }
143 const cause = WorkerError.decodeCause(response[2])
144 return Deferred.DeferredTypeId in mailbox
145 ? Deferred.failCause(mailbox, cause)
146 : mailbox.failCause(cause)
147 }
148 }
149 })
150
151 const executeAcquire = <
152 Q extends Mailbox.Mailbox<O, E | WorkerError> | Deferred.Deferred<O, E | WorkerError>

Callers 1

spawnFunction · 0.70

Calls 5

failCauseMethod · 0.80
getMethod · 0.65
offerAllMethod · 0.65
failMethod · 0.65
interruptMethod · 0.45

Tested by

no test coverage detected