@effect/platform-node 0.45.31 → 0.46.1
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.
- package/dist/cjs/NodeFileSystem/ParcelWatcher.js +42 -0
- package/dist/cjs/NodeFileSystem/ParcelWatcher.js.map +1 -0
- package/dist/cjs/NodeHttpClient.js +11 -1
- package/dist/cjs/NodeHttpClient.js.map +1 -1
- package/dist/cjs/internal/http/client.js +1 -1
- package/dist/cjs/internal/http/client.js.map +1 -1
- package/dist/cjs/internal/http/clientUndici.js +11 -3
- package/dist/cjs/internal/http/clientUndici.js.map +1 -1
- package/dist/cjs/internal/http/server.js +9 -9
- package/dist/cjs/internal/http/server.js.map +1 -1
- package/dist/cjs/internal/worker.js +1 -1
- package/dist/cjs/internal/worker.js.map +1 -1
- package/dist/cjs/internal/workerRunner.js +3 -3
- package/dist/cjs/internal/workerRunner.js.map +1 -1
- package/dist/dts/Http/Server.d.ts +2 -2
- package/dist/dts/Http/Server.d.ts.map +1 -1
- package/dist/dts/NodeFileSystem/ParcelWatcher.d.ts +8 -0
- package/dist/dts/NodeFileSystem/ParcelWatcher.d.ts.map +1 -0
- package/dist/dts/NodeHttpClient.d.ts +14 -0
- package/dist/dts/NodeHttpClient.d.ts.map +1 -1
- package/dist/esm/NodeFileSystem/ParcelWatcher.js +10 -0
- package/dist/esm/NodeFileSystem/ParcelWatcher.js.map +1 -0
- package/dist/esm/NodeHttpClient.js +10 -0
- package/dist/esm/NodeHttpClient.js.map +1 -1
- package/dist/esm/internal/http/client.js +1 -1
- package/dist/esm/internal/http/client.js.map +1 -1
- package/dist/esm/internal/http/clientUndici.js +10 -2
- package/dist/esm/internal/http/clientUndici.js.map +1 -1
- package/dist/esm/internal/http/server.js +9 -9
- package/dist/esm/internal/http/server.js.map +1 -1
- package/dist/esm/internal/worker.js +1 -1
- package/dist/esm/internal/worker.js.map +1 -1
- package/dist/esm/internal/workerRunner.js +3 -3
- package/dist/esm/internal/workerRunner.js.map +1 -1
- package/package.json +5 -5
- package/src/Http/Server.ts +3 -3
- package/src/NodeFileSystem/ParcelWatcher.ts +12 -0
- package/src/NodeHttpClient.ts +19 -0
- package/src/internal/http/client.ts +1 -1
- package/src/internal/http/clientUndici.ts +23 -2
- package/src/internal/http/server.ts +15 -15
- package/src/internal/worker.ts +1 -1
- package/src/internal/workerRunner.ts +4 -4
|
@@ -21,7 +21,7 @@ import * as FiberSet from "effect/FiberSet"
|
|
|
21
21
|
import { type LazyArg } from "effect/Function"
|
|
22
22
|
import * as Layer from "effect/Layer"
|
|
23
23
|
import * as Option from "effect/Option"
|
|
24
|
-
import type { ReadonlyRecord } from "effect/
|
|
24
|
+
import type { ReadonlyRecord } from "effect/Record"
|
|
25
25
|
import * as Scope from "effect/Scope"
|
|
26
26
|
import * as Stream from "effect/Stream"
|
|
27
27
|
import * as Http from "node:http"
|
|
@@ -51,7 +51,7 @@ export const make = (
|
|
|
51
51
|
if (error) {
|
|
52
52
|
resume(Effect.die(error))
|
|
53
53
|
} else {
|
|
54
|
-
resume(Effect.
|
|
54
|
+
resume(Effect.void)
|
|
55
55
|
}
|
|
56
56
|
})
|
|
57
57
|
})
|
|
@@ -62,7 +62,7 @@ export const make = (
|
|
|
62
62
|
resume(Effect.fail(new Error.ServeError({ error })))
|
|
63
63
|
})
|
|
64
64
|
server.listen(options, () => {
|
|
65
|
-
resume(Effect.
|
|
65
|
+
resume(Effect.void)
|
|
66
66
|
})
|
|
67
67
|
}))
|
|
68
68
|
|
|
@@ -73,7 +73,7 @@ export const make = (
|
|
|
73
73
|
Effect.sync(() => new WS.WebSocketServer({ noServer: true })),
|
|
74
74
|
(wss) =>
|
|
75
75
|
Effect.async<void>((resume) => {
|
|
76
|
-
wss.close(() => resume(Effect.
|
|
76
|
+
wss.close(() => resume(Effect.void))
|
|
77
77
|
})
|
|
78
78
|
),
|
|
79
79
|
Scope.extend(scope),
|
|
@@ -114,20 +114,20 @@ export const make = (
|
|
|
114
114
|
|
|
115
115
|
/** @internal */
|
|
116
116
|
export const makeHandler: {
|
|
117
|
-
<R, E>(httpApp: App.Default<
|
|
117
|
+
<R, E>(httpApp: App.Default<E, R>): Effect.Effect<
|
|
118
118
|
(nodeRequest: Http.IncomingMessage, nodeResponse: Http.ServerResponse) => void,
|
|
119
119
|
never,
|
|
120
120
|
Exclude<R, ServerRequest.ServerRequest | Scope.Scope>
|
|
121
121
|
>
|
|
122
122
|
<R, E, App extends App.Default<any, any>>(
|
|
123
|
-
httpApp: App.Default<
|
|
124
|
-
middleware: Middleware.Middleware.Applied<
|
|
123
|
+
httpApp: App.Default<E, R>,
|
|
124
|
+
middleware: Middleware.Middleware.Applied<App, E, R>
|
|
125
125
|
): Effect.Effect<
|
|
126
126
|
(nodeRequest: Http.IncomingMessage, nodeResponse: Http.ServerResponse) => void,
|
|
127
127
|
never,
|
|
128
128
|
Exclude<Effect.Effect.Context<App>, ServerRequest.ServerRequest | Scope.Scope>
|
|
129
129
|
>
|
|
130
|
-
} = <
|
|
130
|
+
} = <E, R>(httpApp: App.Default<E, R>, middleware?: Middleware.Middleware) => {
|
|
131
131
|
const handledApp = App.toHandled(httpApp, (request, exit) => {
|
|
132
132
|
if (exit._tag === "Success") {
|
|
133
133
|
return Effect.catchAllCause(
|
|
@@ -164,7 +164,7 @@ export const makeHandler: {
|
|
|
164
164
|
/** @internal */
|
|
165
165
|
export const makeUpgradeHandler = <R, E>(
|
|
166
166
|
lazyWss: Effect.Effect<WS.WebSocketServer>,
|
|
167
|
-
httpApp: App.Default<
|
|
167
|
+
httpApp: App.Default<E, R>,
|
|
168
168
|
middleware?: Middleware.Middleware
|
|
169
169
|
) => {
|
|
170
170
|
const handledApp = App.toHandled(httpApp, (request, exit) => {
|
|
@@ -380,7 +380,7 @@ const handleResponse = (request: ServerRequest.ServerRequest, response: ServerRe
|
|
|
380
380
|
Effect.suspend((): Effect.Effect<void, Error.ResponseError> => {
|
|
381
381
|
const nodeResponse = (request as ServerRequestImpl).resolvedResponse
|
|
382
382
|
if (nodeResponse.writableEnded) {
|
|
383
|
-
return Effect.
|
|
383
|
+
return Effect.void
|
|
384
384
|
}
|
|
385
385
|
|
|
386
386
|
let headers: Record<string, string | Array<string>> = response.headers
|
|
@@ -396,14 +396,14 @@ const handleResponse = (request: ServerRequest.ServerRequest, response: ServerRe
|
|
|
396
396
|
if (request.method === "HEAD") {
|
|
397
397
|
nodeResponse.writeHead(response.status, headers)
|
|
398
398
|
nodeResponse.end()
|
|
399
|
-
return Effect.
|
|
399
|
+
return Effect.void
|
|
400
400
|
}
|
|
401
401
|
const body = response.body
|
|
402
402
|
switch (body._tag) {
|
|
403
403
|
case "Empty": {
|
|
404
404
|
nodeResponse.writeHead(response.status, headers)
|
|
405
405
|
nodeResponse.end()
|
|
406
|
-
return Effect.
|
|
406
|
+
return Effect.void
|
|
407
407
|
}
|
|
408
408
|
case "Raw": {
|
|
409
409
|
nodeResponse.writeHead(response.status, headers)
|
|
@@ -423,12 +423,12 @@ const handleResponse = (request: ServerRequest.ServerRequest, response: ServerRe
|
|
|
423
423
|
})
|
|
424
424
|
}
|
|
425
425
|
nodeResponse.end(body.body)
|
|
426
|
-
return Effect.
|
|
426
|
+
return Effect.void
|
|
427
427
|
}
|
|
428
428
|
case "Uint8Array": {
|
|
429
429
|
nodeResponse.writeHead(response.status, headers)
|
|
430
430
|
nodeResponse.end(body.body)
|
|
431
|
-
return Effect.
|
|
431
|
+
return Effect.void
|
|
432
432
|
}
|
|
433
433
|
case "FormData": {
|
|
434
434
|
return Effect.async<void, Error.ResponseError>((resume) => {
|
|
@@ -450,7 +450,7 @@ const handleResponse = (request: ServerRequest.ServerRequest, response: ServerRe
|
|
|
450
450
|
))
|
|
451
451
|
})
|
|
452
452
|
.once("finish", () => {
|
|
453
|
-
resume(Effect.
|
|
453
|
+
resume(Effect.void)
|
|
454
454
|
})
|
|
455
455
|
})
|
|
456
456
|
}
|
package/src/internal/worker.ts
CHANGED
|
@@ -15,12 +15,12 @@ const platformRunnerImpl = Runner.PlatformRunner.of({
|
|
|
15
15
|
return yield* _(new WorkerError({ reason: "spawn", error: new Error("not in worker") }))
|
|
16
16
|
}
|
|
17
17
|
const port = WorkerThreads.parentPort
|
|
18
|
-
const queue = yield* _(Queue.unbounded<I>())
|
|
18
|
+
const queue = yield* _(Queue.unbounded<readonly [portId: number, message: I]>())
|
|
19
19
|
yield* _(
|
|
20
20
|
Effect.async<never, WorkerError>((resume) => {
|
|
21
21
|
port.on("message", (message: Runner.BackingRunner.Message<I>) => {
|
|
22
22
|
if (message[0] === 0) {
|
|
23
|
-
queue.unsafeOffer(message[1])
|
|
23
|
+
queue.unsafeOffer([0, message[1]])
|
|
24
24
|
} else {
|
|
25
25
|
Effect.runFork(shutdown)
|
|
26
26
|
}
|
|
@@ -32,7 +32,7 @@ const platformRunnerImpl = Runner.PlatformRunner.of({
|
|
|
32
32
|
resume(new WorkerError({ reason: "unknown", error }))
|
|
33
33
|
})
|
|
34
34
|
}),
|
|
35
|
-
Effect.tapErrorCause((cause) => Cause.isInterruptedOnly(cause) ? Effect.
|
|
35
|
+
Effect.tapErrorCause((cause) => Cause.isInterruptedOnly(cause) ? Effect.void : Effect.logDebug(cause)),
|
|
36
36
|
Effect.retry(Schedule.forever),
|
|
37
37
|
Effect.annotateLogs({
|
|
38
38
|
package: "@effect/platform-node",
|
|
@@ -41,7 +41,7 @@ const platformRunnerImpl = Runner.PlatformRunner.of({
|
|
|
41
41
|
Effect.interruptible,
|
|
42
42
|
Effect.forkScoped
|
|
43
43
|
)
|
|
44
|
-
const send = (message: O, transfers?: ReadonlyArray<unknown>) =>
|
|
44
|
+
const send = (_portId: number, message: O, transfers?: ReadonlyArray<unknown>) =>
|
|
45
45
|
Effect.sync(() => port.postMessage([1, message], transfers as any))
|
|
46
46
|
// ready
|
|
47
47
|
port.postMessage([0])
|