@effect/platform-node 0.11.5 → 0.12.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/Http/NodeClient.d.ts +10 -0
- package/Http/NodeClient.d.ts.map +1 -1
- package/Http/NodeClient.js +14 -2
- package/Http/NodeClient.js.map +1 -1
- package/Http/Server.d.ts +34 -0
- package/Http/Server.d.ts.map +1 -0
- package/Http/Server.js +49 -0
- package/Http/Server.js.map +1 -0
- package/HttpServer.d.ts +9 -0
- package/HttpServer.d.ts.map +1 -0
- package/HttpServer.js +26 -0
- package/HttpServer.js.map +1 -0
- package/Stream.d.ts +14 -6
- package/Stream.d.ts.map +1 -1
- package/Stream.js.map +1 -1
- package/internal/fileSystem.js +9 -9
- package/internal/fileSystem.js.map +1 -1
- package/internal/http/formData.d.ts +5 -0
- package/internal/http/formData.d.ts.map +1 -0
- package/internal/http/formData.js +106 -0
- package/internal/http/formData.js.map +1 -0
- package/internal/http/incomingMessage.d.ts +2 -0
- package/internal/http/incomingMessage.d.ts.map +1 -0
- package/internal/http/incomingMessage.js +62 -0
- package/internal/http/incomingMessage.js.map +1 -0
- package/internal/http/nodeClient.js +28 -65
- package/internal/http/nodeClient.js.map +1 -1
- package/internal/http/server.d.ts +2 -0
- package/internal/http/server.d.ts.map +1 -0
- package/internal/http/server.js +218 -0
- package/internal/http/server.js.map +1 -0
- package/internal/stream.js +54 -35
- package/internal/stream.js.map +1 -1
- package/mjs/Http/NodeClient.mjs +10 -0
- package/mjs/Http/NodeClient.mjs.map +1 -1
- package/mjs/Http/Server.mjs +21 -0
- package/mjs/Http/Server.mjs.map +1 -0
- package/mjs/HttpServer.mjs +7 -0
- package/mjs/HttpServer.mjs.map +1 -0
- package/mjs/Stream.mjs.map +1 -1
- package/mjs/internal/fileSystem.mjs +9 -9
- package/mjs/internal/fileSystem.mjs.map +1 -1
- package/mjs/internal/http/formData.mjs +95 -0
- package/mjs/internal/http/formData.mjs.map +1 -0
- package/mjs/internal/http/incomingMessage.mjs +53 -0
- package/mjs/internal/http/incomingMessage.mjs.map +1 -0
- package/mjs/internal/http/nodeClient.mjs +25 -64
- package/mjs/internal/http/nodeClient.mjs.map +1 -1
- package/mjs/internal/http/server.mjs +207 -0
- package/mjs/internal/http/server.mjs.map +1 -0
- package/mjs/internal/stream.mjs +54 -35
- package/mjs/internal/stream.mjs.map +1 -1
- package/package.json +5 -2
- package/src/Http/NodeClient.ts +13 -0
- package/src/Http/Server.ts +45 -0
- package/src/HttpServer.ts +10 -0
- package/src/Stream.ts +14 -9
- package/src/internal/fileSystem.ts +16 -11
- package/src/internal/http/formData.ts +158 -0
- package/src/internal/http/incomingMessage.ts +78 -0
- package/src/internal/http/nodeClient.ts +30 -78
- package/src/internal/http/server.ts +323 -0
- package/src/internal/stream.ts +81 -46
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
var _a, _b;
|
|
2
1
|
import * as Context from "@effect/data/Context";
|
|
3
2
|
import * as Effect from "@effect/io/Effect";
|
|
4
3
|
import * as Layer from "@effect/io/Layer";
|
|
4
|
+
import { IncomingMessageImpl } from "@effect/platform-node/internal/http/incomingMessage";
|
|
5
5
|
import * as NodeSink from "@effect/platform-node/Sink";
|
|
6
|
-
import * as NodeStream from "@effect/platform-node/Stream";
|
|
7
6
|
import * as Client from "@effect/platform/Http/Client";
|
|
8
7
|
import * as Error from "@effect/platform/Http/ClientError";
|
|
9
8
|
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
9
|
import * as UrlParams from "@effect/platform/Http/UrlParams";
|
|
13
10
|
import * as Stream from "@effect/stream/Stream";
|
|
14
11
|
import * as Http from "node:http";
|
|
@@ -26,7 +23,9 @@ export const makeAgent = options => Effect.map(Effect.all([Effect.acquireRelease
|
|
|
26
23
|
https
|
|
27
24
|
}));
|
|
28
25
|
/** @internal */
|
|
29
|
-
export const
|
|
26
|
+
export const makeAgentLayer = options => Layer.scoped(HttpAgent, makeAgent(options));
|
|
27
|
+
/** @internal */
|
|
28
|
+
export const agentLayer = /*#__PURE__*/makeAgentLayer();
|
|
30
29
|
const fromAgent = agent => Client.make(request => Effect.flatMap(UrlParams.makeUrl(request.url, request.urlParams, _ => Error.RequestError({
|
|
31
30
|
request,
|
|
32
31
|
reason: "InvalidUrl",
|
|
@@ -55,7 +54,7 @@ const sendBody = (nodeRequest, request, body) => Effect.suspend(() => {
|
|
|
55
54
|
nodeRequest.end();
|
|
56
55
|
return waitForFinish(nodeRequest, request);
|
|
57
56
|
}
|
|
58
|
-
case "
|
|
57
|
+
case "Uint8Array":
|
|
59
58
|
case "Raw":
|
|
60
59
|
{
|
|
61
60
|
nodeRequest.end(body.body);
|
|
@@ -76,17 +75,6 @@ const sendBody = (nodeRequest, request, body) => Effect.suspend(() => {
|
|
|
76
75
|
})
|
|
77
76
|
});
|
|
78
77
|
}
|
|
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
78
|
case "Stream":
|
|
91
79
|
{
|
|
92
80
|
return Stream.run(Stream.mapError(body.stream, _ => Error.RequestError({
|
|
@@ -125,37 +113,19 @@ const waitForFinish = (nodeRequest, request) => Effect.async(resume => {
|
|
|
125
113
|
nodeRequest.removeAllListeners("finish");
|
|
126
114
|
});
|
|
127
115
|
});
|
|
128
|
-
class ClientResponseImpl {
|
|
116
|
+
class ClientResponseImpl extends IncomingMessageImpl {
|
|
129
117
|
constructor(request, source) {
|
|
130
|
-
|
|
131
|
-
|
|
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,
|
|
118
|
+
super(source, _ => Error.ResponseError({
|
|
119
|
+
request,
|
|
144
120
|
response: this,
|
|
145
121
|
reason: "Decode",
|
|
146
122
|
error: _
|
|
147
123
|
}));
|
|
124
|
+
this.request = request;
|
|
125
|
+
this[ClientResponse.TypeId] = ClientResponse.TypeId;
|
|
148
126
|
}
|
|
149
|
-
get
|
|
150
|
-
return
|
|
151
|
-
try: _ => JSON.parse(_),
|
|
152
|
-
catch: _ => Error.ResponseError({
|
|
153
|
-
request: this.request,
|
|
154
|
-
response: this,
|
|
155
|
-
reason: "Decode",
|
|
156
|
-
error: _
|
|
157
|
-
})
|
|
158
|
-
});
|
|
127
|
+
get status() {
|
|
128
|
+
return this.source.statusCode;
|
|
159
129
|
}
|
|
160
130
|
get formData() {
|
|
161
131
|
return Effect.tryPromise({
|
|
@@ -164,34 +134,25 @@ class ClientResponseImpl {
|
|
|
164
134
|
status: this.source.statusCode,
|
|
165
135
|
statusText: this.source.statusMessage
|
|
166
136
|
}).formData(),
|
|
167
|
-
catch:
|
|
168
|
-
request: this.request,
|
|
169
|
-
response: this,
|
|
170
|
-
reason: "Decode",
|
|
171
|
-
error: _
|
|
172
|
-
})
|
|
137
|
+
catch: this.onError
|
|
173
138
|
});
|
|
174
139
|
}
|
|
175
|
-
|
|
176
|
-
return
|
|
177
|
-
request: this.request,
|
|
178
|
-
response: this,
|
|
179
|
-
reason: "Decode",
|
|
180
|
-
error: _
|
|
181
|
-
}));
|
|
140
|
+
toString() {
|
|
141
|
+
return `ClientResponse(${this.status})`;
|
|
182
142
|
}
|
|
183
|
-
|
|
184
|
-
return
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
}));
|
|
143
|
+
toJSON() {
|
|
144
|
+
return {
|
|
145
|
+
_tag: "ClientResponse",
|
|
146
|
+
status: this.status,
|
|
147
|
+
headers: Object.fromEntries(this.headers)
|
|
148
|
+
};
|
|
190
149
|
}
|
|
191
150
|
}
|
|
192
|
-
|
|
151
|
+
ClientResponse.TypeId;
|
|
193
152
|
/** @internal */
|
|
194
153
|
export const make = /*#__PURE__*/Effect.map(HttpAgent, fromAgent);
|
|
195
154
|
/** @internal */
|
|
196
|
-
export const
|
|
155
|
+
export const layerWithoutAgent = /*#__PURE__*/Layer.effect(Client.Client, make);
|
|
156
|
+
/** @internal */
|
|
157
|
+
export const layer = /*#__PURE__*/Layer.provide(agentLayer, layerWithoutAgent);
|
|
197
158
|
//# sourceMappingURL=nodeClient.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodeClient.mjs","names":["Context","Effect","Layer","
|
|
1
|
+
{"version":3,"file":"nodeClient.mjs","names":["Context","Effect","Layer","IncomingMessageImpl","NodeSink","Client","Error","ClientResponse","UrlParams","Stream","Http","Https","Readable","pipeline","HttpAgentTypeId","Symbol","for","HttpAgent","Tag","makeAgent","options","map","all","acquireRelease","sync","Agent","agent","destroy","http","https","makeAgentLayer","scoped","agentLayer","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","run","mapError","stream","fromWritable","async","resume","on","succeed","removeAllListeners","fail","unit","constructor","source","ResponseError","TypeId","status","statusCode","toWeb","globalThis","Headers","statusText","statusMessage","onError","toString","toJSON","layerWithoutAgent","effect","layer","provide"],"sources":["../../../src/internal/http/nodeClient.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import * as Option from "@effect/data/Option";
|
|
2
|
+
import * as Config from "@effect/io/Config";
|
|
3
|
+
import * as Effect from "@effect/io/Effect";
|
|
4
|
+
import * as Fiber from "@effect/io/Fiber";
|
|
5
|
+
import * as Layer from "@effect/io/Layer";
|
|
6
|
+
import * as Runtime from "@effect/io/Runtime";
|
|
7
|
+
import * as internalFormData from "@effect/platform-node/internal/http/formData";
|
|
8
|
+
import { IncomingMessageImpl } from "@effect/platform-node/internal/http/incomingMessage";
|
|
9
|
+
import * as NodeSink from "@effect/platform-node/Sink";
|
|
10
|
+
import * as FileSystem from "@effect/platform/FileSystem";
|
|
11
|
+
import * as Headers from "@effect/platform/Http/Headers";
|
|
12
|
+
import * as IncomingMessage from "@effect/platform/Http/IncomingMessage";
|
|
13
|
+
import * as Middleware from "@effect/platform/Http/Middleware";
|
|
14
|
+
import * as Server from "@effect/platform/Http/Server";
|
|
15
|
+
import * as Error from "@effect/platform/Http/ServerError";
|
|
16
|
+
import * as ServerRequest from "@effect/platform/Http/ServerRequest";
|
|
17
|
+
import * as ServerResponse from "@effect/platform/Http/ServerResponse";
|
|
18
|
+
import * as Stream from "@effect/stream/Stream";
|
|
19
|
+
import { Readable } from "node:stream";
|
|
20
|
+
/** @internal */
|
|
21
|
+
export const make = (evaluate, options) => Effect.gen(function* (_) {
|
|
22
|
+
const server = evaluate();
|
|
23
|
+
const serverFiber = yield* _(Effect.addFinalizer(() => Effect.async(resume => {
|
|
24
|
+
server.close(error => {
|
|
25
|
+
if (error) {
|
|
26
|
+
resume(Effect.die(error));
|
|
27
|
+
} else {
|
|
28
|
+
resume(Effect.unit);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
})), Effect.zipRight(Effect.async(resume => {
|
|
32
|
+
server.on("error", error => {
|
|
33
|
+
resume(Effect.fail(Error.ServeError({
|
|
34
|
+
error
|
|
35
|
+
})));
|
|
36
|
+
});
|
|
37
|
+
})), Effect.scoped, Effect.forkScoped);
|
|
38
|
+
yield* _(Effect.async(resume => {
|
|
39
|
+
server.listen(options, () => {
|
|
40
|
+
resume(Effect.unit);
|
|
41
|
+
});
|
|
42
|
+
}));
|
|
43
|
+
const address = server.address();
|
|
44
|
+
return Server.make({
|
|
45
|
+
address: typeof address === "string" ? {
|
|
46
|
+
_tag: "UnixAddress",
|
|
47
|
+
path: address
|
|
48
|
+
} : {
|
|
49
|
+
_tag: "TcpAddress",
|
|
50
|
+
hostname: address.address,
|
|
51
|
+
port: address.port
|
|
52
|
+
},
|
|
53
|
+
serve: (httpApp, middleware) => {
|
|
54
|
+
const handledApp = middleware ? middleware(respond(httpApp)) : respond(httpApp);
|
|
55
|
+
return Effect.flatMap(Effect.runtime(), runtime => {
|
|
56
|
+
const runFork = Runtime.runFork(runtime);
|
|
57
|
+
function handler(nodeRequest, nodeResponse) {
|
|
58
|
+
runFork(Effect.provideService(handledApp, ServerRequest.ServerRequest, new ServerRequestImpl(nodeRequest, nodeResponse)));
|
|
59
|
+
}
|
|
60
|
+
return Effect.all([Effect.acquireRelease(Effect.sync(() => server.on("request", handler)), () => Effect.sync(() => server.off("request", handler))), Fiber.join(serverFiber)], {
|
|
61
|
+
discard: true,
|
|
62
|
+
concurrency: "unbounded"
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
}).pipe(Effect.locally(IncomingMessage.maxBodySize, Option.some(FileSystem.Size(1024 * 1024 * 10))));
|
|
68
|
+
const respond = /*#__PURE__*/Middleware.make(httpApp => Effect.flatMap(ServerRequest.ServerRequest, request => Effect.tapErrorCause(Effect.tap(Effect.flatMap(httpApp, ServerResponse.toNonEffectBody), response => handleResponse(request, response)), _cause => Effect.sync(() => {
|
|
69
|
+
const nodeResponse = request.response;
|
|
70
|
+
if (!nodeResponse.headersSent) {
|
|
71
|
+
nodeResponse.writeHead(500);
|
|
72
|
+
}
|
|
73
|
+
if (!nodeResponse.writableEnded) {
|
|
74
|
+
nodeResponse.end();
|
|
75
|
+
}
|
|
76
|
+
}))));
|
|
77
|
+
class ServerRequestImpl extends IncomingMessageImpl {
|
|
78
|
+
constructor(source, response, url = source.url, headersOverride) {
|
|
79
|
+
super(source, _ => Error.RequestError({
|
|
80
|
+
request: this,
|
|
81
|
+
reason: "Decode",
|
|
82
|
+
error: _
|
|
83
|
+
}));
|
|
84
|
+
this.source = source;
|
|
85
|
+
this.response = response;
|
|
86
|
+
this.url = url;
|
|
87
|
+
this.headersOverride = headersOverride;
|
|
88
|
+
this[ServerRequest.TypeId] = ServerRequest.TypeId;
|
|
89
|
+
}
|
|
90
|
+
get originalUrl() {
|
|
91
|
+
return this.source.url;
|
|
92
|
+
}
|
|
93
|
+
get method() {
|
|
94
|
+
return this.source.method;
|
|
95
|
+
}
|
|
96
|
+
get headers() {
|
|
97
|
+
this.headersOverride ??= Headers.fromInput(this.source.headers);
|
|
98
|
+
return this.headersOverride;
|
|
99
|
+
}
|
|
100
|
+
get formData() {
|
|
101
|
+
if (this.formDataEffect) {
|
|
102
|
+
return this.formDataEffect;
|
|
103
|
+
}
|
|
104
|
+
this.formDataEffect = Effect.runSync(Effect.cached(internalFormData.formData(this.source)));
|
|
105
|
+
return this.formDataEffect;
|
|
106
|
+
}
|
|
107
|
+
get formDataStream() {
|
|
108
|
+
return internalFormData.fromRequest(this.source);
|
|
109
|
+
}
|
|
110
|
+
setUrl(url) {
|
|
111
|
+
return new ServerRequestImpl(this.source, this.response, url, this.headersOverride);
|
|
112
|
+
}
|
|
113
|
+
replaceHeaders(headers) {
|
|
114
|
+
return new ServerRequestImpl(this.source, this.response, this.url, headers);
|
|
115
|
+
}
|
|
116
|
+
toString() {
|
|
117
|
+
return `ServerRequest(${this.method} ${this.url})`;
|
|
118
|
+
}
|
|
119
|
+
toJSON() {
|
|
120
|
+
return {
|
|
121
|
+
_tag: "ServerRequest",
|
|
122
|
+
method: this.method,
|
|
123
|
+
url: this.url,
|
|
124
|
+
originalUrl: this.originalUrl,
|
|
125
|
+
headers: Object.fromEntries(this.headers)
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
ServerRequest.TypeId;
|
|
130
|
+
/** @internal */
|
|
131
|
+
export const layer = (evaluate, options) => Layer.scoped(Server.Server, make(evaluate, options));
|
|
132
|
+
/** @internal */
|
|
133
|
+
export const layerConfig = (evaluate, options) => Layer.scoped(Server.Server, Effect.flatMap(Effect.config(Config.unwrap(options)), options => make(evaluate, options)));
|
|
134
|
+
const handleResponse = (request, response) => Effect.suspend(() => {
|
|
135
|
+
const nodeResponse = request.response;
|
|
136
|
+
switch (response.body._tag) {
|
|
137
|
+
case "Empty":
|
|
138
|
+
{
|
|
139
|
+
nodeResponse.writeHead(response.status, response.headers === Headers.empty ? undefined : Object.fromEntries(response.headers));
|
|
140
|
+
nodeResponse.end();
|
|
141
|
+
return Effect.unit;
|
|
142
|
+
}
|
|
143
|
+
case "Raw":
|
|
144
|
+
{
|
|
145
|
+
const headers = response.headers === Headers.empty ? {} : Object.fromEntries(response.headers);
|
|
146
|
+
if (response.body.contentType) {
|
|
147
|
+
headers["content-type"] = response.body.contentType;
|
|
148
|
+
}
|
|
149
|
+
if (response.body.contentLength) {
|
|
150
|
+
headers["content-length"] = response.body.contentLength.toString();
|
|
151
|
+
}
|
|
152
|
+
nodeResponse.writeHead(response.status, headers);
|
|
153
|
+
nodeResponse.end(response.body.body);
|
|
154
|
+
return Effect.unit;
|
|
155
|
+
}
|
|
156
|
+
case "Uint8Array":
|
|
157
|
+
{
|
|
158
|
+
const headers = response.headers === Headers.empty ? {} : Object.fromEntries(response.headers);
|
|
159
|
+
headers["content-type"] = response.body.contentType;
|
|
160
|
+
headers["content-length"] = response.body.contentLength.toString();
|
|
161
|
+
nodeResponse.writeHead(response.status, headers);
|
|
162
|
+
nodeResponse.end(response.body.body);
|
|
163
|
+
return Effect.unit;
|
|
164
|
+
}
|
|
165
|
+
case "FormData":
|
|
166
|
+
{
|
|
167
|
+
const body = response.body;
|
|
168
|
+
return Effect.async(resume => {
|
|
169
|
+
const r = new Response(body.formData);
|
|
170
|
+
const headers = response.headers ? Object.fromEntries(response.headers) : {};
|
|
171
|
+
headers["content-type"] = r.headers.get("content-type");
|
|
172
|
+
nodeResponse.writeHead(response.status, headers);
|
|
173
|
+
Readable.fromWeb(r.body).pipe(nodeResponse).on("error", error => {
|
|
174
|
+
resume(Effect.fail(Error.ResponseError({
|
|
175
|
+
request,
|
|
176
|
+
response,
|
|
177
|
+
reason: "Decode",
|
|
178
|
+
error
|
|
179
|
+
})));
|
|
180
|
+
}).once("finish", () => {
|
|
181
|
+
resume(Effect.unit);
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
case "Stream":
|
|
186
|
+
{
|
|
187
|
+
const headers = response.headers === Headers.empty ? {} : Object.fromEntries(response.headers);
|
|
188
|
+
headers["content-type"] = response.body.contentType;
|
|
189
|
+
if (response.body.contentLength) {
|
|
190
|
+
headers["content-length"] = response.body.contentLength.toString();
|
|
191
|
+
}
|
|
192
|
+
nodeResponse.writeHead(response.status, headers);
|
|
193
|
+
return Stream.run(Stream.mapError(response.body.stream, error => Error.ResponseError({
|
|
194
|
+
request,
|
|
195
|
+
response,
|
|
196
|
+
reason: "Decode",
|
|
197
|
+
error
|
|
198
|
+
})), NodeSink.fromWritable(() => nodeResponse, error => Error.ResponseError({
|
|
199
|
+
request,
|
|
200
|
+
response,
|
|
201
|
+
reason: "Decode",
|
|
202
|
+
error
|
|
203
|
+
})));
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
//# sourceMappingURL=server.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.mjs","names":["Option","Config","Effect","Fiber","Layer","Runtime","internalFormData","IncomingMessageImpl","NodeSink","FileSystem","Headers","IncomingMessage","Middleware","Server","Error","ServerRequest","ServerResponse","Stream","Readable","make","evaluate","options","gen","_","server","serverFiber","addFinalizer","async","resume","close","error","die","unit","zipRight","on","fail","ServeError","scoped","forkScoped","listen","address","_tag","path","hostname","port","serve","httpApp","middleware","handledApp","respond","flatMap","runtime","runFork","handler","nodeRequest","nodeResponse","provideService","ServerRequestImpl","all","acquireRelease","sync","off","join","discard","concurrency","pipe","locally","maxBodySize","some","Size","request","tapErrorCause","tap","toNonEffectBody","response","handleResponse","_cause","headersSent","writeHead","writableEnded","end","constructor","source","url","headersOverride","RequestError","reason","TypeId","originalUrl","method","headers","fromInput","formData","formDataEffect","runSync","cached","formDataStream","fromRequest","setUrl","replaceHeaders","toString","toJSON","Object","fromEntries","layer","layerConfig","config","unwrap","suspend","body","status","empty","undefined","contentType","contentLength","r","Response","get","fromWeb","ResponseError","once","run","mapError","stream","fromWritable"],"sources":["../../../src/internal/http/server.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,MAAM,MAAM,qBAAqB;AAC7C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,MAAM,MAAM,mBAAmB;AAC3C,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,OAAO,KAAKC,KAAK,MAAM,kBAAkB;AACzC,OAAO,KAAKC,OAAO,MAAM,oBAAoB;AAE7C,OAAO,KAAKC,gBAAgB,MAAM,8CAA8C;AAChF,SAASC,mBAAmB,QAAQ,qDAAqD;AACzF,OAAO,KAAKC,QAAQ,MAAM,4BAA4B;AACtD,OAAO,KAAKC,UAAU,MAAM,6BAA6B;AAEzD,OAAO,KAAKC,OAAO,MAAM,+BAA+B;AACxD,OAAO,KAAKC,eAAe,MAAM,uCAAuC;AAExE,OAAO,KAAKC,UAAU,MAAM,kCAAkC;AAC9D,OAAO,KAAKC,MAAM,MAAM,8BAA8B;AACtD,OAAO,KAAKC,KAAK,MAAM,mCAAmC;AAC1D,OAAO,KAAKC,aAAa,MAAM,qCAAqC;AACpE,OAAO,KAAKC,cAAc,MAAM,sCAAsC;AAEtE,OAAO,KAAKC,MAAM,MAAM,uBAAuB;AAG/C,SAASC,QAAQ,QAAQ,aAAa;AAEtC;AACA,OAAO,MAAMC,IAAI,GAAGA,CAClBC,QAA8B,EAC9BC,OAA0B,KAE1BnB,MAAM,CAACoB,GAAG,CAAC,WAAUC,CAAC;EACpB,MAAMC,MAAM,GAAGJ,QAAQ,EAAE;EAEzB,MAAMK,WAAW,GAAG,OAAOF,CAAC,CAC1BrB,MAAM,CAACwB,YAAY,CAAC,MAClBxB,MAAM,CAACyB,KAAK,CAAsBC,MAAM,IAAI;IAC1CJ,MAAM,CAACK,KAAK,CAAEC,KAAK,IAAI;MACrB,IAAIA,KAAK,EAAE;QACTF,MAAM,CAAC1B,MAAM,CAAC6B,GAAG,CAACD,KAAK,CAAC,CAAC;OAC1B,MAAM;QACLF,MAAM,CAAC1B,MAAM,CAAC8B,IAAI,CAAC;;IAEvB,CAAC,CAAC;EACJ,CAAC,CAAC,CACH,EACD9B,MAAM,CAAC+B,QAAQ,CACb/B,MAAM,CAACyB,KAAK,CAAkCC,MAAM,IAAI;IACtDJ,MAAM,CAACU,EAAE,CAAC,OAAO,EAAGJ,KAAK,IAAI;MAC3BF,MAAM,CAAC1B,MAAM,CAACiC,IAAI,CAACrB,KAAK,CAACsB,UAAU,CAAC;QAAEN;MAAK,CAAE,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC;EACJ,CAAC,CAAC,CACH,EACD5B,MAAM,CAACmC,MAAM,EACbnC,MAAM,CAACoC,UAAU,CAClB;EAED,OAAOf,CAAC,CAACrB,MAAM,CAACyB,KAAK,CAAsBC,MAAM,IAAI;IACnDJ,MAAM,CAACe,MAAM,CAAClB,OAAO,EAAE,MAAK;MAC1BO,MAAM,CAAC1B,MAAM,CAAC8B,IAAI,CAAC;IACrB,CAAC,CAAC;EACJ,CAAC,CAAC,CAAC;EAEH,MAAMQ,OAAO,GAAGhB,MAAM,CAACgB,OAAO,EAAG;EAEjC,OAAO3B,MAAM,CAACM,IAAI,CAAC;IACjBqB,OAAO,EAAE,OAAOA,OAAO,KAAK,QAAQ,GAClC;MACEC,IAAI,EAAE,aAAa;MACnBC,IAAI,EAAEF;KACP,GACD;MACEC,IAAI,EAAE,YAAY;MAClBE,QAAQ,EAAEH,OAAO,CAACA,OAAO;MACzBI,IAAI,EAAEJ,OAAO,CAACI;KACf;IACHC,KAAK,EAAEA,CAACC,OAAO,EAAEC,UAAU,KAAI;MAC7B,MAAMC,UAAU,GAAGD,UAAU,GAAGA,UAAU,CAACE,OAAO,CAACH,OAAO,CAAC,CAAC,GAAGG,OAAO,CAACH,OAAO,CAAC;MAC/E,OAAO5C,MAAM,CAACgD,OAAO,CAAChD,MAAM,CAACiD,OAAO,EAAE,EAAGA,OAAO,IAAI;QAClD,MAAMC,OAAO,GAAG/C,OAAO,CAAC+C,OAAO,CAACD,OAAmC,CAAC;QACpE,SAASE,OAAOA,CAACC,WAAiC,EAAEC,YAAiC;UACnFH,OAAO,CACLlD,MAAM,CAACsD,cAAc,CACnBR,UAAU,EACVjC,aAAa,CAACA,aAAa,EAC3B,IAAI0C,iBAAiB,CAACH,WAAW,EAAEC,YAAY,CAAC,CACjD,CACF;QACH;QACA,OAAOrD,MAAM,CAACwD,GAAG,CAAC,CAChBxD,MAAM,CAACyD,cAAc,CACnBzD,MAAM,CAAC0D,IAAI,CAAC,MAAMpC,MAAM,CAACU,EAAE,CAAC,SAAS,EAAEmB,OAAO,CAAC,CAAC,EAChD,MAAMnD,MAAM,CAAC0D,IAAI,CAAC,MAAMpC,MAAM,CAACqC,GAAG,CAAC,SAAS,EAAER,OAAO,CAAC,CAAC,CACxD,EACDlD,KAAK,CAAC2D,IAAI,CAACrC,WAAW,CAAC,CACxB,EAAE;UAAEsC,OAAO,EAAE,IAAI;UAAEC,WAAW,EAAE;QAAW,CAAE,CAAkD;MAClG,CAAC,CAAC;IACJ;GACD,CAAC;AACJ,CAAC,CAAC,CAACC,IAAI,CACL/D,MAAM,CAACgE,OAAO,CACZvD,eAAe,CAACwD,WAAW,EAC3BnE,MAAM,CAACoE,IAAI,CAAC3D,UAAU,CAAC4D,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,CAAC,CAC/C,CACF;AAEH,MAAMpB,OAAO,gBAAGrC,UAAU,CAACO,IAAI,CAAE2B,OAAO,IACtC5C,MAAM,CAACgD,OAAO,CAACnC,aAAa,CAACA,aAAa,EAAGuD,OAAO,IAClDpE,MAAM,CAACqE,aAAa,CAClBrE,MAAM,CAACsE,GAAG,CACRtE,MAAM,CAACgD,OAAO,CAACJ,OAAO,EAAE9B,cAAc,CAACyD,eAAe,CAAC,EACtDC,QAAQ,IAAKC,cAAc,CAACL,OAAO,EAAEI,QAAQ,CAAC,CAChD,EACAE,MAAM,IACL1E,MAAM,CAAC0D,IAAI,CAAC,MAAK;EACf,MAAML,YAAY,GAAIe,OAA6B,CAACI,QAAQ;EAC5D,IAAI,CAACnB,YAAY,CAACsB,WAAW,EAAE;IAC7BtB,YAAY,CAACuB,SAAS,CAAC,GAAG,CAAC;;EAE7B,IAAI,CAACvB,YAAY,CAACwB,aAAa,EAAE;IAC/BxB,YAAY,CAACyB,GAAG,EAAE;;AAEtB,CAAC,CAAC,CACL,CAAC,CACL;AAED,MAAMvB,iBAAkB,SAAQlD,mBAAuC;EAGrE0E,YACWC,MAA4B,EAC5BR,QAA6B,EAC7BS,GAAA,GAAMD,MAAM,CAACC,GAAI,EAClBC,eAAiC;IAEzC,KAAK,CAACF,MAAM,EAAG3D,CAAC,IACdT,KAAK,CAACuE,YAAY,CAAC;MACjBf,OAAO,EAAE,IAAI;MACbgB,MAAM,EAAE,QAAQ;MAChBxD,KAAK,EAAEP;KACR,CAAC,CAAC;IAVI,KAAA2D,MAAM,GAANA,MAAM;IACN,KAAAR,QAAQ,GAARA,QAAQ;IACR,KAAAS,GAAG,GAAHA,GAAG;IACJ,KAAAC,eAAe,GAAfA,eAAe;IAQvB,IAAI,CAACrE,aAAa,CAACwE,MAAM,CAAC,GAAGxE,aAAa,CAACwE,MAAM;EACnD;EAEA,IAAIC,WAAWA,CAAA;IACb,OAAO,IAAI,CAACN,MAAM,CAACC,GAAI;EACzB;EAEA,IAAIM,MAAMA,CAAA;IACR,OAAO,IAAI,CAACP,MAAM,CAACO,MAAgB;EACrC;EAEA,IAAIC,OAAOA,CAAA;IACT,IAAI,CAACN,eAAe,KAAK1E,OAAO,CAACiF,SAAS,CAAC,IAAI,CAACT,MAAM,CAACQ,OAAc,CAAC;IACtE,OAAO,IAAI,CAACN,eAAe;EAC7B;EASA,IAAIQ,QAAQA,CAAA;IAKV,IAAI,IAAI,CAACC,cAAc,EAAE;MACvB,OAAO,IAAI,CAACA,cAAc;;IAE5B,IAAI,CAACA,cAAc,GAAG3F,MAAM,CAAC4F,OAAO,CAAC5F,MAAM,CAAC6F,MAAM,CAChDzF,gBAAgB,CAACsF,QAAQ,CAAC,IAAI,CAACV,MAAM,CAAC,CACvC,CAAC;IACF,OAAO,IAAI,CAACW,cAAc;EAC5B;EAEA,IAAIG,cAAcA,CAAA;IAChB,OAAO1F,gBAAgB,CAAC2F,WAAW,CAAC,IAAI,CAACf,MAAM,CAAC;EAClD;EAEAgB,MAAMA,CAACf,GAAW;IAChB,OAAO,IAAI1B,iBAAiB,CAC1B,IAAI,CAACyB,MAAM,EACX,IAAI,CAACR,QAAQ,EACbS,GAAG,EACH,IAAI,CAACC,eAAe,CACrB;EACH;EAEAe,cAAcA,CAACT,OAAwB;IACrC,OAAO,IAAIjC,iBAAiB,CAC1B,IAAI,CAACyB,MAAM,EACX,IAAI,CAACR,QAAQ,EACb,IAAI,CAACS,GAAG,EACRO,OAAO,CACR;EACH;EAEAU,QAAQA,CAAA;IACN,OAAO,iBAAiB,IAAI,CAACX,MAAM,IAAI,IAAI,CAACN,GAAG,GAAG;EACpD;EAEAkB,MAAMA,CAAA;IACJ,OAAO;MACL5D,IAAI,EAAE,eAAe;MACrBgD,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBN,GAAG,EAAE,IAAI,CAACA,GAAG;MACbK,WAAW,EAAE,IAAI,CAACA,WAAW;MAC7BE,OAAO,EAAEY,MAAM,CAACC,WAAW,CAAC,IAAI,CAACb,OAAO;KACzC;EACH;;AArFU3E,aAAa,CAACwE,MAAM;AAwFhC;AACA,OAAO,MAAMiB,KAAK,GAAGA,CACnBpF,QAA8B,EAC9BC,OAA0B,KACvBjB,KAAK,CAACiC,MAAM,CAACxB,MAAM,CAACA,MAAM,EAAEM,IAAI,CAACC,QAAQ,EAAEC,OAAO,CAAC,CAAC;AAEzD;AACA,OAAO,MAAMoF,WAAW,GAAGA,CACzBrF,QAA8B,EAC9BC,OAA8C,KAE9CjB,KAAK,CAACiC,MAAM,CACVxB,MAAM,CAACA,MAAM,EACbX,MAAM,CAACgD,OAAO,CACZhD,MAAM,CAACwG,MAAM,CAACzG,MAAM,CAAC0G,MAAM,CAACtF,OAAO,CAAC,CAAC,EACpCA,OAAO,IAAKF,IAAI,CAACC,QAAQ,EAAEC,OAAO,CAAC,CACrC,CACF;AAEH,MAAMsD,cAAc,GAAGA,CACrBL,OAAoC,EACpCI,QAAqD,KAErDxE,MAAM,CAAC0G,OAAO,CAAC,MAAsD;EACnE,MAAMrD,YAAY,GAAIe,OAA6B,CAACI,QAAQ;EAC5D,QAAQA,QAAQ,CAACmC,IAAI,CAACpE,IAAI;IACxB,KAAK,OAAO;MAAE;QACZc,YAAY,CAACuB,SAAS,CACpBJ,QAAQ,CAACoC,MAAM,EACfpC,QAAQ,CAACgB,OAAO,KAAKhF,OAAO,CAACqG,KAAK,GAAGC,SAAS,GAAGV,MAAM,CAACC,WAAW,CAAC7B,QAAQ,CAACgB,OAAO,CAAC,CACtF;QACDnC,YAAY,CAACyB,GAAG,EAAE;QAClB,OAAO9E,MAAM,CAAC8B,IAAI;;IAEpB,KAAK,KAAK;MAAE;QACV,MAAM0D,OAAO,GAAGhB,QAAQ,CAACgB,OAAO,KAAKhF,OAAO,CAACqG,KAAK,GAAG,EAAE,GAAGT,MAAM,CAACC,WAAW,CAAC7B,QAAQ,CAACgB,OAAO,CAAC;QAC9F,IAAIhB,QAAQ,CAACmC,IAAI,CAACI,WAAW,EAAE;UAC7BvB,OAAO,CAAC,cAAc,CAAC,GAAGhB,QAAQ,CAACmC,IAAI,CAACI,WAAW;;QAErD,IAAIvC,QAAQ,CAACmC,IAAI,CAACK,aAAa,EAAE;UAC/BxB,OAAO,CAAC,gBAAgB,CAAC,GAAGhB,QAAQ,CAACmC,IAAI,CAACK,aAAa,CAACd,QAAQ,EAAE;;QAEpE7C,YAAY,CAACuB,SAAS,CAACJ,QAAQ,CAACoC,MAAM,EAAEpB,OAAO,CAAC;QAChDnC,YAAY,CAACyB,GAAG,CAACN,QAAQ,CAACmC,IAAI,CAACA,IAAI,CAAC;QACpC,OAAO3G,MAAM,CAAC8B,IAAI;;IAEpB,KAAK,YAAY;MAAE;QACjB,MAAM0D,OAAO,GAAGhB,QAAQ,CAACgB,OAAO,KAAKhF,OAAO,CAACqG,KAAK,GAAG,EAAE,GAAGT,MAAM,CAACC,WAAW,CAAC7B,QAAQ,CAACgB,OAAO,CAAC;QAC9FA,OAAO,CAAC,cAAc,CAAC,GAAGhB,QAAQ,CAACmC,IAAI,CAACI,WAAW;QACnDvB,OAAO,CAAC,gBAAgB,CAAC,GAAGhB,QAAQ,CAACmC,IAAI,CAACK,aAAa,CAACd,QAAQ,EAAE;QAClE7C,YAAY,CAACuB,SAAS,CAACJ,QAAQ,CAACoC,MAAM,EAAEpB,OAAO,CAAC;QAChDnC,YAAY,CAACyB,GAAG,CAACN,QAAQ,CAACmC,IAAI,CAACA,IAAI,CAAC;QACpC,OAAO3G,MAAM,CAAC8B,IAAI;;IAEpB,KAAK,UAAU;MAAE;QACf,MAAM6E,IAAI,GAAGnC,QAAQ,CAACmC,IAAI;QAC1B,OAAO3G,MAAM,CAACyB,KAAK,CAAoCC,MAAM,IAAI;UAC/D,MAAMuF,CAAC,GAAG,IAAIC,QAAQ,CAACP,IAAI,CAACjB,QAAQ,CAAC;UACrC,MAAMF,OAAO,GAAGhB,QAAQ,CAACgB,OAAO,GAC5BY,MAAM,CAACC,WAAW,CAAC7B,QAAQ,CAACgB,OAAO,CAAC,GACpC,EAAE;UACNA,OAAO,CAAC,cAAc,CAAC,GAAGyB,CAAC,CAACzB,OAAO,CAAC2B,GAAG,CAAC,cAAc,CAAE;UACxD9D,YAAY,CAACuB,SAAS,CAACJ,QAAQ,CAACoC,MAAM,EAAEpB,OAAO,CAAC;UAChDxE,QAAQ,CAACoG,OAAO,CAACH,CAAC,CAACN,IAAW,CAAC,CAC5B5C,IAAI,CAACV,YAAY,CAAC,CAClBrB,EAAE,CAAC,OAAO,EAAGJ,KAAK,IAAI;YACrBF,MAAM,CAAC1B,MAAM,CAACiC,IAAI,CAACrB,KAAK,CAACyG,aAAa,CAAC;cACrCjD,OAAO;cACPI,QAAQ;cACRY,MAAM,EAAE,QAAQ;cAChBxD;aACD,CAAC,CAAC,CAAC;UACN,CAAC,CAAC,CACD0F,IAAI,CAAC,QAAQ,EAAE,MAAK;YACnB5F,MAAM,CAAC1B,MAAM,CAAC8B,IAAI,CAAC;UACrB,CAAC,CAAC;QACN,CAAC,CAAC;;IAEJ,KAAK,QAAQ;MAAE;QACb,MAAM0D,OAAO,GAAGhB,QAAQ,CAACgB,OAAO,KAAKhF,OAAO,CAACqG,KAAK,GAAG,EAAE,GAAGT,MAAM,CAACC,WAAW,CAAC7B,QAAQ,CAACgB,OAAO,CAAC;QAC9FA,OAAO,CAAC,cAAc,CAAC,GAAGhB,QAAQ,CAACmC,IAAI,CAACI,WAAW;QACnD,IAAIvC,QAAQ,CAACmC,IAAI,CAACK,aAAa,EAAE;UAC/BxB,OAAO,CAAC,gBAAgB,CAAC,GAAGhB,QAAQ,CAACmC,IAAI,CAACK,aAAa,CAACd,QAAQ,EAAE;;QAEpE7C,YAAY,CAACuB,SAAS,CAACJ,QAAQ,CAACoC,MAAM,EAAEpB,OAAO,CAAC;QAChD,OAAOzE,MAAM,CAACwG,GAAG,CACfxG,MAAM,CAACyG,QAAQ,CACbhD,QAAQ,CAACmC,IAAI,CAACc,MAAM,EACnB7F,KAAK,IACJhB,KAAK,CAACyG,aAAa,CAAC;UAClBjD,OAAO;UACPI,QAAQ;UACRY,MAAM,EAAE,QAAQ;UAChBxD;SACD,CAAC,CACL,EACDtB,QAAQ,CAACoH,YAAY,CAAC,MAAMrE,YAAY,EAAGzB,KAAK,IAC9ChB,KAAK,CAACyG,aAAa,CAAC;UAClBjD,OAAO;UACPI,QAAQ;UACRY,MAAM,EAAE,QAAQ;UAChBxD;SACD,CAAC,CAAC,CACN;;;AAGP,CAAC,CAAC"}
|
package/mjs/internal/stream.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import * as Effect from "@effect/io/Effect";
|
|
|
3
3
|
import * as Stream from "@effect/stream/Stream";
|
|
4
4
|
/** @internal */
|
|
5
5
|
export const fromReadable = (evaluate, onError, {
|
|
6
|
-
chunkSize
|
|
6
|
+
chunkSize
|
|
7
7
|
} = {}) => Stream.flatMap(_ => Stream.repeatEffectOption(readChunk(_, chunkSize)))(Stream.unwrapScoped(Effect.map(stream => Stream.async(emit => {
|
|
8
8
|
stream.once("error", err => {
|
|
9
9
|
emit.fail(onError(err));
|
|
@@ -28,42 +28,61 @@ export const fromReadable = (evaluate, onError, {
|
|
|
28
28
|
stream.destroy();
|
|
29
29
|
}
|
|
30
30
|
})))));
|
|
31
|
-
const readChunk = (stream, size) => Effect.flatMap(_ => _ ? Effect.succeed(_) : Effect.fail(Option.none()))(Effect.sync(() => size
|
|
31
|
+
const readChunk = (stream, size) => Effect.flatMap(_ => _ ? Effect.succeed(_) : Effect.fail(Option.none()))(Effect.sync(() => size ? stream.read(Number(size)) : stream.read()));
|
|
32
32
|
/** @internal */
|
|
33
|
-
export const toString =
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
33
|
+
export const toString = options => {
|
|
34
|
+
const maxBytesNumber = options.maxBytes ? Number(options.maxBytes) : undefined;
|
|
35
|
+
return Effect.acquireUseRelease(Effect.sync(() => {
|
|
36
|
+
const stream = options.readable();
|
|
37
|
+
stream.setEncoding(options.encoding ?? "utf8");
|
|
38
|
+
return stream;
|
|
39
|
+
}), stream => Effect.async(resume => {
|
|
40
|
+
let string = "";
|
|
41
|
+
let bytes = 0;
|
|
42
|
+
stream.once("error", err => {
|
|
43
|
+
resume(Effect.fail(options.onFailure(err)));
|
|
44
|
+
});
|
|
45
|
+
stream.once("end", () => {
|
|
46
|
+
resume(Effect.succeed(string));
|
|
47
|
+
});
|
|
48
|
+
stream.on("data", chunk => {
|
|
49
|
+
string += chunk;
|
|
50
|
+
bytes += Buffer.byteLength(chunk);
|
|
51
|
+
if (maxBytesNumber && bytes > maxBytesNumber) {
|
|
52
|
+
resume(Effect.fail(options.onFailure(new Error("maxBytes exceeded"))));
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}), stream => Effect.sync(() => {
|
|
47
56
|
stream.removeAllListeners();
|
|
48
|
-
stream.
|
|
49
|
-
|
|
50
|
-
}
|
|
57
|
+
if (!stream.closed) {
|
|
58
|
+
stream.destroy();
|
|
59
|
+
}
|
|
60
|
+
}));
|
|
61
|
+
};
|
|
51
62
|
/** @internal */
|
|
52
|
-
export const toUint8Array =
|
|
53
|
-
const
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
export const toUint8Array = options => {
|
|
64
|
+
const maxBytesNumber = options.maxBytes ? Number(options.maxBytes) : undefined;
|
|
65
|
+
return Effect.acquireUseRelease(Effect.sync(options.readable), stream => Effect.async(resume => {
|
|
66
|
+
let buffer = Buffer.alloc(0);
|
|
67
|
+
let bytes = 0;
|
|
68
|
+
stream.once("error", err => {
|
|
69
|
+
resume(Effect.fail(options.onFailure(err)));
|
|
70
|
+
});
|
|
71
|
+
stream.once("end", () => {
|
|
72
|
+
resume(Effect.succeed(buffer));
|
|
73
|
+
});
|
|
74
|
+
stream.on("data", chunk => {
|
|
75
|
+
buffer = Buffer.concat([buffer, chunk]);
|
|
76
|
+
bytes += chunk.length;
|
|
77
|
+
if (maxBytesNumber && bytes > maxBytesNumber) {
|
|
78
|
+
resume(Effect.fail(options.onFailure(new Error("maxBytes exceeded"))));
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}), stream => Effect.sync(() => {
|
|
65
82
|
stream.removeAllListeners();
|
|
66
|
-
stream.
|
|
67
|
-
|
|
68
|
-
}
|
|
83
|
+
if (!stream.closed) {
|
|
84
|
+
stream.destroy();
|
|
85
|
+
}
|
|
86
|
+
}));
|
|
87
|
+
};
|
|
69
88
|
//# sourceMappingURL=stream.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream.mjs","names":["Option","Effect","Stream","fromReadable","evaluate","onError","chunkSize","
|
|
1
|
+
{"version":3,"file":"stream.mjs","names":["Option","Effect","Stream","fromReadable","evaluate","onError","chunkSize","flatMap","_","repeatEffectOption","readChunk","unwrapScoped","map","stream","async","emit","once","err","fail","end","on","single","readable","acquireRelease","sync","removeAllListeners","closed","destroy","size","succeed","none","read","Number","toString","options","maxBytesNumber","maxBytes","undefined","acquireUseRelease","setEncoding","encoding","resume","string","bytes","onFailure","chunk","Buffer","byteLength","Error","toUint8Array","buffer","alloc","concat","length"],"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;AAAS,IAA0B,EAAE,KAoCrCJ,MAAM,CAACK,OAAO,CAAEC,CAAC,IAAKN,MAAM,CAACO,kBAAkB,CAACC,SAAS,CAAIF,CAAC,EAAEF,SAAS,CAAC,CAAC,CAAC,CAD5EJ,MAAM,CAACS,YAAY,CAxBnBV,MAAM,CAACW,GAAG,CAAEC,MAAM,IAChBX,MAAM,CAACY,KAAK,CAAsBC,IAAI,IAAI;EACxCF,MAAM,CAACG,IAAI,CAAC,OAAO,EAAGC,GAAG,IAAI;IAC3BF,IAAI,CAACG,IAAI,CAACb,OAAO,CAACY,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/BDZ,MAAM,CAACsB,cAAc,CAACtB,MAAM,CAACuB,IAAI,CAACpB,QAAQ,CAAC,EAAGS,MAAM,IAClDZ,MAAM,CAACuB,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,IAA2B,KAIzB3B,MAAM,CAACM,OAAO,CAAEC,CAAC,IAAMA,CAAC,GAAGP,MAAM,CAAC4B,OAAO,CAACrB,CAAC,CAAC,GAAGP,MAAM,CAACiB,IAAI,CAAClB,MAAM,CAAC8B,IAAI,EAAE,CAAE,CAAC,CAD3E7B,MAAM,CAACuB,IAAI,CAAC,MAAOI,IAAI,GAAGf,MAAM,CAACkB,IAAI,CAACC,MAAM,CAACJ,IAAI,CAAC,CAAC,GAAGf,MAAM,CAACkB,IAAI,EAAe,CAAC,CAElF;AAEH;AACA,OAAO,MAAME,QAAQ,GACnBC,OAKC,IACkC;EACnC,MAAMC,cAAc,GAAGD,OAAO,CAACE,QAAQ,GAAGJ,MAAM,CAACE,OAAO,CAACE,QAAQ,CAAC,GAAGC,SAAS;EAC9E,OAAOpC,MAAM,CAACqC,iBAAiB,CAC7BrC,MAAM,CAACuB,IAAI,CAAC,MAAK;IACf,MAAMX,MAAM,GAAGqB,OAAO,CAACZ,QAAQ,EAAE;IACjCT,MAAM,CAAC0B,WAAW,CAACL,OAAO,CAACM,QAAQ,IAAI,MAAM,CAAC;IAC9C,OAAO3B,MAAM;EACf,CAAC,CAAC,EACDA,MAAM,IACLZ,MAAM,CAACa,KAAK,CAAE2B,MAAM,IAAI;IACtB,IAAIC,MAAM,GAAG,EAAE;IACf,IAAIC,KAAK,GAAG,CAAC;IACb9B,MAAM,CAACG,IAAI,CAAC,OAAO,EAAGC,GAAG,IAAI;MAC3BwB,MAAM,CAACxC,MAAM,CAACiB,IAAI,CAACgB,OAAO,CAACU,SAAS,CAAC3B,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC;IACFJ,MAAM,CAACG,IAAI,CAAC,KAAK,EAAE,MAAK;MACtByB,MAAM,CAACxC,MAAM,CAAC4B,OAAO,CAACa,MAAM,CAAC,CAAC;IAChC,CAAC,CAAC;IACF7B,MAAM,CAACO,EAAE,CAAC,MAAM,EAAGyB,KAAK,IAAI;MAC1BH,MAAM,IAAIG,KAAK;MACfF,KAAK,IAAIG,MAAM,CAACC,UAAU,CAACF,KAAK,CAAC;MACjC,IAAIV,cAAc,IAAIQ,KAAK,GAAGR,cAAc,EAAE;QAC5CM,MAAM,CAACxC,MAAM,CAACiB,IAAI,CAACgB,OAAO,CAACU,SAAS,CAAC,IAAII,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;;IAE1E,CAAC,CAAC;EACJ,CAAC,CAAC,EACHnC,MAAM,IACLZ,MAAM,CAACuB,IAAI,CAAC,MAAK;IACfX,MAAM,CAACY,kBAAkB,EAAE;IAC3B,IAAI,CAACZ,MAAM,CAACa,MAAM,EAAE;MAClBb,MAAM,CAACc,OAAO,EAAE;;EAEpB,CAAC,CAAC,CACL;AACH,CAAC;AAED;AACA,OAAO,MAAMsB,YAAY,GACvBf,OAIC,IACsC;EACvC,MAAMC,cAAc,GAAGD,OAAO,CAACE,QAAQ,GAAGJ,MAAM,CAACE,OAAO,CAACE,QAAQ,CAAC,GAAGC,SAAS;EAC9E,OAAOpC,MAAM,CAACqC,iBAAiB,CAC7BrC,MAAM,CAACuB,IAAI,CAACU,OAAO,CAACZ,QAAQ,CAAC,EAC5BT,MAAM,IACLZ,MAAM,CAACa,KAAK,CAAE2B,MAAM,IAAI;IACtB,IAAIS,MAAM,GAAGJ,MAAM,CAACK,KAAK,CAAC,CAAC,CAAC;IAC5B,IAAIR,KAAK,GAAG,CAAC;IACb9B,MAAM,CAACG,IAAI,CAAC,OAAO,EAAGC,GAAG,IAAI;MAC3BwB,MAAM,CAACxC,MAAM,CAACiB,IAAI,CAACgB,OAAO,CAACU,SAAS,CAAC3B,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC;IACFJ,MAAM,CAACG,IAAI,CAAC,KAAK,EAAE,MAAK;MACtByB,MAAM,CAACxC,MAAM,CAAC4B,OAAO,CAACqB,MAAM,CAAC,CAAC;IAChC,CAAC,CAAC;IACFrC,MAAM,CAACO,EAAE,CAAC,MAAM,EAAGyB,KAAK,IAAI;MAC1BK,MAAM,GAAGJ,MAAM,CAACM,MAAM,CAAC,CAACF,MAAM,EAAEL,KAAK,CAAC,CAAC;MACvCF,KAAK,IAAIE,KAAK,CAACQ,MAAM;MACrB,IAAIlB,cAAc,IAAIQ,KAAK,GAAGR,cAAc,EAAE;QAC5CM,MAAM,CAACxC,MAAM,CAACiB,IAAI,CAACgB,OAAO,CAACU,SAAS,CAAC,IAAII,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;;IAE1E,CAAC,CAAC;EACJ,CAAC,CAAC,EACHnC,MAAM,IACLZ,MAAM,CAACuB,IAAI,CAAC,MAAK;IACfX,MAAM,CAACY,kBAAkB,EAAE;IAC3B,IAAI,CAACZ,MAAM,CAACa,MAAM,EAAE;MAClBb,MAAM,CAACc,OAAO,EAAE;;EAEpB,CAAC,CAAC,CACL;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/platform-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.1",
|
|
4
4
|
"description": "Unified interfaces for common platform-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -24,10 +24,13 @@
|
|
|
24
24
|
},
|
|
25
25
|
"sideEffects": [],
|
|
26
26
|
"author": "Effect contributors",
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"busboy": "^1.6.0"
|
|
29
|
+
},
|
|
27
30
|
"peerDependencies": {
|
|
28
31
|
"@effect/data": "^0.17.1",
|
|
29
32
|
"@effect/io": "^0.38.0",
|
|
30
33
|
"@effect/stream": "^0.34.0",
|
|
31
|
-
"@effect/platform": "^0.
|
|
34
|
+
"@effect/platform": "^0.12.1"
|
|
32
35
|
}
|
|
33
36
|
}
|
package/src/Http/NodeClient.ts
CHANGED
|
@@ -51,6 +51,13 @@ export const makeAgent: (options?: Https.AgentOptions) => Effect.Effect<Scope.Sc
|
|
|
51
51
|
*/
|
|
52
52
|
export const agentLayer: Layer.Layer<never, never, HttpAgent> = internal.agentLayer
|
|
53
53
|
|
|
54
|
+
/**
|
|
55
|
+
* @since 1.0.0
|
|
56
|
+
* @category agent
|
|
57
|
+
*/
|
|
58
|
+
export const makeAgentLayer: (options?: Https.AgentOptions) => Layer.Layer<never, never, HttpAgent> =
|
|
59
|
+
internal.makeAgentLayer
|
|
60
|
+
|
|
54
61
|
/**
|
|
55
62
|
* @since 1.0.0
|
|
56
63
|
* @category constructors
|
|
@@ -62,3 +69,9 @@ export const make: Effect.Effect<HttpAgent, never, Client.Client.Default> = inte
|
|
|
62
69
|
* @category layers
|
|
63
70
|
*/
|
|
64
71
|
export const layer: Layer.Layer<never, never, Client.Client.Default> = internal.layer
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* @since 1.0.0
|
|
75
|
+
* @category layers
|
|
76
|
+
*/
|
|
77
|
+
export const layerWithoutAgent: Layer.Layer<HttpAgent, never, Client.Client.Default> = internal.layerWithoutAgent
|