@effect/platform-node 4.0.0-beta.101 → 4.0.0-beta.103

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/Mime.js.map +1 -1
  2. package/dist/NodeClusterHttp.d.ts +1 -0
  3. package/dist/NodeClusterHttp.d.ts.map +1 -1
  4. package/dist/NodeClusterHttp.js +6 -1
  5. package/dist/NodeClusterHttp.js.map +1 -1
  6. package/dist/NodeClusterSocket.d.ts +1 -0
  7. package/dist/NodeClusterSocket.d.ts.map +1 -1
  8. package/dist/NodeClusterSocket.js +10 -2
  9. package/dist/NodeClusterSocket.js.map +1 -1
  10. package/dist/NodeCrypto.js.map +1 -1
  11. package/dist/NodeFileSystem.js.map +1 -1
  12. package/dist/NodeHttpClient.d.ts +18 -18
  13. package/dist/NodeHttpClient.d.ts.map +1 -1
  14. package/dist/NodeHttpClient.js +25 -19
  15. package/dist/NodeHttpClient.js.map +1 -1
  16. package/dist/NodeHttpIncomingMessage.js.map +1 -1
  17. package/dist/NodeHttpPlatform.d.ts +8 -4
  18. package/dist/NodeHttpPlatform.d.ts.map +1 -1
  19. package/dist/NodeHttpPlatform.js +38 -0
  20. package/dist/NodeHttpPlatform.js.map +1 -1
  21. package/dist/NodeHttpServer.d.ts +21 -16
  22. package/dist/NodeHttpServer.d.ts.map +1 -1
  23. package/dist/NodeHttpServer.js +22 -20
  24. package/dist/NodeHttpServer.js.map +1 -1
  25. package/dist/NodeHttpServerRequest.js.map +1 -1
  26. package/dist/NodeMultipart.js.map +1 -1
  27. package/dist/NodePath.js.map +1 -1
  28. package/dist/NodeRedis.js.map +1 -1
  29. package/dist/NodeRuntime.js.map +1 -1
  30. package/dist/NodeServices.js.map +1 -1
  31. package/dist/NodeSocket.js.map +1 -1
  32. package/dist/NodeStdio.js.map +1 -1
  33. package/dist/NodeTerminal.js.map +1 -1
  34. package/dist/NodeWorker.js.map +1 -1
  35. package/dist/NodeWorkerRunner.d.ts.map +1 -1
  36. package/dist/NodeWorkerRunner.js +30 -18
  37. package/dist/NodeWorkerRunner.js.map +1 -1
  38. package/dist/Undici.d.ts +2 -2
  39. package/dist/Undici.js +2 -2
  40. package/dist/Undici.js.map +1 -1
  41. package/dist/index.js.map +1 -1
  42. package/package.json +10 -11
  43. package/src/NodeClusterHttp.ts +6 -2
  44. package/src/NodeClusterSocket.ts +8 -2
  45. package/src/NodeHttpClient.ts +22 -18
  46. package/src/NodeHttpPlatform.ts +49 -0
  47. package/src/NodeHttpServer.ts +60 -45
  48. package/src/NodeWorkerRunner.ts +39 -23
  49. package/src/Undici.ts +2 -2
@@ -16,6 +16,7 @@ import * as Effect from "effect/Effect"
16
16
  import * as Exit from "effect/Exit"
17
17
  import * as Fiber from "effect/Fiber"
18
18
  import * as Layer from "effect/Layer"
19
+ import * as Scope from "effect/Scope"
19
20
  import { WorkerError, WorkerReceiveError, WorkerSpawnError } from "effect/unstable/workers/WorkerError"
20
21
  import * as WorkerRunner from "effect/unstable/workers/WorkerRunner"
21
22
  import * as WorkerThreads from "node:worker_threads"
@@ -56,7 +57,8 @@ export const layer: Layer.Layer<WorkerRunner.WorkerRunnerPlatform> = Layer.succe
56
57
  runFork(Effect.logError("unhandled error in worker", exit.cause))
57
58
  }
58
59
  }
59
- ;(WorkerThreads.parentPort ?? process).on("message", (message: WorkerRunner.PlatformMessage<I>) => {
60
+ const port = WorkerThreads.parentPort ?? process
61
+ function onMessage(message: WorkerRunner.PlatformMessage<I>) {
60
62
  if (message[0] === 0) {
61
63
  const result = handler(0, message[1])
62
64
  if (Effect.isEffect(result)) {
@@ -72,32 +74,46 @@ export const layer: Layer.Layer<WorkerRunner.WorkerRunnerPlatform> = Layer.succe
72
74
  }
73
75
  Deferred.doneUnsafe(closeLatch, Exit.void)
74
76
  }
75
- })
77
+ }
78
+ port.on("message", onMessage)
76
79
 
77
- if (WorkerThreads.parentPort) {
78
- WorkerThreads.parentPort.on("messageerror", (cause) => {
79
- Deferred.doneUnsafe(
80
- closeLatch,
81
- new WorkerError({
82
- reason: new WorkerReceiveError({
83
- message: "received messageerror event",
84
- cause
85
- })
80
+ function onMessageError(cause: unknown) {
81
+ Deferred.doneUnsafe(
82
+ closeLatch,
83
+ new WorkerError({
84
+ reason: new WorkerReceiveError({
85
+ message: "received messageerror event",
86
+ cause
86
87
  })
87
- )
88
- })
89
- WorkerThreads.parentPort.on("error", (cause) => {
90
- Deferred.doneUnsafe(
91
- closeLatch,
92
- new WorkerError({
93
- reason: new WorkerReceiveError({
94
- message: "received messageerror event",
95
- cause
96
- })
88
+ })
89
+ )
90
+ }
91
+ function onError(cause: unknown) {
92
+ Deferred.doneUnsafe(
93
+ closeLatch,
94
+ new WorkerError({
95
+ reason: new WorkerReceiveError({
96
+ message: "received error event",
97
+ cause
97
98
  })
98
- )
99
- })
99
+ })
100
+ )
100
101
  }
102
+ if (WorkerThreads.parentPort) {
103
+ WorkerThreads.parentPort.on("messageerror", onMessageError)
104
+ WorkerThreads.parentPort.on("error", onError)
105
+ }
106
+
107
+ yield* Scope.addFinalizer(
108
+ scope,
109
+ Effect.sync(() => {
110
+ port.off("message", onMessage)
111
+ if (WorkerThreads.parentPort) {
112
+ WorkerThreads.parentPort.off("messageerror", onMessageError)
113
+ WorkerThreads.parentPort.off("error", onError)
114
+ }
115
+ })
116
+ )
101
117
 
102
118
  sendUnsafe(0, [0])
103
119
 
package/src/Undici.ts CHANGED
@@ -17,13 +17,13 @@
17
17
  import Undici from "undici"
18
18
 
19
19
  /**
20
- * @category Undici
20
+ * @category re-exports
21
21
  * @since 4.0.0
22
22
  */
23
23
  export * from "undici"
24
24
 
25
25
  /**
26
- * @category Undici
26
+ * @category re-exports
27
27
  * @since 4.0.0
28
28
  */
29
29
  export default Undici