@fncts/node 0.0.33 → 0.0.35
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/_cjs/http/IncomingMessage.cjs +59 -0
- package/_cjs/http/IncomingMessage.cjs.map +1 -0
- package/_cjs/http/Server.cjs +205 -0
- package/_cjs/http/Server.cjs.map +1 -0
- package/_cjs/http/ServerRequest.cjs +43 -0
- package/_cjs/http/ServerRequest.cjs.map +1 -0
- package/_cjs/stream/api.cjs +191 -52
- package/_cjs/stream/api.cjs.map +1 -1
- package/_mjs/http/IncomingMessage.mjs +50 -0
- package/_mjs/http/IncomingMessage.mjs.map +1 -0
- package/_mjs/http/Server.mjs +194 -0
- package/_mjs/http/Server.mjs.map +1 -0
- package/_mjs/http/ServerRequest.mjs +34 -0
- package/_mjs/http/ServerRequest.mjs.map +1 -0
- package/_mjs/stream/api.mjs +187 -50
- package/_mjs/stream/api.mjs.map +1 -1
- package/_src/http/IncomingMessage.ts +60 -0
- package/_src/http/Server.ts +282 -0
- package/_src/http/ServerRequest.ts +54 -0
- package/_src/stream/api.ts +247 -50
- package/http/IncomingMessage.d.ts +23 -0
- package/http/Server.d.ts +25 -0
- package/http/ServerRequest.d.ts +29 -0
- package/package.json +3 -2
- package/stream/api.d.ts +23 -8
@@ -0,0 +1,34 @@
|
|
1
|
+
var _a;
|
2
|
+
const fileName_1 = "(@fncts/node) src/http/ServerRequest.ts";
|
3
|
+
import * as tsplus_module_1 from "@fncts/io/IO/api";
|
4
|
+
import { RequestError } from "@fncts/http/RequestError";
|
5
|
+
import { ServerRequestTypeId } from "@fncts/http/ServerRequest";
|
6
|
+
import { IncomingMessageImpl } from "@fncts/node/http/IncomingMessage";
|
7
|
+
export class ServerRequestImpl extends IncomingMessageImpl {
|
8
|
+
constructor(source, response, upgradeEffect, url = source.url, headersOverride, remoteAddressOverride) {
|
9
|
+
super(source, error => new RequestError(this, "Decode", error), remoteAddressOverride);
|
10
|
+
this.source = source;
|
11
|
+
this.response = response;
|
12
|
+
this.upgradeEffect = upgradeEffect;
|
13
|
+
this.url = url;
|
14
|
+
this.headersOverride = headersOverride;
|
15
|
+
this[_a] = ServerRequestTypeId;
|
16
|
+
}
|
17
|
+
get resolvedResponse() {
|
18
|
+
return typeof this.response === "function" ? this.response() : this.response;
|
19
|
+
}
|
20
|
+
modify(options) {
|
21
|
+
return new ServerRequestImpl(this.source, this.response, this.upgradeEffect, options.url ?? this.url, options.headers ?? this.headersOverride, options.remoteAddress ?? this.remoteAddressOverride);
|
22
|
+
}
|
23
|
+
get originalUrl() {
|
24
|
+
return this.source.url;
|
25
|
+
}
|
26
|
+
get method() {
|
27
|
+
return this.source.method.toUpperCase();
|
28
|
+
}
|
29
|
+
get upgrade() {
|
30
|
+
return this.upgradeEffect ?? tsplus_module_1.failNow(new RequestError(this, "Decode", "Not an upgradeable ServerRequest"), fileName_1 + ":52:44");
|
31
|
+
}
|
32
|
+
}
|
33
|
+
_a = ServerRequestTypeId;
|
34
|
+
//# sourceMappingURL=ServerRequest.mjs.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ServerRequest.mjs","names":["RequestError","ServerRequestTypeId","IncomingMessageImpl","ServerRequestImpl","constructor","source","response","upgradeEffect","url","headersOverride","remoteAddressOverride","error","_a","resolvedResponse","modify","options","headers","remoteAddress","originalUrl","method","toUpperCase","upgrade","tsplus_module_1","failNow","fileName_1"],"sources":["../../_src/http/ServerRequest.ts"],"sourcesContent":[null],"mappings":";;;AAMA,SAASA,YAAY,QAAQ,0BAA0B;AACvD,SAASC,mBAAmB,QAAQ,2BAA2B;AAC/D,SAASC,mBAAmB,QAAQ,kCAAkC;AAEtE,OAAM,MAAOC,iBAAkB,SAAQD,mBAAiC;EAEtEE,YACWC,MAA4B,EAC5BC,QAAyD,EAC1DC,aAA+C,EAC9CC,GAAA,GAAMH,MAAM,CAACG,GAAI,EAClBC,eAAyB,EACjCC,qBAA8B;IAE9B,KAAK,CAACL,MAAM,EAAGM,KAAK,IAAK,IAAIX,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAEW,KAAK,CAAC,EAAED,qBAAqB,CAAC;IAP/E,KAAAL,MAAM,GAANA,MAAM;IACN,KAAAC,QAAQ,GAARA,QAAQ;IACT,KAAAC,aAAa,GAAbA,aAAa;IACZ,KAAAC,GAAG,GAAHA,GAAG;IACJ,KAAAC,eAAe,GAAfA,eAAe;IANhB,KAAAG,EAAA,CAAqB,GAAwBX,mBAAmB;EAUzE;EAEA,IAAIY,gBAAgBA,CAAA;IAClB,OAAO,OAAO,IAAI,CAACP,QAAQ,KAAK,UAAU,GAAG,IAAI,CAACA,QAAQ,EAAE,GAAG,IAAI,CAACA,QAAQ;EAC9E;EAEAQ,MAAMA,CAACC,OAIN;IACC,OAAO,IAAIZ,iBAAiB,CAC1B,IAAI,CAACE,MAAM,EACX,IAAI,CAACC,QAAQ,EACb,IAAI,CAACC,aAAa,EAClBQ,OAAO,CAACP,GAAG,IAAI,IAAI,CAACA,GAAG,EACvBO,OAAO,CAACC,OAAO,IAAI,IAAI,CAACP,eAAe,EACvCM,OAAO,CAACE,aAAa,IAAI,IAAI,CAACP,qBAAqB,CACpD;EACH;EAEA,IAAIQ,WAAWA,CAAA;IACb,OAAO,IAAI,CAACb,MAAM,CAACG,GAAI;EACzB;EAEA,IAAIW,MAAMA,CAAA;IACR,OAAO,IAAI,CAACd,MAAM,CAACc,MAAO,CAACC,WAAW,EAAY;EACpD;EAEA,IAAIC,OAAOA,CAAA;IACT,OAAO,IAAI,CAACd,aAAa,IAAIe,eAAA,CAAAC,OAAA,CAAW,IAAIvB,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,kCAAkC,CAAC,EAAAwB,UAAA,YAAC;EAC/G;;KAzCUvB,mBAAmB"}
|
package/_mjs/stream/api.mjs
CHANGED
@@ -1,57 +1,140 @@
|
|
1
1
|
const fileName_1 = "(@fncts/node) src/stream/api.ts";
|
2
|
-
import * as tsplus_module_1 from "@fncts/
|
2
|
+
import * as tsplus_module_1 from "@fncts/io/Queue/constructors";
|
3
3
|
import * as tsplus_module_2 from "@fncts/io/IO/api";
|
4
|
-
import * as tsplus_module_3 from "@fncts/
|
5
|
-
import * as tsplus_module_4 from "@fncts/io/
|
6
|
-
import * as tsplus_module_5 from "@fncts/
|
7
|
-
import * as tsplus_module_6 from "@fncts/base/
|
8
|
-
import * as tsplus_module_7 from "@fncts/io/
|
9
|
-
import * as tsplus_module_8 from "@fncts/
|
4
|
+
import * as tsplus_module_3 from "@fncts/io/Queue/api/operations";
|
5
|
+
import * as tsplus_module_4 from "@fncts/io/Channel/api";
|
6
|
+
import * as tsplus_module_5 from "@fncts/base/data/Maybe/definition";
|
7
|
+
import * as tsplus_module_6 from "@fncts/base/data/Either/constructors";
|
8
|
+
import * as tsplus_module_7 from "@fncts/io/IO/runtime";
|
9
|
+
import * as tsplus_module_8 from "@fncts/base/data/Exit/constructors";
|
10
|
+
import * as tsplus_module_9 from "@fncts/io/Channel/core-api";
|
11
|
+
import * as tsplus_module_10 from "@fncts/base/data/Exit/api";
|
12
|
+
import * as tsplus_module_11 from "@fncts/base/data/Either/destructors";
|
13
|
+
import * as tsplus_module_12 from "@fncts/base/collection/immutable/Conc/definition";
|
14
|
+
import * as tsplus_module_13 from "@fncts/io/Sink/api";
|
15
|
+
import * as tsplus_module_14 from "@fncts/io/Future/api";
|
16
|
+
import * as tsplus_module_15 from "@fncts/io/Future/constructors";
|
17
|
+
import * as tsplus_module_16 from "@fncts/io/IO/api/interrupt";
|
18
|
+
import * as tsplus_module_17 from "@fncts/base/collection/immutable/Conc/api";
|
19
|
+
import * as tsplus_module_18 from "@fncts/io/Sink/definition";
|
20
|
+
import * as tsplus_module_19 from "@fncts/io/IO/api/acquireRelease";
|
21
|
+
import * as tsplus_module_20 from "@fncts/io/Stream/api";
|
22
|
+
import * as tsplus_module_21 from "@fncts/base/collection/immutable/Conc/constructors";
|
23
|
+
import * as tsplus_module_22 from "@fncts/base/data/Maybe/constructors";
|
24
|
+
import * as tsplus_module_23 from "@fncts/io/IO/api/scoped";
|
25
|
+
import { Stream } from "@fncts/io/Stream";
|
10
26
|
export class ReadableError {
|
11
27
|
constructor(error) {
|
12
28
|
this.error = error;
|
13
29
|
this._tag = "ReadableError";
|
14
30
|
}
|
15
31
|
}
|
16
|
-
export function fromReadable(readable) {
|
17
|
-
return
|
18
|
-
|
19
|
-
|
32
|
+
export function fromReadable(readable, onError, chunkSize) {
|
33
|
+
return new Stream(fromReadableChannel(readable, onError, chunkSize));
|
34
|
+
}
|
35
|
+
function fromReadableChannel(evaluate, onError, chunkSize) {
|
36
|
+
return tsplus_module_4.acquireReleaseWith(tsplus_module_2.tap(([readable, queue]) => readableOffer(readable, queue, onError), fileName_1 + ":27:11")(tsplus_module_2.zip(tsplus_module_1.makeUnbounded(fileName_1 + ":26:31"), fileName_1 + ":26:11")(tsplus_module_2.succeed(evaluate, fileName_1 + ":25:7"))), ([readable, queue]) => readableTake(readable, queue, chunkSize), ([readable, queue]) => tsplus_module_2.zipRight(tsplus_module_3.shutdown(queue, fileName_1 + ":35:17"), fileName_1 + ":35:11")(tsplus_module_2.succeed(() => {
|
37
|
+
readable.removeAllListeners();
|
38
|
+
if ("closed" in readable && !readable.closed) {
|
39
|
+
readable.destroy();
|
40
|
+
}
|
41
|
+
}, fileName_1 + ":30:9")));
|
42
|
+
}
|
43
|
+
function readableOffer(readable, queue, onError) {
|
44
|
+
return tsplus_module_2.succeed(() => {
|
45
|
+
readable.on("readable", () => {
|
46
|
+
const size = tsplus_module_3.unsafeSize(queue, fileName_1 + ":46:25");
|
47
|
+
if (tsplus_module_5.isJust(size) && size.value <= 0) {
|
48
|
+
tsplus_module_7.unsafeRun(tsplus_module_3.offer(tsplus_module_6.right(void 0, fileName_1 + ":48:33"), fileName_1 + ":48:20")(queue));
|
49
|
+
}
|
20
50
|
});
|
21
51
|
readable.on("error", err => {
|
22
|
-
|
52
|
+
tsplus_module_3.unsafeOffer(tsplus_module_6.left(tsplus_module_8.fail(onError(err), fileName_1 + ":52:46"), fileName_1 + ":52:36"), fileName_1 + ":52:24")(queue);
|
23
53
|
});
|
24
54
|
readable.on("end", () => {
|
25
|
-
|
55
|
+
tsplus_module_3.unsafeOffer(tsplus_module_6.left(tsplus_module_8.unit, fileName_1 + ":55:36"), fileName_1 + ":55:24")(queue);
|
26
56
|
});
|
27
|
-
|
57
|
+
if (readable.readable) {
|
58
|
+
tsplus_module_3.unsafeOffer(tsplus_module_6.right(void 0, fileName_1 + ":58:37"), fileName_1 + ":58:24")(queue);
|
59
|
+
}
|
60
|
+
}, fileName_1 + ":44:12");
|
28
61
|
}
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
62
|
+
function readableTake(readable, queue, chunkSize) {
|
63
|
+
const read = readChunkChannel(readable, chunkSize);
|
64
|
+
const loop = tsplus_module_9.flatMap(either => tsplus_module_11.match({
|
65
|
+
Left: exit => tsplus_module_10.match(cause => tsplus_module_9.failCauseNow(cause), () => tsplus_module_4.unit)(exit),
|
66
|
+
Right: () => tsplus_module_9.flatMap(() => loop)(read)
|
67
|
+
})(either))(tsplus_module_4.fromIO(() => tsplus_module_3.take(queue, fileName_1 + ":69:100")));
|
68
|
+
return loop;
|
69
|
+
}
|
70
|
+
function readChunkChannel(readable, chunkSize) {
|
71
|
+
return tsplus_module_4.defer(() => {
|
72
|
+
const arr = [];
|
73
|
+
let chunk = readable.read(chunkSize);
|
74
|
+
while (chunk !== null) {
|
75
|
+
arr.push(chunk);
|
76
|
+
chunk = readable.read(chunkSize);
|
77
|
+
}
|
78
|
+
return tsplus_module_4.write(() => tsplus_module_12.fromArray(arr));
|
79
|
+
});
|
80
|
+
}
|
81
|
+
export function fromWritable(writable, onError, options) {
|
82
|
+
return tsplus_module_13.fromChannel(fromWritableChannel(writable, onError, options), fileName_1 + ":105:26");
|
83
|
+
}
|
84
|
+
export function fromWritableChannel(writable, onError, options) {
|
85
|
+
return tsplus_module_9.flatMap(([writable, future]) => tsplus_module_4.embedInput(writeInput(writable, cause => tsplus_module_14.failCause(cause, fileName_1 + ":115:62")(future), options, tsplus_module_14.fulfill(tsplus_module_2.unit, fileName_1 + ":115:94")(future)))(writableOutput(writable, future, onError)))(tsplus_module_4.fromIO(() => tsplus_module_2.zip(tsplus_module_15.make(fileName_1 + ":113:53"), fileName_1 + ":113:41")(tsplus_module_2.succeed(writable, fileName_1 + ":113:27"))));
|
86
|
+
}
|
87
|
+
function writeInput(writable, onFailure, {
|
88
|
+
encoding,
|
89
|
+
endOnDone = true
|
90
|
+
} = {}, onDone = tsplus_module_2.unit) {
|
91
|
+
const write = writeIO(writable, encoding);
|
92
|
+
const close = endOnDone ? tsplus_module_2.async(resume => {
|
93
|
+
if ("closed" in writable && writable.closed) {
|
94
|
+
resume(tsplus_module_2.unit);
|
95
|
+
} else {
|
96
|
+
writable.once("finish", () => resume(tsplus_module_2.unit));
|
97
|
+
}
|
98
|
+
}) : tsplus_module_2.unit;
|
99
|
+
return {
|
100
|
+
awaitRead: tsplus_module_2.unit,
|
101
|
+
emit: write,
|
102
|
+
error: cause => tsplus_module_2.zipRight(onFailure(cause), fileName_1 + ":140:30")(close),
|
103
|
+
done: _ => tsplus_module_2.zipRight(onDone, fileName_1 + ":141:25")(close)
|
104
|
+
};
|
34
105
|
}
|
35
|
-
|
36
|
-
return
|
37
|
-
|
38
|
-
|
39
|
-
|
106
|
+
function writeIO(writable, encoding) {
|
107
|
+
return chunk => {
|
108
|
+
if (chunk.length === 0) {
|
109
|
+
return tsplus_module_2.unit;
|
110
|
+
} else {
|
111
|
+
return tsplus_module_2.async(resume => {
|
112
|
+
const iterator = chunk[Symbol.iterator]();
|
113
|
+
const next = iterator.next();
|
114
|
+
function loop() {
|
115
|
+
const item = next;
|
116
|
+
const success = writable.write(item.value, encoding);
|
117
|
+
if (next.done) {
|
118
|
+
resume(tsplus_module_2.unit);
|
119
|
+
} else if (success) {
|
120
|
+
loop();
|
121
|
+
} else {
|
122
|
+
writable.once("drain", loop);
|
123
|
+
}
|
124
|
+
}
|
125
|
+
loop();
|
40
126
|
});
|
41
|
-
}
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
}
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
cb(tsplus_module_2.succeedNow(writable0, fileName_1 + ":47:27"));
|
53
|
-
});
|
54
|
-
}), writable => tsplus_module_2.succeed(() => writable.destroy(), fileName_1 + ":50:41"), fileName_1 + ":50:24"))));
|
127
|
+
}
|
128
|
+
};
|
129
|
+
}
|
130
|
+
function writableOutput(writable, future, onError) {
|
131
|
+
return tsplus_module_4.fromIO(() => tsplus_module_2.defer(() => {
|
132
|
+
function handleError(err) {
|
133
|
+
tsplus_module_14.unsafeDone(tsplus_module_2.failNow(onError(err), fileName_1 + ":178:37"), fileName_1 + ":178:26")(future);
|
134
|
+
}
|
135
|
+
writable.on("error", handleError);
|
136
|
+
return tsplus_module_16.ensuring(tsplus_module_2.succeed(() => writable.removeListener("error", handleError), fileName_1 + ":181:38"), fileName_1 + ":181:35")(tsplus_module_14.wait(future, fileName_1 + ":181:20"));
|
137
|
+
}, fileName_1 + ":176:13"));
|
55
138
|
}
|
56
139
|
export class TransformError {
|
57
140
|
constructor(error) {
|
@@ -65,25 +148,79 @@ export class TransformError {
|
|
65
148
|
export function transform(transform) {
|
66
149
|
return self => {
|
67
150
|
const scopedSink = tsplus_module_2.map(transform => {
|
68
|
-
const endTransform = tsplus_module_2.succeed(() => transform.end(), fileName_1 + ":
|
69
|
-
const reader =
|
70
|
-
transform.write(
|
71
|
-
err ? cb(tsplus_module_2.failNow(new TransformError(err), fileName_1 + ":
|
151
|
+
const endTransform = tsplus_module_2.succeed(() => transform.end(), fileName_1 + ":199:40");
|
152
|
+
const reader = tsplus_module_4.readWith(inp => tsplus_module_4.unwrap(() => tsplus_module_2.async(cb => {
|
153
|
+
transform.write(tsplus_module_17.toBuffer(inp), err => {
|
154
|
+
err ? cb(tsplus_module_2.failNow(new TransformError(err), fileName_1 + ":205:38")) : tsplus_module_2.succeedNow(reader, fileName_1 + ":205:80");
|
72
155
|
});
|
73
|
-
})), err =>
|
74
|
-
return [transform, new
|
75
|
-
}, fileName_1 + ":
|
76
|
-
return
|
156
|
+
})), err => tsplus_module_4.unwrap(() => tsplus_module_2.map(() => tsplus_module_4.failNow(err), fileName_1 + ":209:51")(endTransform)), () => tsplus_module_4.unwrap(() => tsplus_module_2.map(() => tsplus_module_4.unit, fileName_1 + ":210:48")(endTransform)));
|
157
|
+
return [transform, new tsplus_module_18.Sink(reader)];
|
158
|
+
}, fileName_1 + ":198:11")(tsplus_module_19.acquireRelease(() => tsplus_module_2.succeed(transform, fileName_1 + ":196:34"), transform => tsplus_module_2.succeed(() => transform.destroy(), fileName_1 + ":197:48"), fileName_1 + ":197:22"));
|
159
|
+
return tsplus_module_20.flatMap(([transform, sink]) => tsplus_module_20.ensuring(tsplus_module_2.succeed(() => transform.removeAllListeners(), fileName_1 + ":227:20"), fileName_1 + ":227:17")(tsplus_module_20.asyncIO(cb => tsplus_module_2.zipRight(tsplus_module_20.run(sink, fileName_1 + ":226:29")(self), fileName_1 + ":226:20")(tsplus_module_2.succeed(() => {
|
77
160
|
transform.on("data", chunk => {
|
78
|
-
cb(tsplus_module_2.succeed(() =>
|
161
|
+
cb(tsplus_module_2.succeed(() => tsplus_module_21.fromBuffer(chunk), fileName_1 + ":218:26"));
|
79
162
|
});
|
80
163
|
transform.on("error", err => {
|
81
|
-
cb(tsplus_module_2.failNow(
|
164
|
+
cb(tsplus_module_2.failNow(tsplus_module_22.just(new TransformError(err), fileName_1 + ":221:31"), fileName_1 + ":221:26"));
|
82
165
|
});
|
83
166
|
transform.on("end", () => {
|
84
|
-
cb(tsplus_module_2.failNow(
|
167
|
+
cb(tsplus_module_2.failNow(tsplus_module_22.nothing(fileName_1 + ":224:34"), fileName_1 + ":224:26"));
|
85
168
|
});
|
86
|
-
}, fileName_1 + ":
|
169
|
+
}, fileName_1 + ":216:19")))), fileName_1 + ":214:45")(tsplus_module_20.scoped(() => scopedSink, fileName_1 + ":214:25"));
|
87
170
|
};
|
88
171
|
}
|
172
|
+
export function toString(readable, onFailure, options) {
|
173
|
+
const maxBytes = options?.maxBytes ? Number(options.maxBytes) : undefined;
|
174
|
+
return tsplus_module_23.scoped(tsplus_module_2.flatMap(stream => tsplus_module_2.async(resume => {
|
175
|
+
let string = "";
|
176
|
+
let bytes = 0;
|
177
|
+
stream.once("error", err => {
|
178
|
+
resume(tsplus_module_2.failNow(onFailure(err), fileName_1 + ":259:28"));
|
179
|
+
});
|
180
|
+
stream.once("end", () => {
|
181
|
+
resume(tsplus_module_2.succeedNow(string, fileName_1 + ":262:31"));
|
182
|
+
});
|
183
|
+
stream.on("data", chunk => {
|
184
|
+
string += chunk;
|
185
|
+
bytes += Buffer.byteLength(chunk);
|
186
|
+
if (maxBytes && bytes > maxBytes) {
|
187
|
+
resume(tsplus_module_2.failNow(onFailure(new Error("maxBytes exceeded")), fileName_1 + ":268:30"));
|
188
|
+
}
|
189
|
+
});
|
190
|
+
}), fileName_1 + ":254:13")(tsplus_module_19.acquireRelease(() => tsplus_module_2.succeed(() => {
|
191
|
+
const stream = readable();
|
192
|
+
stream.setEncoding(options?.encoding ?? "utf8");
|
193
|
+
return stream;
|
194
|
+
}, fileName_1 + ":241:12"), stream => tsplus_module_2.succeed(() => {
|
195
|
+
stream.removeAllListeners();
|
196
|
+
if ("closed" in stream && !stream.closed) {
|
197
|
+
stream.destroy();
|
198
|
+
}
|
199
|
+
}, fileName_1 + ":247:9"), fileName_1 + ":246:20")), fileName_1 + ":272:6");
|
200
|
+
}
|
201
|
+
export function toUint8Array(readable, onFailure, options = {}) {
|
202
|
+
const maxBytes = options.maxBytes ? Number(options.maxBytes) : undefined;
|
203
|
+
return tsplus_module_23.scoped(tsplus_module_2.flatMap(stream => tsplus_module_2.async(resume => {
|
204
|
+
let buffer = Buffer.alloc(0);
|
205
|
+
let bytes = 0;
|
206
|
+
stream.once("error", err => {
|
207
|
+
resume(tsplus_module_2.failNow(onFailure(err), fileName_1 + ":297:28"));
|
208
|
+
});
|
209
|
+
stream.once("end", () => {
|
210
|
+
resume(tsplus_module_2.succeedNow(buffer, fileName_1 + ":300:31"));
|
211
|
+
});
|
212
|
+
stream.on("data", chunk => {
|
213
|
+
buffer = Buffer.concat([buffer, chunk]);
|
214
|
+
bytes += chunk.length;
|
215
|
+
if (maxBytes && bytes > maxBytes) {
|
216
|
+
resume(tsplus_module_2.failNow(onFailure(new Error("maxBytes exceeded")), fileName_1 + ":306:30"));
|
217
|
+
}
|
218
|
+
});
|
219
|
+
}), fileName_1 + ":292:13")(tsplus_module_19.acquireRelease(() => tsplus_module_2.succeed(readable, fileName_1 + ":283:12"), stream => tsplus_module_2.succeed(() => {
|
220
|
+
stream.removeAllListeners();
|
221
|
+
if ("closed" in stream && !stream.closed) {
|
222
|
+
stream.destroy();
|
223
|
+
}
|
224
|
+
}, fileName_1 + ":285:9"), fileName_1 + ":284:20")), fileName_1 + ":310:6");
|
225
|
+
}
|
89
226
|
//# sourceMappingURL=api.mjs.map
|
package/_mjs/stream/api.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"api.mjs","names":["ReadableError","constructor","error","_tag","fromReadable","readable","tsplus_module_4","flatMap","async","cb","on","chunk","tsplus_module_2","succeedNow","tsplus_module_1","fromBuffer","fileName_1","err","failNow","tsplus_module_3","just","nothing","acquireRelease","tryCatch","succeed","destroy","WritableError","fromWritable","writable","tsplus_module_5","Sink","tsplus_module_7","unwrapScoped","map","reader","readWith","unwrap","write","tsplus_module_6","toBuffer","unit","tsplus_module_8","handle","undefined","onError","clearImmediate","haltNow","writable0","once","setImmediate","removeListener","TransformError","transform","self","scopedSink","endTransform","end","inp","sink","ensuring","removeAllListeners","asyncIO","zipRight","run","scoped"],"sources":["../../_src/stream/api.ts"],"sourcesContent":[null],"mappings":"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"}
|
1
|
+
{"version":3,"file":"api.mjs","names":["Stream","ReadableError","constructor","error","_tag","fromReadable","readable","onError","chunkSize","fromReadableChannel","evaluate","tsplus_module_4","acquireReleaseWith","tsplus_module_2","tap","queue","readableOffer","fileName_1","zip","tsplus_module_1","makeUnbounded","succeed","readableTake","zipRight","tsplus_module_3","shutdown","removeAllListeners","closed","destroy","on","size","unsafeSize","tsplus_module_5","isJust","value","tsplus_module_7","unsafeRun","offer","tsplus_module_6","right","err","unsafeOffer","left","tsplus_module_8","fail","unit","read","readChunkChannel","loop","tsplus_module_9","flatMap","either","tsplus_module_11","match","Left","exit","tsplus_module_10","cause","failCauseNow","Right","fromIO","take","defer","arr","chunk","push","write","tsplus_module_12","fromArray","fromWritable","writable","options","tsplus_module_13","fromChannel","fromWritableChannel","future","embedInput","writeInput","tsplus_module_14","failCause","fulfill","writableOutput","tsplus_module_15","make","onFailure","encoding","endOnDone","onDone","writeIO","close","async","resume","once","awaitRead","emit","done","_","length","iterator","Symbol","next","item","success","handleError","unsafeDone","failNow","tsplus_module_16","ensuring","removeListener","wait","TransformError","transform","self","scopedSink","map","endTransform","end","reader","readWith","inp","unwrap","cb","tsplus_module_17","toBuffer","succeedNow","tsplus_module_18","Sink","tsplus_module_19","acquireRelease","tsplus_module_20","sink","asyncIO","run","tsplus_module_21","fromBuffer","tsplus_module_22","just","nothing","scoped","toString","maxBytes","Number","undefined","tsplus_module_23","stream","string","bytes","Buffer","byteLength","Error","setEncoding","toUint8Array","buffer","alloc","concat"],"sources":["../../_src/stream/api.ts"],"sourcesContent":[null],"mappings":"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"}
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import type * as Http from "node:http";
|
2
|
+
|
3
|
+
import { Maybe } from "@fncts/base/data/Maybe";
|
4
|
+
import { Headers } from "@fncts/http/Headers";
|
5
|
+
import { IncomingMessage } from "@fncts/http/IncomingMessage";
|
6
|
+
import { UrlParams } from "@fncts/http/UrlParams";
|
7
|
+
|
8
|
+
import * as NodeStream from "../stream.js";
|
9
|
+
|
10
|
+
export abstract class IncomingMessageImpl<E> extends IncomingMessage<E> {
|
11
|
+
constructor(
|
12
|
+
readonly source: Http.IncomingMessage,
|
13
|
+
readonly onError: (error: unknown) => E,
|
14
|
+
readonly remoteAddressOverride?: string,
|
15
|
+
) {
|
16
|
+
super();
|
17
|
+
}
|
18
|
+
|
19
|
+
get headers(): Headers {
|
20
|
+
return Headers(this.source.headers as any);
|
21
|
+
}
|
22
|
+
|
23
|
+
get remoteAddress(): Maybe<string> {
|
24
|
+
return Maybe.fromNullable(this.remoteAddressOverride ?? this.source.socket.remoteAddress);
|
25
|
+
}
|
26
|
+
|
27
|
+
private textIO: IO<never, E, string> | undefined;
|
28
|
+
get text(): IO<never, E, string> {
|
29
|
+
if (this.textIO) {
|
30
|
+
return this.textIO;
|
31
|
+
}
|
32
|
+
|
33
|
+
this.textIO = NodeStream.toString(this.source, this.onError).memoize.unsafeRun.getOrThrow;
|
34
|
+
|
35
|
+
return this.textIO;
|
36
|
+
}
|
37
|
+
|
38
|
+
get json(): IO<never, E, unknown> {
|
39
|
+
return this.text.flatMap((text) => IO.tryCatch(() => JSON.parse(text), this.onError));
|
40
|
+
}
|
41
|
+
|
42
|
+
get urlParamsBody(): IO<never, E, UrlParams> {
|
43
|
+
return this.text.flatMap((text) => IO.tryCatch(() => UrlParams(new URLSearchParams(text)), this.onError));
|
44
|
+
}
|
45
|
+
|
46
|
+
private arrayBufferIO: IO<never, E, ArrayBuffer> | undefined;
|
47
|
+
get arrayBuffer(): IO<never, E, ArrayBuffer> {
|
48
|
+
if (this.arrayBufferIO) {
|
49
|
+
return this.arrayBufferIO;
|
50
|
+
}
|
51
|
+
|
52
|
+
this.arrayBufferIO = NodeStream.toUint8Array(this.source, this.onError).memoize.unsafeRun.getOrThrow;
|
53
|
+
|
54
|
+
return this.arrayBufferIO;
|
55
|
+
}
|
56
|
+
|
57
|
+
get stream(): Stream<never, E, Uint8Array> {
|
58
|
+
return NodeStream.fromReadable<E, Uint8Array>(this.source, this.onError);
|
59
|
+
}
|
60
|
+
}
|