@effect/platform-node 0.11.3 → 0.11.5
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/Http/NodeClient.d.ts +57 -0
- package/Http/NodeClient.d.ts.map +1 -0
- package/Http/NodeClient.js +46 -0
- package/Http/NodeClient.js.map +1 -0
- package/HttpClient.d.ts +4 -0
- package/HttpClient.d.ts.map +1 -1
- package/HttpClient.js +3 -1
- package/HttpClient.js.map +1 -1
- package/Stream.d.ts +14 -2
- package/Stream.d.ts.map +1 -1
- package/Stream.js +14 -2
- package/Stream.js.map +1 -1
- package/internal/http/nodeClient.d.ts +2 -0
- package/internal/http/nodeClient.d.ts.map +1 -0
- package/internal/http/nodeClient.js +211 -0
- package/internal/http/nodeClient.js.map +1 -0
- package/internal/stream.js +40 -1
- package/internal/stream.js.map +1 -1
- package/mjs/Http/NodeClient.mjs +32 -0
- package/mjs/Http/NodeClient.mjs.map +1 -0
- package/mjs/HttpClient.mjs +2 -0
- package/mjs/HttpClient.mjs.map +1 -1
- package/mjs/Stream.mjs +11 -1
- package/mjs/Stream.mjs.map +1 -1
- package/mjs/internal/http/nodeClient.mjs +197 -0
- package/mjs/internal/http/nodeClient.mjs.map +1 -0
- package/mjs/internal/stream.mjs +37 -0
- package/mjs/internal/stream.mjs.map +1 -1
- package/package.json +2 -2
- package/src/Http/NodeClient.ts +64 -0
- package/src/HttpClient.ts +4 -0
- package/src/Stream.ts +22 -2
- package/src/internal/http/nodeClient.ts +275 -0
- package/src/internal/stream.ts +48 -0
package/mjs/Stream.mjs
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import * as internal from "@effect/platform-node/internal/stream";
|
|
2
2
|
/**
|
|
3
|
-
* @category
|
|
3
|
+
* @category constructors
|
|
4
4
|
* @since 1.0.0
|
|
5
5
|
*/
|
|
6
6
|
export const fromReadable = internal.fromReadable;
|
|
7
|
+
/**
|
|
8
|
+
* @since 1.0.0
|
|
9
|
+
* @category conversions
|
|
10
|
+
*/
|
|
11
|
+
export const toString = internal.toString;
|
|
12
|
+
/**
|
|
13
|
+
* @since 1.0.0
|
|
14
|
+
* @category conversions
|
|
15
|
+
*/
|
|
16
|
+
export const toUint8Array = internal.toUint8Array;
|
|
7
17
|
//# sourceMappingURL=Stream.mjs.map
|
package/mjs/Stream.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stream.mjs","names":["internal","fromReadable"],"sources":["../src/Stream.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"Stream.mjs","names":["internal","fromReadable","toString","toUint8Array"],"sources":["../src/Stream.ts"],"sourcesContent":[null],"mappings":"AAMA,OAAO,KAAKA,QAAQ,MAAM,uCAAuC;AAcjE;;;;AAIA,OAAO,MAAMC,YAAY,GAIED,QAAQ,CAACC,YAAY;AAEhD;;;;AAIA,OAAO,MAAMC,QAAQ,GAIWF,QAAQ,CAACE,QAAQ;AAEjD;;;;AAIA,OAAO,MAAMC,YAAY,GAGWH,QAAQ,CAACG,YAAY"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
var _a, _b;
|
|
2
|
+
import * as Context from "@effect/data/Context";
|
|
3
|
+
import * as Effect from "@effect/io/Effect";
|
|
4
|
+
import * as Layer from "@effect/io/Layer";
|
|
5
|
+
import * as NodeSink from "@effect/platform-node/Sink";
|
|
6
|
+
import * as NodeStream from "@effect/platform-node/Stream";
|
|
7
|
+
import * as Client from "@effect/platform/Http/Client";
|
|
8
|
+
import * as Error from "@effect/platform/Http/ClientError";
|
|
9
|
+
import * as ClientResponse from "@effect/platform/Http/ClientResponse";
|
|
10
|
+
import * as Headers from "@effect/platform/Http/Headers";
|
|
11
|
+
import * as IncomingMessage from "@effect/platform/Http/IncomingMessage";
|
|
12
|
+
import * as UrlParams from "@effect/platform/Http/UrlParams";
|
|
13
|
+
import * as Stream from "@effect/stream/Stream";
|
|
14
|
+
import * as Http from "node:http";
|
|
15
|
+
import * as Https from "node:https";
|
|
16
|
+
import { Readable } from "node:stream";
|
|
17
|
+
import { pipeline } from "node:stream/promises";
|
|
18
|
+
/** @internal */
|
|
19
|
+
export const HttpAgentTypeId = /*#__PURE__*/Symbol.for("@effect/platform-node/Http/NodeClient/HttpAgent");
|
|
20
|
+
/** @internal */
|
|
21
|
+
export const HttpAgent = /*#__PURE__*/Context.Tag("@effect/platform-node/Http/NodeClient/HttpAgent");
|
|
22
|
+
/** @internal */
|
|
23
|
+
export const makeAgent = options => Effect.map(Effect.all([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]) => ({
|
|
24
|
+
[HttpAgentTypeId]: HttpAgentTypeId,
|
|
25
|
+
http,
|
|
26
|
+
https
|
|
27
|
+
}));
|
|
28
|
+
/** @internal */
|
|
29
|
+
export const agentLayer = /*#__PURE__*/Layer.scoped(HttpAgent, /*#__PURE__*/makeAgent());
|
|
30
|
+
const fromAgent = agent => Client.make(request => Effect.flatMap(UrlParams.makeUrl(request.url, request.urlParams, _ => Error.RequestError({
|
|
31
|
+
request,
|
|
32
|
+
reason: "InvalidUrl",
|
|
33
|
+
error: _
|
|
34
|
+
})), url => Effect.suspend(() => {
|
|
35
|
+
const controller = new AbortController();
|
|
36
|
+
const nodeRequest = url.protocol === "https:" ? Https.request(url, {
|
|
37
|
+
agent: agent.https,
|
|
38
|
+
method: request.method,
|
|
39
|
+
headers: Object.fromEntries(request.headers),
|
|
40
|
+
signal: controller.signal
|
|
41
|
+
}) : Http.request(url, {
|
|
42
|
+
agent: agent.http,
|
|
43
|
+
method: request.method,
|
|
44
|
+
headers: Object.fromEntries(request.headers),
|
|
45
|
+
signal: controller.signal
|
|
46
|
+
});
|
|
47
|
+
return Effect.map(_ => new ClientResponseImpl(request, _))(Effect.onInterrupt(() => Effect.sync(() => controller.abort()))(Effect.zipRight(sendBody(nodeRequest, request, request.body), waitForResponse(nodeRequest), {
|
|
48
|
+
concurrent: true
|
|
49
|
+
})));
|
|
50
|
+
})));
|
|
51
|
+
const sendBody = (nodeRequest, request, body) => Effect.suspend(() => {
|
|
52
|
+
switch (body._tag) {
|
|
53
|
+
case "Empty":
|
|
54
|
+
{
|
|
55
|
+
nodeRequest.end();
|
|
56
|
+
return waitForFinish(nodeRequest, request);
|
|
57
|
+
}
|
|
58
|
+
case "Bytes":
|
|
59
|
+
case "Raw":
|
|
60
|
+
{
|
|
61
|
+
nodeRequest.end(body.body);
|
|
62
|
+
return waitForFinish(nodeRequest, request);
|
|
63
|
+
}
|
|
64
|
+
case "FormData":
|
|
65
|
+
{
|
|
66
|
+
const response = new Response(body.formData);
|
|
67
|
+
response.headers.forEach((value, key) => {
|
|
68
|
+
nodeRequest.setHeader(key, value);
|
|
69
|
+
});
|
|
70
|
+
return Effect.tryPromise({
|
|
71
|
+
try: () => pipeline(Readable.fromWeb(response.body), nodeRequest),
|
|
72
|
+
catch: _ => Error.RequestError({
|
|
73
|
+
request,
|
|
74
|
+
reason: "Transport",
|
|
75
|
+
error: _
|
|
76
|
+
})
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
case "BytesEffect":
|
|
80
|
+
{
|
|
81
|
+
return Effect.flatMap(Effect.mapError(body.body, _ => Error.RequestError({
|
|
82
|
+
request,
|
|
83
|
+
reason: "Encode",
|
|
84
|
+
error: _
|
|
85
|
+
})), bytes => {
|
|
86
|
+
nodeRequest.end(bytes);
|
|
87
|
+
return waitForFinish(nodeRequest, request);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
case "Stream":
|
|
91
|
+
{
|
|
92
|
+
return Stream.run(Stream.mapError(body.stream, _ => Error.RequestError({
|
|
93
|
+
request,
|
|
94
|
+
reason: "Encode",
|
|
95
|
+
error: _
|
|
96
|
+
})), NodeSink.fromWritable(() => nodeRequest, _ => Error.RequestError({
|
|
97
|
+
request,
|
|
98
|
+
reason: "Transport",
|
|
99
|
+
error: _
|
|
100
|
+
})));
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
const waitForResponse = nodeRequest => Effect.async(resume => {
|
|
105
|
+
nodeRequest.on("response", response => {
|
|
106
|
+
resume(Effect.succeed(response));
|
|
107
|
+
});
|
|
108
|
+
return Effect.sync(() => {
|
|
109
|
+
nodeRequest.removeAllListeners("response");
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
const waitForFinish = (nodeRequest, request) => Effect.async(resume => {
|
|
113
|
+
nodeRequest.on("error", error => {
|
|
114
|
+
resume(Effect.fail(Error.RequestError({
|
|
115
|
+
request,
|
|
116
|
+
reason: "Transport",
|
|
117
|
+
error
|
|
118
|
+
})));
|
|
119
|
+
});
|
|
120
|
+
nodeRequest.on("finish", () => {
|
|
121
|
+
resume(Effect.unit);
|
|
122
|
+
});
|
|
123
|
+
return Effect.sync(() => {
|
|
124
|
+
nodeRequest.removeAllListeners("error");
|
|
125
|
+
nodeRequest.removeAllListeners("finish");
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
class ClientResponseImpl {
|
|
129
|
+
constructor(request, source) {
|
|
130
|
+
this.request = request;
|
|
131
|
+
this.source = source;
|
|
132
|
+
this[_a] = IncomingMessage.TypeId;
|
|
133
|
+
this[_b] = ClientResponse.TypeId;
|
|
134
|
+
}
|
|
135
|
+
get status() {
|
|
136
|
+
return this.source.statusCode;
|
|
137
|
+
}
|
|
138
|
+
get headers() {
|
|
139
|
+
return Headers.fromInput(this.source.headers);
|
|
140
|
+
}
|
|
141
|
+
get text() {
|
|
142
|
+
return NodeStream.toString(() => this.source, _ => Error.ResponseError({
|
|
143
|
+
request: this.request,
|
|
144
|
+
response: this,
|
|
145
|
+
reason: "Decode",
|
|
146
|
+
error: _
|
|
147
|
+
}));
|
|
148
|
+
}
|
|
149
|
+
get json() {
|
|
150
|
+
return Effect.tryMap(this.text, {
|
|
151
|
+
try: _ => JSON.parse(_),
|
|
152
|
+
catch: _ => Error.ResponseError({
|
|
153
|
+
request: this.request,
|
|
154
|
+
response: this,
|
|
155
|
+
reason: "Decode",
|
|
156
|
+
error: _
|
|
157
|
+
})
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
get formData() {
|
|
161
|
+
return Effect.tryPromise({
|
|
162
|
+
try: () => new Response(Readable.toWeb(this.source), {
|
|
163
|
+
headers: new globalThis.Headers(this.source.headers),
|
|
164
|
+
status: this.source.statusCode,
|
|
165
|
+
statusText: this.source.statusMessage
|
|
166
|
+
}).formData(),
|
|
167
|
+
catch: _ => Error.ResponseError({
|
|
168
|
+
request: this.request,
|
|
169
|
+
response: this,
|
|
170
|
+
reason: "Decode",
|
|
171
|
+
error: _
|
|
172
|
+
})
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
get stream() {
|
|
176
|
+
return NodeStream.fromReadable(() => this.source, _ => Error.ResponseError({
|
|
177
|
+
request: this.request,
|
|
178
|
+
response: this,
|
|
179
|
+
reason: "Decode",
|
|
180
|
+
error: _
|
|
181
|
+
}));
|
|
182
|
+
}
|
|
183
|
+
get arrayBuffer() {
|
|
184
|
+
return NodeStream.toUint8Array(() => this.source, _ => Error.ResponseError({
|
|
185
|
+
request: this.request,
|
|
186
|
+
response: this,
|
|
187
|
+
reason: "Decode",
|
|
188
|
+
error: _
|
|
189
|
+
}));
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
_a = IncomingMessage.TypeId, _b = ClientResponse.TypeId;
|
|
193
|
+
/** @internal */
|
|
194
|
+
export const make = /*#__PURE__*/Effect.map(HttpAgent, fromAgent);
|
|
195
|
+
/** @internal */
|
|
196
|
+
export const layer = /*#__PURE__*/Layer.provide(agentLayer, /*#__PURE__*/Layer.effect(Client.Client, make));
|
|
197
|
+
//# sourceMappingURL=nodeClient.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeClient.mjs","names":["Context","Effect","Layer","NodeSink","NodeStream","Client","Error","ClientResponse","Headers","IncomingMessage","UrlParams","Stream","Http","Https","Readable","pipeline","HttpAgentTypeId","Symbol","for","HttpAgent","Tag","makeAgent","options","map","all","acquireRelease","sync","Agent","agent","destroy","http","https","agentLayer","scoped","fromAgent","make","request","flatMap","makeUrl","url","urlParams","_","RequestError","reason","error","suspend","controller","AbortController","nodeRequest","protocol","method","headers","Object","fromEntries","signal","ClientResponseImpl","onInterrupt","abort","zipRight","sendBody","body","waitForResponse","concurrent","_tag","end","waitForFinish","response","Response","formData","forEach","value","key","setHeader","tryPromise","try","fromWeb","catch","mapError","bytes","run","stream","fromWritable","async","resume","on","succeed","removeAllListeners","fail","unit","constructor","source","_a","TypeId","_b","status","statusCode","fromInput","text","toString","ResponseError","json","tryMap","JSON","parse","toWeb","globalThis","statusText","statusMessage","fromReadable","arrayBuffer","toUint8Array","layer","provide","effect"],"sources":["../../../src/internal/http/nodeClient.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/mjs/internal/stream.mjs
CHANGED
|
@@ -29,4 +29,41 @@ export const fromReadable = (evaluate, onError, {
|
|
|
29
29
|
}
|
|
30
30
|
})))));
|
|
31
31
|
const readChunk = (stream, size) => Effect.flatMap(_ => _ ? Effect.succeed(_) : Effect.fail(Option.none()))(Effect.sync(() => size._tag === "Some" ? stream.read(Number(size)) : stream.read()));
|
|
32
|
+
/** @internal */
|
|
33
|
+
export const toString = (evaluate, onError, encoding = "utf-8") => Effect.async(resume => {
|
|
34
|
+
const stream = evaluate();
|
|
35
|
+
let string = "";
|
|
36
|
+
stream.setEncoding(encoding);
|
|
37
|
+
stream.once("error", err => {
|
|
38
|
+
resume(Effect.fail(onError(err)));
|
|
39
|
+
});
|
|
40
|
+
stream.once("end", () => {
|
|
41
|
+
resume(Effect.succeed(string));
|
|
42
|
+
});
|
|
43
|
+
stream.on("data", chunk => {
|
|
44
|
+
string += chunk;
|
|
45
|
+
});
|
|
46
|
+
return Effect.sync(() => {
|
|
47
|
+
stream.removeAllListeners();
|
|
48
|
+
stream.destroy();
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
/** @internal */
|
|
52
|
+
export const toUint8Array = (evaluate, onError) => Effect.async(resume => {
|
|
53
|
+
const stream = evaluate();
|
|
54
|
+
let buffer = Buffer.alloc(0);
|
|
55
|
+
stream.once("error", err => {
|
|
56
|
+
resume(Effect.fail(onError(err)));
|
|
57
|
+
});
|
|
58
|
+
stream.once("end", () => {
|
|
59
|
+
resume(Effect.succeed(buffer));
|
|
60
|
+
});
|
|
61
|
+
stream.on("data", chunk => {
|
|
62
|
+
buffer = Buffer.concat([buffer, chunk]);
|
|
63
|
+
});
|
|
64
|
+
return Effect.sync(() => {
|
|
65
|
+
stream.removeAllListeners();
|
|
66
|
+
stream.destroy();
|
|
67
|
+
});
|
|
68
|
+
});
|
|
32
69
|
//# sourceMappingURL=stream.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.mjs","names":["Option","Effect","Stream","fromReadable","evaluate","onError","chunkSize","none","flatMap","_","repeatEffectOption","readChunk","unwrapScoped","map","stream","async","emit","once","err","fail","end","on","single","readable","acquireRelease","sync","removeAllListeners","closed","destroy","size","succeed","_tag","read","Number"],"sources":["../../src/internal/stream.ts"],"sourcesContent":[null],"mappings":"AAEA,OAAO,KAAKA,MAAM,MAAM,qBAAqB;AAC7C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAG3C,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAG/C;AACA,OAAO,MAAMC,YAAY,GAAGA,CAC1BC,QAA2B,EAC3BC,OAA8B,EAC9B;EAAEC,SAAS,GAAGN,MAAM,CAACO,IAAI;AAAE,IAA0B,EAAE,KAoCrDL,MAAM,CAACM,OAAO,CAAEC,CAAC,IAAKP,MAAM,CAACQ,kBAAkB,CAACC,SAAS,CAAIF,CAAC,EAAEH,SAAS,CAAC,CAAC,CAAC,CAD5EJ,MAAM,CAACU,YAAY,CAxBnBX,MAAM,CAACY,GAAG,CAAEC,MAAM,IAChBZ,MAAM,CAACa,KAAK,CAAsBC,IAAI,IAAI;EACxCF,MAAM,CAACG,IAAI,CAAC,OAAO,EAAGC,GAAG,IAAI;IAC3BF,IAAI,CAACG,IAAI,CAACd,OAAO,CAACa,GAAG,CAAC,CAAC;EACzB,CAAC,CAAC;EAEF;EACA;EACA;EACA;EACA;EACAJ,MAAM,CAACG,IAAI,CAAC,OAAO,EAAE,MAAK;IACxBD,IAAI,CAACI,GAAG,EAAE;EACZ,CAAC,CAAC;EAEFN,MAAM,CAACO,EAAE,CAAC,UAAU,EAAE,MAAK;IACzBL,IAAI,CAACM,MAAM,CAACR,MAAM,CAAC;EACrB,CAAC,CAAC;EAEF,IAAIA,MAAM,CAACS,QAAQ,EAAE;IACnBP,IAAI,CAACM,MAAM,CAACR,MAAM,CAAC;;AAEvB,CAAC,EAAE,CAAC,CAAC,CACN,CA/BDb,MAAM,CAACuB,cAAc,CAACvB,MAAM,CAACwB,IAAI,CAACrB,QAAQ,CAAC,EAAGU,MAAM,IAClDb,MAAM,CAACwB,IAAI,CAAC,MAAK;EACfX,MAAM,CAACY,kBAAkB,EAAE;EAE3B,IAAI,CAACZ,MAAM,CAACa,MAAM,EAAE;IAClBb,MAAM,CAACc,OAAO,EAAE;;AAEpB,CAAC,CAAC,CAAC,GA2BN;AAEH,MAAMjB,SAAS,GAAGA,CAChBG,MAAgB,EAChBe,IAAyB,KAIvB5B,MAAM,CAACO,OAAO,CAAEC,CAAC,IAAMA,CAAC,GAAGR,MAAM,CAAC6B,OAAO,CAACrB,CAAC,CAAC,GAAGR,MAAM,CAACkB,IAAI,CAACnB,MAAM,CAACO,IAAI,EAAE,CAAE,CAAC,CAD3EN,MAAM,CAACwB,IAAI,CAAC,MAAOI,IAAI,CAACE,IAAI,KAAK,MAAM,GAAGjB,MAAM,CAACkB,IAAI,CAACC,MAAM,CAACJ,IAAI,CAAC,CAAC,GAAGf,MAAM,CAACkB,IAAI,EAAe,CAAC,CAElG"}
|
|
1
|
+
{"version":3,"file":"stream.mjs","names":["Option","Effect","Stream","fromReadable","evaluate","onError","chunkSize","none","flatMap","_","repeatEffectOption","readChunk","unwrapScoped","map","stream","async","emit","once","err","fail","end","on","single","readable","acquireRelease","sync","removeAllListeners","closed","destroy","size","succeed","_tag","read","Number","toString","encoding","resume","string","setEncoding","chunk","toUint8Array","buffer","Buffer","alloc","concat"],"sources":["../../src/internal/stream.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/platform-node",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.5",
|
|
4
4
|
"description": "Unified interfaces for common platform-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -28,6 +28,6 @@
|
|
|
28
28
|
"@effect/data": "^0.17.1",
|
|
29
29
|
"@effect/io": "^0.38.0",
|
|
30
30
|
"@effect/stream": "^0.34.0",
|
|
31
|
-
"@effect/platform": "^0.11.
|
|
31
|
+
"@effect/platform": "^0.11.5"
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Context from "@effect/data/Context"
|
|
5
|
+
import type * as Effect from "@effect/io/Effect"
|
|
6
|
+
import type * as Layer from "@effect/io/Layer"
|
|
7
|
+
import type * as Scope from "@effect/io/Scope"
|
|
8
|
+
import * as internal from "@effect/platform-node/internal/http/nodeClient"
|
|
9
|
+
import type * as Client from "@effect/platform/Http/Client"
|
|
10
|
+
import type * as Http from "node:http"
|
|
11
|
+
import type * as Https from "node:https"
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
* @category agent
|
|
16
|
+
*/
|
|
17
|
+
export const HttpAgentTypeId: unique symbol = internal.HttpAgentTypeId
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @since 1.0.0
|
|
21
|
+
* @category agent
|
|
22
|
+
*/
|
|
23
|
+
export type HttpAgentTypeId = typeof HttpAgentTypeId
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @since 1.0.0
|
|
27
|
+
* @category agent
|
|
28
|
+
*/
|
|
29
|
+
export interface HttpAgent {
|
|
30
|
+
readonly [HttpAgentTypeId]: typeof HttpAgentTypeId
|
|
31
|
+
readonly http: Http.Agent
|
|
32
|
+
readonly https: Https.Agent
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* @since 1.0.0
|
|
37
|
+
* @category agent
|
|
38
|
+
*/
|
|
39
|
+
export const HttpAgent: Context.Tag<HttpAgent, HttpAgent> = internal.HttpAgent
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @since 1.0.0
|
|
43
|
+
* @category agent
|
|
44
|
+
*/
|
|
45
|
+
export const makeAgent: (options?: Https.AgentOptions) => Effect.Effect<Scope.Scope, never, HttpAgent> =
|
|
46
|
+
internal.makeAgent
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @since 1.0.0
|
|
50
|
+
* @category agent
|
|
51
|
+
*/
|
|
52
|
+
export const agentLayer: Layer.Layer<never, never, HttpAgent> = internal.agentLayer
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @since 1.0.0
|
|
56
|
+
* @category constructors
|
|
57
|
+
*/
|
|
58
|
+
export const make: Effect.Effect<HttpAgent, never, Client.Client.Default> = internal.make
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* @since 1.0.0
|
|
62
|
+
* @category layers
|
|
63
|
+
*/
|
|
64
|
+
export const layer: Layer.Layer<never, never, Client.Client.Default> = internal.layer
|
package/src/HttpClient.ts
CHANGED
|
@@ -10,6 +10,10 @@ export * as body from "@effect/platform/Http/Body"
|
|
|
10
10
|
* @since 1.0.0
|
|
11
11
|
*/
|
|
12
12
|
export * as client from "@effect/platform/Http/Client"
|
|
13
|
+
/**
|
|
14
|
+
* @since 1.0.0
|
|
15
|
+
*/
|
|
16
|
+
export * as nodeClient from "@effect/platform-node/Http/NodeClient"
|
|
13
17
|
/**
|
|
14
18
|
* @since 1.0.0
|
|
15
19
|
*/
|
package/src/Stream.ts
CHANGED
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { LazyArg } from "@effect/data/Function"
|
|
5
5
|
import type { Option } from "@effect/data/Option"
|
|
6
|
+
import type { Effect } from "@effect/io/Effect"
|
|
6
7
|
import * as internal from "@effect/platform-node/internal/stream"
|
|
7
8
|
import type { Size } from "@effect/platform/FileSystem"
|
|
8
9
|
import type { Stream } from "@effect/stream/Stream"
|
|
9
10
|
import type { Readable } from "stream"
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
|
-
* @category
|
|
13
|
+
* @category models
|
|
13
14
|
* @since 1.0.0
|
|
14
15
|
*/
|
|
15
16
|
export interface FromReadableOptions {
|
|
@@ -18,7 +19,7 @@ export interface FromReadableOptions {
|
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
/**
|
|
21
|
-
* @category
|
|
22
|
+
* @category constructors
|
|
22
23
|
* @since 1.0.0
|
|
23
24
|
*/
|
|
24
25
|
export const fromReadable: <E, A>(
|
|
@@ -26,3 +27,22 @@ export const fromReadable: <E, A>(
|
|
|
26
27
|
onError: (error: unknown) => E,
|
|
27
28
|
options?: FromReadableOptions
|
|
28
29
|
) => Stream<never, E, A> = internal.fromReadable
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* @since 1.0.0
|
|
33
|
+
* @category conversions
|
|
34
|
+
*/
|
|
35
|
+
export const toString: <E>(
|
|
36
|
+
evaluate: LazyArg<Readable>,
|
|
37
|
+
onError: (error: unknown) => E,
|
|
38
|
+
encoding?: BufferEncoding
|
|
39
|
+
) => Effect<never, E, string> = internal.toString
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @since 1.0.0
|
|
43
|
+
* @category conversions
|
|
44
|
+
*/
|
|
45
|
+
export const toUint8Array: <E>(
|
|
46
|
+
evaluate: LazyArg<Readable>,
|
|
47
|
+
onError: (error: unknown) => E
|
|
48
|
+
) => Effect<never, E, Uint8Array> = internal.toUint8Array
|