@effect/platform-node 0.104.1 → 4.0.0-beta.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/Mime.d.ts +15 -0
- package/dist/Mime.d.ts.map +1 -0
- package/dist/Mime.js +16 -0
- package/dist/Mime.js.map +1 -0
- package/dist/NodeChildProcessSpawner.d.ts +7 -0
- package/dist/NodeChildProcessSpawner.d.ts.map +1 -0
- package/dist/NodeChildProcessSpawner.js +7 -0
- package/dist/NodeChildProcessSpawner.js.map +1 -0
- package/dist/NodeClusterHttp.d.ts +44 -0
- package/dist/NodeClusterHttp.d.ts.map +1 -0
- package/dist/{esm/NodeClusterHttp.js → NodeClusterHttp.js} +14 -18
- package/dist/NodeClusterHttp.js.map +1 -0
- package/dist/{dts/NodeClusterSocket.d.ts → NodeClusterSocket.d.ts} +13 -13
- package/dist/NodeClusterSocket.d.ts.map +1 -0
- package/dist/{esm/NodeClusterSocket.js → NodeClusterSocket.js} +13 -13
- package/dist/NodeClusterSocket.js.map +1 -0
- package/dist/NodeFileSystem.d.ts +8 -0
- package/dist/NodeFileSystem.d.ts.map +1 -0
- package/dist/NodeFileSystem.js.map +1 -0
- package/dist/NodeHttpClient.d.ts +110 -0
- package/dist/NodeHttpClient.d.ts.map +1 -0
- package/dist/NodeHttpClient.js +446 -0
- package/dist/NodeHttpClient.js.map +1 -0
- package/dist/NodeHttpIncomingMessage.d.ts +35 -0
- package/dist/NodeHttpIncomingMessage.d.ts.map +1 -0
- package/dist/NodeHttpIncomingMessage.js +77 -0
- package/dist/NodeHttpIncomingMessage.js.map +1 -0
- package/dist/NodeHttpPlatform.d.ts +26 -0
- package/dist/NodeHttpPlatform.d.ts.map +1 -0
- package/dist/{esm/internal/httpPlatform.js → NodeHttpPlatform.js} +20 -11
- package/dist/NodeHttpPlatform.js.map +1 -0
- package/dist/NodeHttpServer.d.ts +73 -0
- package/dist/NodeHttpServer.d.ts.map +1 -0
- package/dist/NodeHttpServer.js +376 -0
- package/dist/NodeHttpServer.js.map +1 -0
- package/dist/NodeHttpServerRequest.d.ts +16 -0
- package/dist/NodeHttpServerRequest.d.ts.map +1 -0
- package/dist/NodeHttpServerRequest.js +14 -0
- package/dist/NodeHttpServerRequest.js.map +1 -0
- package/dist/NodeMultipart.d.ts +26 -0
- package/dist/NodeMultipart.d.ts.map +1 -0
- package/dist/NodeMultipart.js +131 -0
- package/dist/NodeMultipart.js.map +1 -0
- package/dist/NodePath.d.ts +18 -0
- package/dist/NodePath.d.ts.map +1 -0
- package/dist/NodePath.js.map +1 -0
- package/dist/NodeRedis.d.ts +31 -0
- package/dist/NodeRedis.d.ts.map +1 -0
- package/dist/NodeRedis.js +51 -0
- package/dist/NodeRedis.js.map +1 -0
- package/dist/NodeRuntime.d.ts +94 -0
- package/dist/NodeRuntime.d.ts.map +1 -0
- package/dist/NodeRuntime.js +33 -0
- package/dist/NodeRuntime.js.map +1 -0
- package/dist/NodeServices.d.ts +20 -0
- package/dist/NodeServices.d.ts.map +1 -0
- package/dist/NodeServices.js +12 -0
- package/dist/NodeServices.js.map +1 -0
- package/dist/NodeSink.d.ts.map +1 -0
- package/dist/NodeSink.js.map +1 -0
- package/dist/NodeSocket.d.ts +23 -0
- package/dist/NodeSocket.d.ts.map +1 -0
- package/dist/{esm/NodeSocket.js → NodeSocket.js} +9 -8
- package/dist/NodeSocket.js.map +1 -0
- package/dist/NodeSocketServer.d.ts.map +1 -0
- package/dist/NodeSocketServer.js.map +1 -0
- package/dist/NodeStdio.d.ts +8 -0
- package/dist/NodeStdio.d.ts.map +1 -0
- package/dist/NodeStdio.js +10 -0
- package/dist/NodeStdio.js.map +1 -0
- package/dist/{dts/NodeStream.d.ts → NodeStream.d.ts} +1 -1
- package/dist/NodeStream.d.ts.map +1 -0
- package/dist/{esm/NodeStream.js → NodeStream.js} +1 -1
- package/dist/NodeStream.js.map +1 -0
- package/dist/{dts/NodeTerminal.d.ts → NodeTerminal.d.ts} +2 -2
- package/dist/NodeTerminal.d.ts.map +1 -0
- package/dist/{esm/NodeTerminal.js → NodeTerminal.js} +1 -1
- package/dist/NodeTerminal.js.map +1 -0
- package/dist/NodeWorker.d.ts +15 -0
- package/dist/NodeWorker.d.ts.map +1 -0
- package/dist/NodeWorker.js +81 -0
- package/dist/NodeWorker.js.map +1 -0
- package/dist/NodeWorkerRunner.d.ts +8 -0
- package/dist/NodeWorkerRunner.d.ts.map +1 -0
- package/dist/NodeWorkerRunner.js +85 -0
- package/dist/NodeWorkerRunner.js.map +1 -0
- package/dist/{dts/Undici.d.ts → Undici.d.ts} +3 -3
- package/dist/Undici.d.ts.map +1 -0
- package/dist/{esm/Undici.js → Undici.js} +3 -3
- package/dist/Undici.js.map +1 -0
- package/dist/index.d.ts +102 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/{esm/index.js → index.js} +25 -7
- package/dist/index.js.map +1 -0
- package/package.json +60 -213
- package/src/Mime.ts +18 -0
- package/src/NodeChildProcessSpawner.ts +6 -0
- package/src/NodeClusterHttp.ts +33 -35
- package/src/NodeClusterSocket.ts +23 -24
- package/src/NodeFileSystem.ts +3 -3
- package/src/NodeHttpClient.ts +506 -70
- package/src/NodeHttpIncomingMessage.ts +105 -0
- package/src/NodeHttpPlatform.ts +44 -10
- package/src/NodeHttpServer.ts +539 -102
- package/src/NodeHttpServerRequest.ts +8 -8
- package/src/NodeMultipart.ts +156 -1
- package/src/NodePath.ts +5 -6
- package/src/NodeRedis.ts +74 -0
- package/src/NodeRuntime.ts +95 -3
- package/src/NodeServices.ts +34 -0
- package/src/NodeSocket.ts +24 -16
- package/src/NodeStdio.ts +12 -0
- package/src/NodeStream.ts +1 -1
- package/src/NodeTerminal.ts +2 -2
- package/src/NodeWorker.ts +89 -20
- package/src/NodeWorkerRunner.ts +89 -12
- package/src/Undici.ts +7 -7
- package/src/index.ts +44 -21
- package/NodeClusterHttp/package.json +0 -6
- package/NodeClusterSocket/package.json +0 -6
- package/NodeCommandExecutor/package.json +0 -6
- package/NodeContext/package.json +0 -6
- package/NodeFileSystem/ParcelWatcher/package.json +0 -6
- package/NodeFileSystem/package.json +0 -6
- package/NodeHttpClient/package.json +0 -6
- package/NodeHttpPlatform/package.json +0 -6
- package/NodeHttpServer/package.json +0 -6
- package/NodeHttpServerRequest/package.json +0 -6
- package/NodeKeyValueStore/package.json +0 -6
- package/NodeMultipart/package.json +0 -6
- package/NodePath/package.json +0 -6
- package/NodeRuntime/package.json +0 -6
- package/NodeSink/package.json +0 -6
- package/NodeSocket/package.json +0 -6
- package/NodeSocketServer/package.json +0 -6
- package/NodeStream/package.json +0 -6
- package/NodeTerminal/package.json +0 -6
- package/NodeWorker/package.json +0 -6
- package/NodeWorkerRunner/package.json +0 -6
- package/Undici/package.json +0 -6
- package/dist/cjs/NodeClusterHttp.js +0 -61
- package/dist/cjs/NodeClusterHttp.js.map +0 -1
- package/dist/cjs/NodeClusterSocket.js +0 -77
- package/dist/cjs/NodeClusterSocket.js.map +0 -1
- package/dist/cjs/NodeCommandExecutor.js +0 -18
- package/dist/cjs/NodeCommandExecutor.js.map +0 -1
- package/dist/cjs/NodeContext.js +0 -24
- package/dist/cjs/NodeContext.js.map +0 -1
- package/dist/cjs/NodeFileSystem/ParcelWatcher.js +0 -18
- package/dist/cjs/NodeFileSystem/ParcelWatcher.js.map +0 -1
- package/dist/cjs/NodeFileSystem.js +0 -18
- package/dist/cjs/NodeFileSystem.js.map +0 -1
- package/dist/cjs/NodeHttpClient.js +0 -92
- package/dist/cjs/NodeHttpClient.js.map +0 -1
- package/dist/cjs/NodeHttpPlatform.js +0 -19
- package/dist/cjs/NodeHttpPlatform.js.map +0 -1
- package/dist/cjs/NodeHttpServer.js +0 -68
- package/dist/cjs/NodeHttpServer.js.map +0 -1
- package/dist/cjs/NodeHttpServerRequest.js +0 -19
- package/dist/cjs/NodeHttpServerRequest.js.map +0 -1
- package/dist/cjs/NodeKeyValueStore.js +0 -18
- package/dist/cjs/NodeKeyValueStore.js.map +0 -1
- package/dist/cjs/NodeMultipart.js +0 -17
- package/dist/cjs/NodeMultipart.js.map +0 -1
- package/dist/cjs/NodePath.js +0 -28
- package/dist/cjs/NodePath.js.map +0 -1
- package/dist/cjs/NodeRuntime.js +0 -18
- package/dist/cjs/NodeRuntime.js.map +0 -1
- package/dist/cjs/NodeSink.js +0 -17
- package/dist/cjs/NodeSink.js.map +0 -1
- package/dist/cjs/NodeSocket.js +0 -51
- package/dist/cjs/NodeSocket.js.map +0 -1
- package/dist/cjs/NodeSocketServer.js +0 -17
- package/dist/cjs/NodeSocketServer.js.map +0 -1
- package/dist/cjs/NodeStream.js +0 -17
- package/dist/cjs/NodeStream.js.map +0 -1
- package/dist/cjs/NodeTerminal.js +0 -23
- package/dist/cjs/NodeTerminal.js.map +0 -1
- package/dist/cjs/NodeWorker.js +0 -29
- package/dist/cjs/NodeWorker.js.map +0 -1
- package/dist/cjs/NodeWorkerRunner.js +0 -21
- package/dist/cjs/NodeWorkerRunner.js.map +0 -1
- package/dist/cjs/Undici.js +0 -26
- package/dist/cjs/Undici.js.map +0 -1
- package/dist/cjs/index.js +0 -50
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/internal/httpClient.js +0 -196
- package/dist/cjs/internal/httpClient.js.map +0 -1
- package/dist/cjs/internal/httpClientUndici.js +0 -194
- package/dist/cjs/internal/httpClientUndici.js.map +0 -1
- package/dist/cjs/internal/httpIncomingMessage.js +0 -74
- package/dist/cjs/internal/httpIncomingMessage.js.map +0 -1
- package/dist/cjs/internal/httpPlatform.js +0 -49
- package/dist/cjs/internal/httpPlatform.js.map +0 -1
- package/dist/cjs/internal/httpServer.js +0 -352
- package/dist/cjs/internal/httpServer.js.map +0 -1
- package/dist/cjs/internal/worker.js +0 -82
- package/dist/cjs/internal/worker.js.map +0 -1
- package/dist/cjs/internal/workerRunner.js +0 -83
- package/dist/cjs/internal/workerRunner.js.map +0 -1
- package/dist/dts/NodeClusterHttp.d.ts +0 -41
- package/dist/dts/NodeClusterHttp.d.ts.map +0 -1
- package/dist/dts/NodeClusterSocket.d.ts.map +0 -1
- package/dist/dts/NodeCommandExecutor.d.ts +0 -9
- package/dist/dts/NodeCommandExecutor.d.ts.map +0 -1
- package/dist/dts/NodeContext.d.ts +0 -17
- package/dist/dts/NodeContext.d.ts.map +0 -1
- package/dist/dts/NodeFileSystem/ParcelWatcher.d.ts +0 -8
- package/dist/dts/NodeFileSystem/ParcelWatcher.d.ts.map +0 -1
- package/dist/dts/NodeFileSystem.d.ts +0 -8
- package/dist/dts/NodeFileSystem.d.ts.map +0 -1
- package/dist/dts/NodeHttpClient.d.ts +0 -116
- package/dist/dts/NodeHttpClient.d.ts.map +0 -1
- package/dist/dts/NodeHttpPlatform.d.ts +0 -19
- package/dist/dts/NodeHttpPlatform.d.ts.map +0 -1
- package/dist/dts/NodeHttpServer.d.ts +0 -91
- package/dist/dts/NodeHttpServer.d.ts.map +0 -1
- package/dist/dts/NodeHttpServerRequest.d.ts +0 -16
- package/dist/dts/NodeHttpServerRequest.d.ts.map +0 -1
- package/dist/dts/NodeKeyValueStore.d.ts +0 -9
- package/dist/dts/NodeKeyValueStore.d.ts.map +0 -1
- package/dist/dts/NodeMultipart.d.ts +0 -8
- package/dist/dts/NodeMultipart.d.ts.map +0 -1
- package/dist/dts/NodePath.d.ts +0 -21
- package/dist/dts/NodePath.d.ts.map +0 -1
- package/dist/dts/NodeRuntime.d.ts +0 -7
- package/dist/dts/NodeRuntime.d.ts.map +0 -1
- package/dist/dts/NodeSink.d.ts.map +0 -1
- package/dist/dts/NodeSocket.d.ts +0 -22
- package/dist/dts/NodeSocket.d.ts.map +0 -1
- package/dist/dts/NodeSocketServer.d.ts.map +0 -1
- package/dist/dts/NodeStream.d.ts.map +0 -1
- package/dist/dts/NodeTerminal.d.ts.map +0 -1
- package/dist/dts/NodeWorker.d.ts +0 -28
- package/dist/dts/NodeWorker.d.ts.map +0 -1
- package/dist/dts/NodeWorkerRunner.d.ts +0 -17
- package/dist/dts/NodeWorkerRunner.d.ts.map +0 -1
- package/dist/dts/Undici.d.ts.map +0 -1
- package/dist/dts/index.d.ts +0 -85
- package/dist/dts/index.d.ts.map +0 -1
- package/dist/dts/internal/httpClient.d.ts +0 -2
- package/dist/dts/internal/httpClient.d.ts.map +0 -1
- package/dist/dts/internal/httpClientUndici.d.ts +0 -2
- package/dist/dts/internal/httpClientUndici.d.ts.map +0 -1
- package/dist/dts/internal/httpIncomingMessage.d.ts +0 -2
- package/dist/dts/internal/httpIncomingMessage.d.ts.map +0 -1
- package/dist/dts/internal/httpPlatform.d.ts +0 -2
- package/dist/dts/internal/httpPlatform.d.ts.map +0 -1
- package/dist/dts/internal/httpServer.d.ts +0 -2
- package/dist/dts/internal/httpServer.d.ts.map +0 -1
- package/dist/dts/internal/worker.d.ts +0 -2
- package/dist/dts/internal/worker.d.ts.map +0 -1
- package/dist/dts/internal/workerRunner.d.ts +0 -2
- package/dist/dts/internal/workerRunner.d.ts.map +0 -1
- package/dist/esm/NodeClusterHttp.js.map +0 -1
- package/dist/esm/NodeClusterSocket.js.map +0 -1
- package/dist/esm/NodeCommandExecutor.js +0 -10
- package/dist/esm/NodeCommandExecutor.js.map +0 -1
- package/dist/esm/NodeContext.js +0 -16
- package/dist/esm/NodeContext.js.map +0 -1
- package/dist/esm/NodeFileSystem/ParcelWatcher.js +0 -10
- package/dist/esm/NodeFileSystem/ParcelWatcher.js.map +0 -1
- package/dist/esm/NodeFileSystem.js.map +0 -1
- package/dist/esm/NodeHttpClient.js +0 -84
- package/dist/esm/NodeHttpClient.js.map +0 -1
- package/dist/esm/NodeHttpPlatform.js +0 -12
- package/dist/esm/NodeHttpPlatform.js.map +0 -1
- package/dist/esm/NodeHttpServer.js +0 -61
- package/dist/esm/NodeHttpServer.js.map +0 -1
- package/dist/esm/NodeHttpServerRequest.js +0 -12
- package/dist/esm/NodeHttpServerRequest.js.map +0 -1
- package/dist/esm/NodeKeyValueStore.js +0 -10
- package/dist/esm/NodeKeyValueStore.js.map +0 -1
- package/dist/esm/NodeMultipart.js +0 -8
- package/dist/esm/NodeMultipart.js.map +0 -1
- package/dist/esm/NodePath.js.map +0 -1
- package/dist/esm/NodeRuntime.js +0 -10
- package/dist/esm/NodeRuntime.js.map +0 -1
- package/dist/esm/NodeSink.js.map +0 -1
- package/dist/esm/NodeSocket.js.map +0 -1
- package/dist/esm/NodeSocketServer.js.map +0 -1
- package/dist/esm/NodeStream.js.map +0 -1
- package/dist/esm/NodeTerminal.js.map +0 -1
- package/dist/esm/NodeWorker.js +0 -22
- package/dist/esm/NodeWorker.js.map +0 -1
- package/dist/esm/NodeWorkerRunner.js +0 -13
- package/dist/esm/NodeWorkerRunner.js.map +0 -1
- package/dist/esm/Undici.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/internal/httpClient.js +0 -187
- package/dist/esm/internal/httpClient.js.map +0 -1
- package/dist/esm/internal/httpClientUndici.js +0 -186
- package/dist/esm/internal/httpClientUndici.js.map +0 -1
- package/dist/esm/internal/httpIncomingMessage.js +0 -66
- package/dist/esm/internal/httpIncomingMessage.js.map +0 -1
- package/dist/esm/internal/httpPlatform.js.map +0 -1
- package/dist/esm/internal/httpServer.js +0 -337
- package/dist/esm/internal/httpServer.js.map +0 -1
- package/dist/esm/internal/worker.js +0 -73
- package/dist/esm/internal/worker.js.map +0 -1
- package/dist/esm/internal/workerRunner.js +0 -76
- package/dist/esm/internal/workerRunner.js.map +0 -1
- package/dist/esm/package.json +0 -4
- package/index/package.json +0 -6
- package/src/NodeCommandExecutor.ts +0 -13
- package/src/NodeContext.ts +0 -40
- package/src/NodeFileSystem/ParcelWatcher.ts +0 -12
- package/src/NodeKeyValueStore.ts +0 -15
- package/src/internal/httpClient.ts +0 -260
- package/src/internal/httpClientUndici.ts +0 -231
- package/src/internal/httpIncomingMessage.ts +0 -92
- package/src/internal/httpPlatform.ts +0 -46
- package/src/internal/httpServer.ts +0 -517
- package/src/internal/worker.ts +0 -86
- package/src/internal/workerRunner.ts +0 -77
- /package/dist/{esm/NodeFileSystem.js → NodeFileSystem.js} +0 -0
- /package/dist/{esm/NodePath.js → NodePath.js} +0 -0
- /package/dist/{dts/NodeSink.d.ts → NodeSink.d.ts} +0 -0
- /package/dist/{esm/NodeSink.js → NodeSink.js} +0 -0
- /package/dist/{dts/NodeSocketServer.d.ts → NodeSocketServer.d.ts} +0 -0
- /package/dist/{esm/NodeSocketServer.js → NodeSocketServer.js} +0 -0
|
@@ -0,0 +1,446 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import { flow } from "effect/Function";
|
|
6
|
+
import * as Inspectable from "effect/Inspectable";
|
|
7
|
+
import * as Layer from "effect/Layer";
|
|
8
|
+
import * as ServiceMap from "effect/ServiceMap";
|
|
9
|
+
import * as Stream from "effect/Stream";
|
|
10
|
+
import * as Cookies from "effect/unstable/http/Cookies";
|
|
11
|
+
import * as Headers from "effect/unstable/http/Headers";
|
|
12
|
+
import * as Client from "effect/unstable/http/HttpClient";
|
|
13
|
+
import * as Error from "effect/unstable/http/HttpClientError";
|
|
14
|
+
import * as Response from "effect/unstable/http/HttpClientResponse";
|
|
15
|
+
import * as IncomingMessage from "effect/unstable/http/HttpIncomingMessage";
|
|
16
|
+
import * as UrlParams from "effect/unstable/http/UrlParams";
|
|
17
|
+
import * as Http from "node:http";
|
|
18
|
+
import * as Https from "node:https";
|
|
19
|
+
import { Readable } from "node:stream";
|
|
20
|
+
import { pipeline } from "node:stream/promises";
|
|
21
|
+
import { NodeHttpIncomingMessage } from "./NodeHttpIncomingMessage.js";
|
|
22
|
+
import * as NodeSink from "./NodeSink.js";
|
|
23
|
+
import * as NodeStream from "./NodeStream.js";
|
|
24
|
+
import * as Undici from "./Undici.js";
|
|
25
|
+
// -----------------------------------------------------------------------------
|
|
26
|
+
// Fetch
|
|
27
|
+
// -----------------------------------------------------------------------------
|
|
28
|
+
export {
|
|
29
|
+
/**
|
|
30
|
+
* @since 1.0.0
|
|
31
|
+
* @category Fetch
|
|
32
|
+
*/
|
|
33
|
+
Fetch,
|
|
34
|
+
/**
|
|
35
|
+
* @since 1.0.0
|
|
36
|
+
* @category Fetch
|
|
37
|
+
*/
|
|
38
|
+
layer as layerFetch,
|
|
39
|
+
/**
|
|
40
|
+
* @since 1.0.0
|
|
41
|
+
* @category Fetch
|
|
42
|
+
*/
|
|
43
|
+
RequestInit } from "effect/unstable/http/FetchHttpClient";
|
|
44
|
+
// -----------------------------------------------------------------------------
|
|
45
|
+
// Undici
|
|
46
|
+
// -----------------------------------------------------------------------------
|
|
47
|
+
/**
|
|
48
|
+
* @since 1.0.0
|
|
49
|
+
* @category Dispatcher
|
|
50
|
+
*/
|
|
51
|
+
export class Dispatcher extends /*#__PURE__*/ServiceMap.Service()("@effect/platform-node/NodeHttpClient/Dispatcher") {}
|
|
52
|
+
/**
|
|
53
|
+
* @since 1.0.0
|
|
54
|
+
* @category Dispatcher
|
|
55
|
+
*/
|
|
56
|
+
export const makeDispatcher = /*#__PURE__*/Effect.acquireRelease(/*#__PURE__*/Effect.sync(() => new Undici.Agent()), dispatcher => Effect.promise(() => dispatcher.destroy()));
|
|
57
|
+
/**
|
|
58
|
+
* @since 1.0.0
|
|
59
|
+
* @category Dispatcher
|
|
60
|
+
*/
|
|
61
|
+
export const layerDispatcher = /*#__PURE__*/Layer.effect(Dispatcher)(makeDispatcher);
|
|
62
|
+
/**
|
|
63
|
+
* @since 1.0.0
|
|
64
|
+
* @category Dispatcher
|
|
65
|
+
*/
|
|
66
|
+
export const dispatcherLayerGlobal = /*#__PURE__*/Layer.sync(Dispatcher)(() => Undici.getGlobalDispatcher());
|
|
67
|
+
/**
|
|
68
|
+
* @since 1.0.0
|
|
69
|
+
* @category undici
|
|
70
|
+
*/
|
|
71
|
+
export const UndiciOptions = /*#__PURE__*/ServiceMap.Reference("@effect/platform-node/NodeHttpClient/UndiciOptions", {
|
|
72
|
+
defaultValue: () => ({})
|
|
73
|
+
});
|
|
74
|
+
/**
|
|
75
|
+
* @since 1.0.0
|
|
76
|
+
* @category undici
|
|
77
|
+
*/
|
|
78
|
+
export const makeUndici = /*#__PURE__*/Effect.gen(function* () {
|
|
79
|
+
const dispatcher = yield* Dispatcher;
|
|
80
|
+
return Client.make((request, url, signal, fiber) => convertBody(request.body).pipe(Effect.flatMap(body => Effect.tryPromise({
|
|
81
|
+
try: () => dispatcher.request({
|
|
82
|
+
...fiber.getRef(UndiciOptions),
|
|
83
|
+
signal,
|
|
84
|
+
method: request.method,
|
|
85
|
+
headers: request.headers,
|
|
86
|
+
origin: url.origin,
|
|
87
|
+
path: url.pathname + url.search + url.hash,
|
|
88
|
+
body,
|
|
89
|
+
// leave timeouts to Effect.timeout etc
|
|
90
|
+
headersTimeout: 60 * 60 * 1000,
|
|
91
|
+
bodyTimeout: 0
|
|
92
|
+
}),
|
|
93
|
+
catch: cause => new Error.HttpClientError({
|
|
94
|
+
reason: new Error.TransportError({
|
|
95
|
+
request,
|
|
96
|
+
cause
|
|
97
|
+
})
|
|
98
|
+
})
|
|
99
|
+
})), Effect.map(response => new UndiciResponse(request, response))));
|
|
100
|
+
});
|
|
101
|
+
function convertBody(body) {
|
|
102
|
+
switch (body._tag) {
|
|
103
|
+
case "Empty":
|
|
104
|
+
{
|
|
105
|
+
return Effect.succeed(null);
|
|
106
|
+
}
|
|
107
|
+
case "Uint8Array":
|
|
108
|
+
case "Raw":
|
|
109
|
+
{
|
|
110
|
+
return Effect.succeed(body.body);
|
|
111
|
+
}
|
|
112
|
+
case "FormData":
|
|
113
|
+
{
|
|
114
|
+
return Effect.succeed(body.formData);
|
|
115
|
+
}
|
|
116
|
+
case "Stream":
|
|
117
|
+
{
|
|
118
|
+
return NodeStream.toReadable(body.stream);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function noopErrorHandler(_) {}
|
|
123
|
+
class UndiciResponse extends Inspectable.Class {
|
|
124
|
+
[IncomingMessage.TypeId];
|
|
125
|
+
[Response.TypeId];
|
|
126
|
+
request;
|
|
127
|
+
source;
|
|
128
|
+
constructor(request, source) {
|
|
129
|
+
super();
|
|
130
|
+
this[IncomingMessage.TypeId] = IncomingMessage.TypeId;
|
|
131
|
+
this[Response.TypeId] = Response.TypeId;
|
|
132
|
+
this.request = request;
|
|
133
|
+
this.source = source;
|
|
134
|
+
source.body.on("error", noopErrorHandler);
|
|
135
|
+
}
|
|
136
|
+
get status() {
|
|
137
|
+
return this.source.statusCode;
|
|
138
|
+
}
|
|
139
|
+
get statusText() {
|
|
140
|
+
return undefined;
|
|
141
|
+
}
|
|
142
|
+
get headers() {
|
|
143
|
+
return Headers.fromInput(this.source.headers);
|
|
144
|
+
}
|
|
145
|
+
cachedCookies;
|
|
146
|
+
get cookies() {
|
|
147
|
+
if (this.cachedCookies !== undefined) {
|
|
148
|
+
return this.cachedCookies;
|
|
149
|
+
}
|
|
150
|
+
const header = this.source.headers["set-cookie"];
|
|
151
|
+
return this.cachedCookies = header ? Cookies.fromSetCookie(header) : Cookies.empty;
|
|
152
|
+
}
|
|
153
|
+
get remoteAddress() {
|
|
154
|
+
return undefined;
|
|
155
|
+
}
|
|
156
|
+
get stream() {
|
|
157
|
+
return NodeStream.fromReadable({
|
|
158
|
+
evaluate: () => this.source.body,
|
|
159
|
+
onError: cause => new Error.HttpClientError({
|
|
160
|
+
reason: new Error.DecodeError({
|
|
161
|
+
request: this.request,
|
|
162
|
+
response: this,
|
|
163
|
+
cause
|
|
164
|
+
})
|
|
165
|
+
})
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
get json() {
|
|
169
|
+
return Effect.flatMap(this.text, text => Effect.try({
|
|
170
|
+
try: () => text === "" ? null : JSON.parse(text),
|
|
171
|
+
catch: cause => new Error.HttpClientError({
|
|
172
|
+
reason: new Error.DecodeError({
|
|
173
|
+
request: this.request,
|
|
174
|
+
response: this,
|
|
175
|
+
cause
|
|
176
|
+
})
|
|
177
|
+
})
|
|
178
|
+
}));
|
|
179
|
+
}
|
|
180
|
+
textBody;
|
|
181
|
+
get text() {
|
|
182
|
+
return this.textBody ??= Effect.tryPromise({
|
|
183
|
+
try: () => this.source.body.text(),
|
|
184
|
+
catch: cause => new Error.HttpClientError({
|
|
185
|
+
reason: new Error.DecodeError({
|
|
186
|
+
request: this.request,
|
|
187
|
+
response: this,
|
|
188
|
+
cause
|
|
189
|
+
})
|
|
190
|
+
})
|
|
191
|
+
}).pipe(Effect.cached, Effect.runSync);
|
|
192
|
+
}
|
|
193
|
+
get urlParamsBody() {
|
|
194
|
+
return Effect.flatMap(this.text, _ => Effect.try({
|
|
195
|
+
try: () => UrlParams.fromInput(new URLSearchParams(_)),
|
|
196
|
+
catch: cause => new Error.HttpClientError({
|
|
197
|
+
reason: new Error.DecodeError({
|
|
198
|
+
request: this.request,
|
|
199
|
+
response: this,
|
|
200
|
+
cause
|
|
201
|
+
})
|
|
202
|
+
})
|
|
203
|
+
}));
|
|
204
|
+
}
|
|
205
|
+
formDataBody;
|
|
206
|
+
get formData() {
|
|
207
|
+
return this.formDataBody ??= Effect.tryPromise({
|
|
208
|
+
try: () => this.source.body.formData(),
|
|
209
|
+
catch: cause => new Error.HttpClientError({
|
|
210
|
+
reason: new Error.DecodeError({
|
|
211
|
+
request: this.request,
|
|
212
|
+
response: this,
|
|
213
|
+
cause
|
|
214
|
+
})
|
|
215
|
+
})
|
|
216
|
+
}).pipe(Effect.cached, Effect.runSync);
|
|
217
|
+
}
|
|
218
|
+
arrayBufferBody;
|
|
219
|
+
get arrayBuffer() {
|
|
220
|
+
return this.arrayBufferBody ??= Effect.tryPromise({
|
|
221
|
+
try: () => this.source.body.arrayBuffer(),
|
|
222
|
+
catch: cause => new Error.HttpClientError({
|
|
223
|
+
reason: new Error.DecodeError({
|
|
224
|
+
request: this.request,
|
|
225
|
+
response: this,
|
|
226
|
+
cause
|
|
227
|
+
})
|
|
228
|
+
})
|
|
229
|
+
}).pipe(Effect.cached, Effect.runSync);
|
|
230
|
+
}
|
|
231
|
+
toJSON() {
|
|
232
|
+
return IncomingMessage.inspect(this, {
|
|
233
|
+
_id: "effect/http/HttpClientResponse",
|
|
234
|
+
request: this.request.toJSON(),
|
|
235
|
+
status: this.status
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* @since 1.0.0
|
|
241
|
+
* @category Undici
|
|
242
|
+
*/
|
|
243
|
+
export const layerUndiciNoDispatcher = /*#__PURE__*/Client.layerMergedServices(makeUndici);
|
|
244
|
+
/**
|
|
245
|
+
* @since 1.0.0
|
|
246
|
+
* @category Undici
|
|
247
|
+
*/
|
|
248
|
+
export const layerUndici = /*#__PURE__*/Layer.provide(layerUndiciNoDispatcher, layerDispatcher);
|
|
249
|
+
// -----------------------------------------------------------------------------
|
|
250
|
+
// node:http
|
|
251
|
+
// -----------------------------------------------------------------------------
|
|
252
|
+
/**
|
|
253
|
+
* @since 1.0.0
|
|
254
|
+
* @category HttpAgent
|
|
255
|
+
*/
|
|
256
|
+
export class HttpAgent extends /*#__PURE__*/ServiceMap.Service()("@effect/platform-node/NodeHttpClient/HttpAgent") {}
|
|
257
|
+
/**
|
|
258
|
+
* @since 1.0.0
|
|
259
|
+
* @category HttpAgent
|
|
260
|
+
*/
|
|
261
|
+
export const makeAgent = options => Effect.zipWith(Effect.acquireRelease(Effect.sync(() => new Http.Agent(options)), agent => Effect.sync(() => agent.destroy())), Effect.acquireRelease(Effect.sync(() => new Https.Agent(options)), agent => Effect.sync(() => agent.destroy())), (http, https) => ({
|
|
262
|
+
http,
|
|
263
|
+
https
|
|
264
|
+
}));
|
|
265
|
+
/**
|
|
266
|
+
* @since 1.0.0
|
|
267
|
+
* @category HttpAgent
|
|
268
|
+
*/
|
|
269
|
+
export const layerAgentOptions = /*#__PURE__*/flow(makeAgent, /*#__PURE__*/Layer.effect(HttpAgent));
|
|
270
|
+
/**
|
|
271
|
+
* @since 1.0.0
|
|
272
|
+
* @category HttpAgent
|
|
273
|
+
*/
|
|
274
|
+
export const layerAgent = /*#__PURE__*/layerAgentOptions();
|
|
275
|
+
/**
|
|
276
|
+
* @since 1.0.0
|
|
277
|
+
* @category node:http
|
|
278
|
+
*/
|
|
279
|
+
export const makeNodeHttp = /*#__PURE__*/Effect.gen(function* () {
|
|
280
|
+
const agent = yield* HttpAgent;
|
|
281
|
+
return Client.make((request, url, signal) => {
|
|
282
|
+
const nodeRequest = url.protocol === "https:" ? Https.request(url, {
|
|
283
|
+
agent: agent.https,
|
|
284
|
+
method: request.method,
|
|
285
|
+
headers: request.headers,
|
|
286
|
+
signal
|
|
287
|
+
}) : Http.request(url, {
|
|
288
|
+
agent: agent.http,
|
|
289
|
+
method: request.method,
|
|
290
|
+
headers: request.headers,
|
|
291
|
+
signal
|
|
292
|
+
});
|
|
293
|
+
return Effect.forkChild(sendBody(nodeRequest, request, request.body)).pipe(Effect.flatMap(() => waitForResponse(nodeRequest, request)), Effect.map(_ => new NodeHttpResponse(request, _)));
|
|
294
|
+
});
|
|
295
|
+
});
|
|
296
|
+
const sendBody = (nodeRequest, request, body) => Effect.suspend(() => {
|
|
297
|
+
switch (body._tag) {
|
|
298
|
+
case "Empty":
|
|
299
|
+
{
|
|
300
|
+
nodeRequest.end();
|
|
301
|
+
return waitForFinish(nodeRequest, request);
|
|
302
|
+
}
|
|
303
|
+
case "Uint8Array":
|
|
304
|
+
case "Raw":
|
|
305
|
+
{
|
|
306
|
+
nodeRequest.end(body.body);
|
|
307
|
+
return waitForFinish(nodeRequest, request);
|
|
308
|
+
}
|
|
309
|
+
case "FormData":
|
|
310
|
+
{
|
|
311
|
+
const response = new globalThis.Response(body.formData);
|
|
312
|
+
response.headers.forEach((value, key) => {
|
|
313
|
+
nodeRequest.setHeader(key, value);
|
|
314
|
+
});
|
|
315
|
+
return Effect.tryPromise({
|
|
316
|
+
try: () => pipeline(Readable.fromWeb(response.body), nodeRequest),
|
|
317
|
+
catch: cause => new Error.HttpClientError({
|
|
318
|
+
reason: new Error.TransportError({
|
|
319
|
+
request,
|
|
320
|
+
cause
|
|
321
|
+
})
|
|
322
|
+
})
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
case "Stream":
|
|
326
|
+
{
|
|
327
|
+
return Stream.run(Stream.mapError(body.stream, cause => new Error.HttpClientError({
|
|
328
|
+
reason: new Error.EncodeError({
|
|
329
|
+
request,
|
|
330
|
+
cause
|
|
331
|
+
})
|
|
332
|
+
})), NodeSink.fromWritable({
|
|
333
|
+
evaluate: () => nodeRequest,
|
|
334
|
+
onError: cause => new Error.HttpClientError({
|
|
335
|
+
reason: new Error.TransportError({
|
|
336
|
+
request,
|
|
337
|
+
cause
|
|
338
|
+
})
|
|
339
|
+
})
|
|
340
|
+
}));
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
});
|
|
344
|
+
const waitForResponse = (nodeRequest, request) => Effect.callback(resume => {
|
|
345
|
+
function onError(cause) {
|
|
346
|
+
resume(Effect.fail(new Error.HttpClientError({
|
|
347
|
+
reason: new Error.TransportError({
|
|
348
|
+
request,
|
|
349
|
+
cause
|
|
350
|
+
})
|
|
351
|
+
})));
|
|
352
|
+
}
|
|
353
|
+
nodeRequest.on("error", onError);
|
|
354
|
+
function onResponse(response) {
|
|
355
|
+
nodeRequest.off("error", onError);
|
|
356
|
+
resume(Effect.succeed(response));
|
|
357
|
+
}
|
|
358
|
+
nodeRequest.on("upgrade", onResponse);
|
|
359
|
+
nodeRequest.on("response", onResponse);
|
|
360
|
+
return Effect.sync(() => {
|
|
361
|
+
nodeRequest.off("error", onError);
|
|
362
|
+
nodeRequest.off("upgrade", onResponse);
|
|
363
|
+
nodeRequest.off("response", onResponse);
|
|
364
|
+
});
|
|
365
|
+
});
|
|
366
|
+
const waitForFinish = (nodeRequest, request) => Effect.callback(resume => {
|
|
367
|
+
function onError(cause) {
|
|
368
|
+
resume(Effect.fail(new Error.HttpClientError({
|
|
369
|
+
reason: new Error.TransportError({
|
|
370
|
+
request,
|
|
371
|
+
cause
|
|
372
|
+
})
|
|
373
|
+
})));
|
|
374
|
+
}
|
|
375
|
+
nodeRequest.once("error", onError);
|
|
376
|
+
function onFinish() {
|
|
377
|
+
nodeRequest.off("error", onError);
|
|
378
|
+
resume(Effect.void);
|
|
379
|
+
}
|
|
380
|
+
nodeRequest.once("finish", onFinish);
|
|
381
|
+
return Effect.sync(() => {
|
|
382
|
+
nodeRequest.off("error", onError);
|
|
383
|
+
nodeRequest.off("finish", onFinish);
|
|
384
|
+
});
|
|
385
|
+
});
|
|
386
|
+
class NodeHttpResponse extends NodeHttpIncomingMessage {
|
|
387
|
+
[Response.TypeId];
|
|
388
|
+
request;
|
|
389
|
+
constructor(request, source) {
|
|
390
|
+
super(source, cause => new Error.HttpClientError({
|
|
391
|
+
reason: new Error.DecodeError({
|
|
392
|
+
request,
|
|
393
|
+
response: this,
|
|
394
|
+
cause
|
|
395
|
+
})
|
|
396
|
+
}));
|
|
397
|
+
this[Response.TypeId] = Response.TypeId;
|
|
398
|
+
this.request = request;
|
|
399
|
+
}
|
|
400
|
+
get status() {
|
|
401
|
+
return this.source.statusCode;
|
|
402
|
+
}
|
|
403
|
+
cachedCookies;
|
|
404
|
+
get cookies() {
|
|
405
|
+
if (this.cachedCookies !== undefined) {
|
|
406
|
+
return this.cachedCookies;
|
|
407
|
+
}
|
|
408
|
+
const header = this.source.headers["set-cookie"];
|
|
409
|
+
return this.cachedCookies = header ? Cookies.fromSetCookie(header) : Cookies.empty;
|
|
410
|
+
}
|
|
411
|
+
get formData() {
|
|
412
|
+
return Effect.tryPromise({
|
|
413
|
+
try: () => {
|
|
414
|
+
const init = {
|
|
415
|
+
headers: new globalThis.Headers(this.source.headers)
|
|
416
|
+
};
|
|
417
|
+
if (this.source.statusCode) {
|
|
418
|
+
init.status = this.source.statusCode;
|
|
419
|
+
}
|
|
420
|
+
if (this.source.statusMessage) {
|
|
421
|
+
init.statusText = this.source.statusMessage;
|
|
422
|
+
}
|
|
423
|
+
return new globalThis.Response(Readable.toWeb(this.source), init).formData();
|
|
424
|
+
},
|
|
425
|
+
catch: this.onError
|
|
426
|
+
});
|
|
427
|
+
}
|
|
428
|
+
toJSON() {
|
|
429
|
+
return IncomingMessage.inspect(this, {
|
|
430
|
+
_id: "effect/http/HttpClientResponse",
|
|
431
|
+
request: this.request.toJSON(),
|
|
432
|
+
status: this.status
|
|
433
|
+
});
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* @since 1.0.0
|
|
438
|
+
* @category node:http
|
|
439
|
+
*/
|
|
440
|
+
export const layerNodeHttpNoAgent = /*#__PURE__*/Client.layerMergedServices(makeNodeHttp);
|
|
441
|
+
/**
|
|
442
|
+
* @since 1.0.0
|
|
443
|
+
* @category node:http
|
|
444
|
+
*/
|
|
445
|
+
export const layerNodeHttp = /*#__PURE__*/Layer.provide(layerNodeHttpNoAgent, layerAgent);
|
|
446
|
+
//# sourceMappingURL=NodeHttpClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeHttpClient.js","names":["Effect","flow","Inspectable","Layer","ServiceMap","Stream","Cookies","Headers","Client","Error","Response","IncomingMessage","UrlParams","Http","Https","Readable","pipeline","NodeHttpIncomingMessage","NodeSink","NodeStream","Undici","Fetch","layer","layerFetch","RequestInit","Dispatcher","Service","makeDispatcher","acquireRelease","sync","Agent","dispatcher","promise","destroy","layerDispatcher","effect","dispatcherLayerGlobal","getGlobalDispatcher","UndiciOptions","Reference","defaultValue","makeUndici","gen","make","request","url","signal","fiber","convertBody","body","pipe","flatMap","tryPromise","try","getRef","method","headers","origin","path","pathname","search","hash","headersTimeout","bodyTimeout","catch","cause","HttpClientError","reason","TransportError","map","response","UndiciResponse","_tag","succeed","formData","toReadable","stream","noopErrorHandler","_","Class","TypeId","source","constructor","on","status","statusCode","statusText","undefined","fromInput","cachedCookies","cookies","header","fromSetCookie","empty","remoteAddress","fromReadable","evaluate","onError","DecodeError","json","text","JSON","parse","textBody","cached","runSync","urlParamsBody","URLSearchParams","formDataBody","arrayBufferBody","arrayBuffer","toJSON","inspect","_id","layerUndiciNoDispatcher","layerMergedServices","layerUndici","provide","HttpAgent","makeAgent","options","zipWith","agent","http","https","layerAgentOptions","layerAgent","makeNodeHttp","nodeRequest","protocol","forkChild","sendBody","waitForResponse","NodeHttpResponse","suspend","end","waitForFinish","globalThis","forEach","value","key","setHeader","fromWeb","run","mapError","EncodeError","fromWritable","callback","resume","fail","onResponse","off","once","onFinish","void","init","statusMessage","toWeb","layerNodeHttpNoAgent","layerNodeHttp"],"sources":["../src/NodeHttpClient.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Inspectable from "effect/Inspectable";
|
|
6
|
+
import type * as Stream from "effect/Stream";
|
|
7
|
+
import * as Headers from "effect/unstable/http/Headers";
|
|
8
|
+
import * as IncomingMessage from "effect/unstable/http/HttpIncomingMessage";
|
|
9
|
+
import * as UrlParams from "effect/unstable/http/UrlParams";
|
|
10
|
+
import type * as Http from "node:http";
|
|
11
|
+
/**
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
* @category Constructors
|
|
14
|
+
*/
|
|
15
|
+
export declare abstract class NodeHttpIncomingMessage<E> extends Inspectable.Class implements IncomingMessage.HttpIncomingMessage<E> {
|
|
16
|
+
/**
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
*/
|
|
19
|
+
readonly [IncomingMessage.TypeId]: typeof IncomingMessage.TypeId;
|
|
20
|
+
readonly source: Http.IncomingMessage;
|
|
21
|
+
readonly onError: (error: unknown) => E;
|
|
22
|
+
readonly remoteAddressOverride?: string | undefined;
|
|
23
|
+
constructor(source: Http.IncomingMessage, onError: (error: unknown) => E, remoteAddressOverride?: string);
|
|
24
|
+
get headers(): Headers.Headers;
|
|
25
|
+
get remoteAddress(): string | undefined;
|
|
26
|
+
private textEffect;
|
|
27
|
+
get text(): Effect.Effect<string, E>;
|
|
28
|
+
get textUnsafe(): string;
|
|
29
|
+
get json(): Effect.Effect<unknown, E>;
|
|
30
|
+
get jsonUnsafe(): unknown;
|
|
31
|
+
get urlParamsBody(): Effect.Effect<UrlParams.UrlParams, E>;
|
|
32
|
+
get stream(): Stream.Stream<Uint8Array, E>;
|
|
33
|
+
get arrayBuffer(): Effect.Effect<ArrayBuffer, E>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=NodeHttpIncomingMessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeHttpIncomingMessage.d.ts","sourceRoot":"","sources":["../src/NodeHttpIncomingMessage.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,WAAW,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,OAAO,MAAM,8BAA8B,CAAA;AACvD,OAAO,KAAK,eAAe,MAAM,0CAA0C,CAAA;AAC3E,OAAO,KAAK,SAAS,MAAM,gCAAgC,CAAA;AAC3D,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAA;AAGtC;;;GAGG;AACH,8BAAsB,uBAAuB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,KACnE,YAAW,eAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAEjD;;OAEG;IACH,QAAQ,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,eAAe,CAAC,MAAM,CAAA;IAChE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAA;IACrC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,CAAA;IACvC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;gBAGjD,MAAM,EAAE,IAAI,CAAC,eAAe,EAC5B,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,EAC9B,qBAAqB,CAAC,EAAE,MAAM;IAShC,IAAI,OAAO,oBAEV;IAED,IAAI,aAAa,uBAEhB;IAED,OAAO,CAAC,UAAU,CAAsC;IACxD,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAenC;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAMpC;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC,CAMzD;IAED,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAKzC;IAED,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAO/C;CACF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as Effect from "effect/Effect";
|
|
5
|
+
import * as Inspectable from "effect/Inspectable";
|
|
6
|
+
import * as Headers from "effect/unstable/http/Headers";
|
|
7
|
+
import * as IncomingMessage from "effect/unstable/http/HttpIncomingMessage";
|
|
8
|
+
import * as UrlParams from "effect/unstable/http/UrlParams";
|
|
9
|
+
import * as NodeStream from "./NodeStream.js";
|
|
10
|
+
/**
|
|
11
|
+
* @since 1.0.0
|
|
12
|
+
* @category Constructors
|
|
13
|
+
*/
|
|
14
|
+
export class NodeHttpIncomingMessage extends Inspectable.Class {
|
|
15
|
+
/**
|
|
16
|
+
* @since 1.0.0
|
|
17
|
+
*/
|
|
18
|
+
[IncomingMessage.TypeId];
|
|
19
|
+
source;
|
|
20
|
+
onError;
|
|
21
|
+
remoteAddressOverride;
|
|
22
|
+
constructor(source, onError, remoteAddressOverride) {
|
|
23
|
+
super();
|
|
24
|
+
this[IncomingMessage.TypeId] = IncomingMessage.TypeId;
|
|
25
|
+
this.source = source;
|
|
26
|
+
this.onError = onError;
|
|
27
|
+
this.remoteAddressOverride = remoteAddressOverride;
|
|
28
|
+
}
|
|
29
|
+
get headers() {
|
|
30
|
+
return Headers.fromInput(this.source.headers);
|
|
31
|
+
}
|
|
32
|
+
get remoteAddress() {
|
|
33
|
+
return this.remoteAddressOverride ?? this.source.socket.remoteAddress;
|
|
34
|
+
}
|
|
35
|
+
textEffect;
|
|
36
|
+
get text() {
|
|
37
|
+
if (this.textEffect) {
|
|
38
|
+
return this.textEffect;
|
|
39
|
+
}
|
|
40
|
+
this.textEffect = Effect.runSync(Effect.cached(Effect.flatMap(IncomingMessage.MaxBodySize.asEffect(), maxBodySize => NodeStream.toString(() => this.source, {
|
|
41
|
+
onError: this.onError,
|
|
42
|
+
maxBytes: maxBodySize
|
|
43
|
+
}))));
|
|
44
|
+
return this.textEffect;
|
|
45
|
+
}
|
|
46
|
+
get textUnsafe() {
|
|
47
|
+
return Effect.runSync(this.text);
|
|
48
|
+
}
|
|
49
|
+
get json() {
|
|
50
|
+
return Effect.flatMap(this.text, text => Effect.try({
|
|
51
|
+
try: () => text === "" ? null : JSON.parse(text),
|
|
52
|
+
catch: this.onError
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
get jsonUnsafe() {
|
|
56
|
+
return Effect.runSync(this.json);
|
|
57
|
+
}
|
|
58
|
+
get urlParamsBody() {
|
|
59
|
+
return Effect.flatMap(this.text, _ => Effect.try({
|
|
60
|
+
try: () => UrlParams.fromInput(new URLSearchParams(_)),
|
|
61
|
+
catch: this.onError
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
get stream() {
|
|
65
|
+
return NodeStream.fromReadable({
|
|
66
|
+
evaluate: () => this.source,
|
|
67
|
+
onError: this.onError
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
get arrayBuffer() {
|
|
71
|
+
return Effect.withFiber(fiber => NodeStream.toArrayBuffer(() => this.source, {
|
|
72
|
+
onError: this.onError,
|
|
73
|
+
maxBytes: fiber.getRef(IncomingMessage.MaxBodySize)
|
|
74
|
+
}));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=NodeHttpIncomingMessage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeHttpIncomingMessage.js","names":["Effect","Inspectable","Headers","IncomingMessage","UrlParams","NodeStream","NodeHttpIncomingMessage","Class","TypeId","source","onError","remoteAddressOverride","constructor","headers","fromInput","remoteAddress","socket","textEffect","text","runSync","cached","flatMap","MaxBodySize","asEffect","maxBodySize","toString","maxBytes","textUnsafe","json","try","JSON","parse","catch","jsonUnsafe","urlParamsBody","_","URLSearchParams","stream","fromReadable","evaluate","arrayBuffer","withFiber","fiber","toArrayBuffer","getRef"],"sources":["../src/NodeHttpIncomingMessage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as Layer from "effect/Layer";
|
|
2
|
+
import * as EtagImpl from "effect/unstable/http/Etag";
|
|
3
|
+
import * as Platform from "effect/unstable/http/HttpPlatform";
|
|
4
|
+
import * as ServerResponse from "effect/unstable/http/HttpServerResponse";
|
|
5
|
+
/**
|
|
6
|
+
* @since 1.0.0
|
|
7
|
+
* @category Constructors
|
|
8
|
+
*/
|
|
9
|
+
export declare const make: import("effect/Effect").Effect<{
|
|
10
|
+
readonly fileResponse: (path: string, options?: ServerResponse.Options.WithContent & {
|
|
11
|
+
readonly bytesToRead?: import("effect/FileSystem").SizeInput | undefined;
|
|
12
|
+
readonly chunkSize?: import("effect/FileSystem").SizeInput | undefined;
|
|
13
|
+
readonly offset?: import("effect/FileSystem").SizeInput | undefined;
|
|
14
|
+
}) => import("effect/Effect").Effect<ServerResponse.HttpServerResponse, import("effect/PlatformError").PlatformError>;
|
|
15
|
+
readonly fileWebResponse: (file: import("effect/unstable/http/HttpBody").HttpBody.FileLike, options?: ServerResponse.Options.WithContent & {
|
|
16
|
+
readonly bytesToRead?: import("effect/FileSystem").SizeInput | undefined;
|
|
17
|
+
readonly chunkSize?: import("effect/FileSystem").SizeInput | undefined;
|
|
18
|
+
readonly offset?: import("effect/FileSystem").SizeInput | undefined;
|
|
19
|
+
}) => import("effect/Effect").Effect<ServerResponse.HttpServerResponse>;
|
|
20
|
+
}, never, import("effect/FileSystem").FileSystem | EtagImpl.Generator>;
|
|
21
|
+
/**
|
|
22
|
+
* @since 1.0.0
|
|
23
|
+
* @category Layers
|
|
24
|
+
*/
|
|
25
|
+
export declare const layer: Layer.Layer<Platform.HttpPlatform>;
|
|
26
|
+
//# sourceMappingURL=NodeHttpPlatform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NodeHttpPlatform.d.ts","sourceRoot":"","sources":["../src/NodeHttpPlatform.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAA;AAErD,OAAO,KAAK,QAAQ,MAAM,mCAAmC,CAAA;AAC7D,OAAO,KAAK,cAAc,MAAM,yCAAyC,CAAA;AAMzE;;;GAGG;AACH,eAAO,MAAM,IAAI;iDACT,CAAC;4BAA+D,CAAC;0BACjB,CAAC;uBAE1C,CAAC;;uGAIV,CAAL;4BAKW,CAAC;0BACF,CAAA;uBAA2D,CAAC;;sEAYrE,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAIpD,CAAA"}
|