@fncts/node 0.0.34 → 0.0.36

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.
@@ -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"}
@@ -1,57 +1,137 @@
1
1
  const fileName_1 = "(@fncts/node) src/stream/api.ts";
2
- import * as tsplus_module_1 from "@fncts/base/collection/immutable/Conc/constructors";
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/base/data/Maybe/constructors";
5
- import * as tsplus_module_4 from "@fncts/io/Stream/api";
6
- import * as tsplus_module_5 from "@fncts/io/Sink/definition";
7
- import * as tsplus_module_6 from "@fncts/base/collection/immutable/Conc/api";
8
- import * as tsplus_module_7 from "@fncts/io/Channel/api";
9
- import * as tsplus_module_8 from "@fncts/io/IO/api/acquireRelease";
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 tsplus_module_4.flatMap(readable => tsplus_module_4.async(cb => {
18
- readable.on("data", chunk => {
19
- cb(tsplus_module_2.succeedNow(tsplus_module_1.fromBuffer(chunk), fileName_1 + ":17:25"));
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
- cb(tsplus_module_2.failNow(tsplus_module_3.just(new ReadableError(err), fileName_1 + ":20:27"), fileName_1 + ":20: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
- cb(tsplus_module_2.failNow(tsplus_module_3.nothing(fileName_1 + ":23:30"), fileName_1 + ":23:22"));
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
- }), fileName_1 + ":14:12")(tsplus_module_4.acquireRelease(tsplus_module_2.tryCatch(readable, err => new ReadableError(err), fileName_1 + ":12:16"), readable => tsplus_module_2.succeed(() => readable.destroy(), fileName_1 + ":13:21"), fileName_1 + ":11:31"));
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
- export class WritableError {
30
- constructor(error) {
31
- this.error = error;
32
- this._tag = "ReadableError";
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(exit => tsplus_module_10.match(cause => tsplus_module_9.failCauseNow(cause), () => tsplus_module_4.unit)(exit), () => tsplus_module_9.flatMap(() => loop)(read))(either))(tsplus_module_4.fromIO(() => tsplus_module_3.take(queue, fileName_1 + ":69:100")));
65
+ return loop;
66
+ }
67
+ function readChunkChannel(readable, chunkSize) {
68
+ return tsplus_module_4.defer(() => {
69
+ const arr = [];
70
+ let chunk = readable.read(chunkSize);
71
+ while (chunk !== null) {
72
+ arr.push(chunk);
73
+ chunk = readable.read(chunkSize);
74
+ }
75
+ return tsplus_module_4.write(() => tsplus_module_12.fromArray(arr));
76
+ });
77
+ }
78
+ export function fromWritable(writable, onError, options) {
79
+ return tsplus_module_13.fromChannel(fromWritableChannel(writable, onError, options), fileName_1 + ":105:26");
80
+ }
81
+ export function fromWritableChannel(writable, onError, options) {
82
+ 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"))));
83
+ }
84
+ function writeInput(writable, onFailure, {
85
+ encoding,
86
+ endOnDone = true
87
+ } = {}, onDone = tsplus_module_2.unit) {
88
+ const write = writeIO(writable, encoding);
89
+ const close = endOnDone ? tsplus_module_2.async(resume => {
90
+ if ("closed" in writable && writable.closed) {
91
+ resume(tsplus_module_2.unit);
92
+ } else {
93
+ writable.once("finish", () => resume(tsplus_module_2.unit));
94
+ }
95
+ }) : tsplus_module_2.unit;
96
+ return {
97
+ awaitRead: tsplus_module_2.unit,
98
+ emit: write,
99
+ error: cause => tsplus_module_2.zipRight(onFailure(cause), fileName_1 + ":140:30")(close),
100
+ done: _ => tsplus_module_2.zipRight(onDone, fileName_1 + ":141:25")(close)
101
+ };
34
102
  }
35
- export function fromWritable(writable) {
36
- return new tsplus_module_5.Sink(tsplus_module_7.unwrapScoped(() => tsplus_module_2.map(writable => {
37
- const reader = tsplus_module_7.readWith(chunk => tsplus_module_7.unwrap(() => tsplus_module_2.async(cb => {
38
- writable.write(tsplus_module_6.toBuffer(chunk), err => {
39
- err ? cb(tsplus_module_2.failNow(new WritableError(err), fileName_1 + ":57:40")) : cb(tsplus_module_2.succeedNow(reader, fileName_1 + ":57:84"));
103
+ function writeIO(writable, encoding) {
104
+ return chunk => {
105
+ if (chunk.length === 0) {
106
+ return tsplus_module_2.unit;
107
+ } else {
108
+ return tsplus_module_2.async(resume => {
109
+ const iterator = chunk[Symbol.iterator]();
110
+ const next = iterator.next();
111
+ function loop() {
112
+ const item = next;
113
+ const success = writable.write(item.value, encoding);
114
+ if (next.done) {
115
+ resume(tsplus_module_2.unit);
116
+ } else if (success) {
117
+ loop();
118
+ } else {
119
+ writable.once("drain", loop);
120
+ }
121
+ }
122
+ loop();
40
123
  });
41
- })), tsplus_module_7.failNow, () => tsplus_module_7.unit);
42
- return reader;
43
- }, fileName_1 + ":51:13")(tsplus_module_8.acquireRelease(() => tsplus_module_2.async(cb => {
44
- let handle = undefined;
45
- const onError = err => {
46
- clearImmediate(handle);
47
- cb(tsplus_module_2.haltNow(err, fileName_1 + ":41:24"));
48
- };
49
- const writable0 = writable().once("error", onError);
50
- handle = setImmediate(() => {
51
- writable0.removeListener("error", onError);
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"))));
124
+ }
125
+ };
126
+ }
127
+ function writableOutput(writable, future, onError) {
128
+ return tsplus_module_4.fromIO(() => tsplus_module_2.defer(() => {
129
+ function handleError(err) {
130
+ tsplus_module_14.unsafeDone(tsplus_module_2.failNow(onError(err), fileName_1 + ":178:37"), fileName_1 + ":178:26")(future);
131
+ }
132
+ writable.on("error", handleError);
133
+ 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"));
134
+ }, fileName_1 + ":176:13"));
55
135
  }
56
136
  export class TransformError {
57
137
  constructor(error) {
@@ -65,25 +145,79 @@ export class TransformError {
65
145
  export function transform(transform) {
66
146
  return self => {
67
147
  const scopedSink = tsplus_module_2.map(transform => {
68
- const endTransform = tsplus_module_2.succeed(() => transform.end(), fileName_1 + ":83:40");
69
- const reader = tsplus_module_7.readWith(inp => tsplus_module_7.unwrap(() => tsplus_module_2.async(cb => {
70
- transform.write(tsplus_module_6.toBuffer(inp), err => {
71
- err ? cb(tsplus_module_2.failNow(new TransformError(err), fileName_1 + ":89:38")) : tsplus_module_2.succeedNow(reader, fileName_1 + ":89:80");
148
+ const endTransform = tsplus_module_2.succeed(() => transform.end(), fileName_1 + ":199:40");
149
+ const reader = tsplus_module_4.readWith(inp => tsplus_module_4.unwrap(() => tsplus_module_2.async(cb => {
150
+ transform.write(tsplus_module_17.toBuffer(inp), err => {
151
+ err ? cb(tsplus_module_2.failNow(new TransformError(err), fileName_1 + ":205:38")) : tsplus_module_2.succeedNow(reader, fileName_1 + ":205:80");
72
152
  });
73
- })), err => tsplus_module_7.unwrap(() => tsplus_module_2.map(() => tsplus_module_7.failNow(err), fileName_1 + ":93:51")(endTransform)), () => tsplus_module_7.unwrap(() => tsplus_module_2.map(() => tsplus_module_7.unit, fileName_1 + ":94:48")(endTransform)));
74
- return [transform, new tsplus_module_5.Sink(reader)];
75
- }, fileName_1 + ":82:11")(tsplus_module_8.acquireRelease(() => tsplus_module_2.succeed(transform, fileName_1 + ":80:34"), transform => tsplus_module_2.succeed(() => transform.destroy(), fileName_1 + ":81:48"), fileName_1 + ":81:22"));
76
- return tsplus_module_4.flatMap(([transform, sink]) => tsplus_module_4.ensuring(tsplus_module_2.succeed(() => transform.removeAllListeners(), fileName_1 + ":111:20"), fileName_1 + ":111:17")(tsplus_module_4.asyncIO(cb => tsplus_module_2.zipRight(tsplus_module_4.run(sink, fileName_1 + ":110:29")(self), fileName_1 + ":110:20")(tsplus_module_2.succeed(() => {
153
+ })), 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)));
154
+ return [transform, new tsplus_module_18.Sink(reader)];
155
+ }, 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"));
156
+ 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
157
  transform.on("data", chunk => {
78
- cb(tsplus_module_2.succeed(() => tsplus_module_1.fromBuffer(chunk), fileName_1 + ":102:26"));
158
+ cb(tsplus_module_2.succeed(() => tsplus_module_21.fromBuffer(chunk), fileName_1 + ":218:26"));
79
159
  });
80
160
  transform.on("error", err => {
81
- cb(tsplus_module_2.failNow(tsplus_module_3.just(new TransformError(err), fileName_1 + ":105:31"), fileName_1 + ":105:26"));
161
+ cb(tsplus_module_2.failNow(tsplus_module_22.just(new TransformError(err), fileName_1 + ":221:31"), fileName_1 + ":221:26"));
82
162
  });
83
163
  transform.on("end", () => {
84
- cb(tsplus_module_2.failNow(tsplus_module_3.nothing(fileName_1 + ":108:34"), fileName_1 + ":108:26"));
164
+ cb(tsplus_module_2.failNow(tsplus_module_22.nothing(fileName_1 + ":224:34"), fileName_1 + ":224:26"));
85
165
  });
86
- }, fileName_1 + ":100:19")))), fileName_1 + ":98:45")(tsplus_module_4.scoped(() => scopedSink, fileName_1 + ":98:25"));
166
+ }, fileName_1 + ":216:19")))), fileName_1 + ":214:45")(tsplus_module_20.scoped(() => scopedSink, fileName_1 + ":214:25"));
87
167
  };
88
168
  }
169
+ export function toString(readable, onFailure, options) {
170
+ const maxBytes = options?.maxBytes ? Number(options.maxBytes) : undefined;
171
+ return tsplus_module_23.scoped(tsplus_module_2.flatMap(stream => tsplus_module_2.async(resume => {
172
+ let string = "";
173
+ let bytes = 0;
174
+ stream.once("error", err => {
175
+ resume(tsplus_module_2.failNow(onFailure(err), fileName_1 + ":259:28"));
176
+ });
177
+ stream.once("end", () => {
178
+ resume(tsplus_module_2.succeedNow(string, fileName_1 + ":262:31"));
179
+ });
180
+ stream.on("data", chunk => {
181
+ string += chunk;
182
+ bytes += Buffer.byteLength(chunk);
183
+ if (maxBytes && bytes > maxBytes) {
184
+ resume(tsplus_module_2.failNow(onFailure(new Error("maxBytes exceeded")), fileName_1 + ":268:30"));
185
+ }
186
+ });
187
+ }), fileName_1 + ":254:13")(tsplus_module_19.acquireRelease(() => tsplus_module_2.succeed(() => {
188
+ const stream = readable();
189
+ stream.setEncoding(options?.encoding ?? "utf8");
190
+ return stream;
191
+ }, fileName_1 + ":241:12"), stream => tsplus_module_2.succeed(() => {
192
+ stream.removeAllListeners();
193
+ if ("closed" in stream && !stream.closed) {
194
+ stream.destroy();
195
+ }
196
+ }, fileName_1 + ":247:9"), fileName_1 + ":246:20")), fileName_1 + ":272:6");
197
+ }
198
+ export function toUint8Array(readable, onFailure, options = {}) {
199
+ const maxBytes = options.maxBytes ? Number(options.maxBytes) : undefined;
200
+ return tsplus_module_23.scoped(tsplus_module_2.flatMap(stream => tsplus_module_2.async(resume => {
201
+ let buffer = Buffer.alloc(0);
202
+ let bytes = 0;
203
+ stream.once("error", err => {
204
+ resume(tsplus_module_2.failNow(onFailure(err), fileName_1 + ":297:28"));
205
+ });
206
+ stream.once("end", () => {
207
+ resume(tsplus_module_2.succeedNow(buffer, fileName_1 + ":300:31"));
208
+ });
209
+ stream.on("data", chunk => {
210
+ buffer = Buffer.concat([buffer, chunk]);
211
+ bytes += chunk.length;
212
+ if (maxBytes && bytes > maxBytes) {
213
+ resume(tsplus_module_2.failNow(onFailure(new Error("maxBytes exceeded")), fileName_1 + ":306:30"));
214
+ }
215
+ });
216
+ }), fileName_1 + ":292:13")(tsplus_module_19.acquireRelease(() => tsplus_module_2.succeed(readable, fileName_1 + ":283:12"), stream => tsplus_module_2.succeed(() => {
217
+ stream.removeAllListeners();
218
+ if ("closed" in stream && !stream.closed) {
219
+ stream.destroy();
220
+ }
221
+ }, fileName_1 + ":285:9"), fileName_1 + ":284:20")), fileName_1 + ":310:6");
222
+ }
89
223
  //# sourceMappingURL=api.mjs.map
@@ -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","exit","tsplus_module_10","cause","failCauseNow","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
+ }