@effect/platform-node 0.22.1 → 0.23.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.
Files changed (62) hide show
  1. package/CommandExecutor/dist/effect-platform-node-CommandExecutor.cjs.dev.js +3 -2
  2. package/CommandExecutor/dist/effect-platform-node-CommandExecutor.cjs.prod.js +3 -2
  3. package/CommandExecutor/dist/effect-platform-node-CommandExecutor.esm.js +3 -2
  4. package/Http/FormData/dist/effect-platform-node-Http-FormData.cjs.dev.js +3 -3
  5. package/Http/FormData/dist/effect-platform-node-Http-FormData.cjs.prod.js +3 -3
  6. package/Http/FormData/dist/effect-platform-node-Http-FormData.esm.js +3 -3
  7. package/Http/NodeClient/dist/effect-platform-node-Http-NodeClient.cjs.dev.js +5 -4
  8. package/Http/NodeClient/dist/effect-platform-node-Http-NodeClient.cjs.prod.js +5 -4
  9. package/Http/NodeClient/dist/effect-platform-node-Http-NodeClient.esm.js +5 -4
  10. package/Http/Server/dist/effect-platform-node-Http-Server.cjs.dev.js +6 -5
  11. package/Http/Server/dist/effect-platform-node-Http-Server.cjs.prod.js +6 -5
  12. package/Http/Server/dist/effect-platform-node-Http-Server.esm.js +6 -5
  13. package/HttpClient/dist/effect-platform-node-HttpClient.cjs.dev.js +5 -4
  14. package/HttpClient/dist/effect-platform-node-HttpClient.cjs.prod.js +5 -4
  15. package/HttpClient/dist/effect-platform-node-HttpClient.esm.js +5 -4
  16. package/HttpServer/dist/effect-platform-node-HttpServer.cjs.dev.js +7 -6
  17. package/HttpServer/dist/effect-platform-node-HttpServer.cjs.prod.js +7 -6
  18. package/HttpServer/dist/effect-platform-node-HttpServer.esm.js +7 -6
  19. package/NodeContext/dist/effect-platform-node-NodeContext.cjs.dev.js +3 -2
  20. package/NodeContext/dist/effect-platform-node-NodeContext.cjs.prod.js +3 -2
  21. package/NodeContext/dist/effect-platform-node-NodeContext.esm.js +3 -2
  22. package/Sink/dist/effect-platform-node-Sink.cjs.dev.js +3 -2
  23. package/Sink/dist/effect-platform-node-Sink.cjs.prod.js +3 -2
  24. package/Sink/dist/effect-platform-node-Sink.esm.js +3 -2
  25. package/Stream/dist/effect-platform-node-Stream.cjs.dev.js +1 -1
  26. package/Stream/dist/effect-platform-node-Stream.cjs.prod.js +1 -1
  27. package/Stream/dist/effect-platform-node-Stream.esm.js +1 -1
  28. package/dist/{FormData-b905ea51.cjs.dev.js → FormData-1b197f9f.cjs.dev.js} +1 -1
  29. package/dist/{FormData-aba95773.esm.js → FormData-9c8077af.esm.js} +1 -1
  30. package/dist/{FormData-33600671.cjs.prod.js → FormData-b4b59ecb.cjs.prod.js} +1 -1
  31. package/dist/{NodeClient-f1038dc6.esm.js → NodeClient-25aa9b30.esm.js} +2 -2
  32. package/dist/{NodeClient-174ebaf2.cjs.prod.js → NodeClient-4a5a22a9.cjs.prod.js} +2 -2
  33. package/dist/{NodeClient-86d70074.cjs.dev.js → NodeClient-9eb46e81.cjs.dev.js} +2 -2
  34. package/dist/{Server-d00836e3.cjs.dev.js → Server-6257bf68.cjs.dev.js} +3 -3
  35. package/dist/{Server-015ebdb2.cjs.prod.js → Server-94a686e6.cjs.prod.js} +3 -3
  36. package/dist/{Server-07db176b.esm.js → Server-a565a430.esm.js} +3 -3
  37. package/dist/declarations/src/Sink.d.ts +2 -1
  38. package/dist/declarations/src/Sink.d.ts.map +1 -1
  39. package/dist/declarations/src/Stream.d.ts +9 -10
  40. package/dist/declarations/src/Stream.d.ts.map +1 -1
  41. package/dist/{formData-59e5f494.cjs.prod.js → formData-2d4168a3.cjs.prod.js} +1 -2
  42. package/dist/{formData-00b767b9.cjs.dev.js → formData-5d873a90.cjs.dev.js} +1 -2
  43. package/dist/{formData-3a02d09f.esm.js → formData-b50a3c9f.esm.js} +1 -2
  44. package/dist/{incomingMessage-890fef7a.cjs.prod.js → incomingMessage-4526b216.cjs.prod.js} +2 -4
  45. package/dist/{incomingMessage-6970f455.esm.js → incomingMessage-a56317f6.esm.js} +2 -4
  46. package/dist/{incomingMessage-587c8285.cjs.dev.js → incomingMessage-ac1817d4.cjs.dev.js} +2 -4
  47. package/dist/{sink-5526bd6c.cjs.prod.js → sink-00a7f5a4.cjs.dev.js} +16 -18
  48. package/dist/{sink-a2069d86.cjs.dev.js → sink-8f5eb47c.cjs.prod.js} +16 -18
  49. package/dist/sink-f4bcb905.esm.js +25 -0
  50. package/dist/{stream-c01737c4.cjs.prod.js → stream-1667e8bf.cjs.prod.js} +29 -30
  51. package/dist/{stream-c0c7bc20.cjs.dev.js → stream-8bbecb96.cjs.dev.js} +29 -30
  52. package/dist/{stream-36ca9d0a.esm.js → stream-faaffb40.esm.js} +29 -30
  53. package/package.json +5 -3
  54. package/src/Sink.ts +2 -2
  55. package/src/Stream.ts +7 -10
  56. package/src/internal/http/formData.ts +1 -2
  57. package/src/internal/http/incomingMessage.ts +2 -4
  58. package/src/internal/http/nodeClient.ts +1 -1
  59. package/src/internal/http/server.ts +3 -1
  60. package/src/internal/sink.ts +39 -23
  61. package/src/internal/stream.ts +57 -57
  62. package/dist/sink-f7795af1.esm.js +0 -28
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var stream = require('../../dist/stream-c01737c4.cjs.prod.js');
5
+ var stream = require('../../dist/stream-1667e8bf.cjs.prod.js');
6
6
  require('effect/Channel');
7
7
  require('effect/Chunk');
8
8
  require('effect/Effect');
@@ -1,4 +1,4 @@
1
- import { f as fromReadable$1, a as fromDuplex$1, p as pipeThroughDuplex$1, b as pipeThroughSimple$1, t as toString$1, c as toUint8Array$1 } from '../../dist/stream-36ca9d0a.esm.js';
1
+ import { f as fromReadable$1, a as fromDuplex$1, p as pipeThroughDuplex$1, b as pipeThroughSimple$1, t as toString$1, c as toUint8Array$1 } from '../../dist/stream-faaffb40.esm.js';
2
2
  import 'effect/Channel';
3
3
  import 'effect/Chunk';
4
4
  import 'effect/Effect';
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var formData$1 = require('./formData-00b767b9.cjs.dev.js');
3
+ var formData$1 = require('./formData-5d873a90.cjs.dev.js');
4
4
  var FormData$1 = require('@effect/platform/Http/FormData');
5
5
 
6
6
  function _interopNamespace(e) {
@@ -1,4 +1,4 @@
1
- import { s as stream$1, f as formData$1 } from './formData-3a02d09f.esm.js';
1
+ import { s as stream$1, f as formData$1 } from './formData-b50a3c9f.esm.js';
2
2
  import * as FormData$1 from '@effect/platform/Http/FormData';
3
3
 
4
4
  function _mergeNamespaces(n, m) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var formData$1 = require('./formData-59e5f494.cjs.prod.js');
3
+ var formData$1 = require('./formData-2d4168a3.cjs.prod.js');
4
4
  var FormData$1 = require('@effect/platform/Http/FormData');
5
5
 
6
6
  function _interopNamespace(e) {
@@ -12,7 +12,7 @@ import * as Https from 'node:https';
12
12
  import { Readable } from 'node:stream';
13
13
  import { pipeline } from 'node:stream/promises';
14
14
  import { fromWritable } from '../Sink/dist/effect-platform-node-Sink.esm.js';
15
- import { I as IncomingMessageImpl } from './incomingMessage-6970f455.esm.js';
15
+ import { I as IncomingMessageImpl } from './incomingMessage-a56317f6.esm.js';
16
16
 
17
17
  /** @internal */
18
18
  const HttpAgentTypeId$1 = /*#__PURE__*/Symbol.for("@effect/platform-node/Http/NodeClient/HttpAgent");
@@ -32,7 +32,7 @@ const makeAgentLayer$1 = options => Layer.scoped(HttpAgent$1, makeAgent$1(option
32
32
 
33
33
  /** @internal */
34
34
  const agentLayer$1 = /*#__PURE__*/makeAgentLayer$1();
35
- const fromAgent = agent => Client.make(request => Effect.flatMap(UrlParams.makeUrl(request.url, request.urlParams, _ => Error.RequestError({
35
+ const fromAgent = agent => Client.makeDefault(request => Effect.flatMap(UrlParams.makeUrl(request.url, request.urlParams, _ => Error.RequestError({
36
36
  request,
37
37
  reason: "InvalidUrl",
38
38
  error: _
@@ -14,7 +14,7 @@ var Https = require('node:https');
14
14
  var node_stream = require('node:stream');
15
15
  var NodeStreamP = require('node:stream/promises');
16
16
  var Sink_dist_effectPlatformNodeSink = require('../Sink/dist/effect-platform-node-Sink.cjs.prod.js');
17
- var incomingMessage = require('./incomingMessage-890fef7a.cjs.prod.js');
17
+ var incomingMessage = require('./incomingMessage-4526b216.cjs.prod.js');
18
18
 
19
19
  function _interopNamespace(e) {
20
20
  if (e && e.__esModule) return e;
@@ -63,7 +63,7 @@ const makeAgentLayer$1 = options => Layer__namespace.scoped(HttpAgent$1, makeAge
63
63
 
64
64
  /** @internal */
65
65
  const agentLayer$1 = /*#__PURE__*/makeAgentLayer$1();
66
- const fromAgent = agent => Client__namespace.make(request => Effect__namespace.flatMap(UrlParams__namespace.makeUrl(request.url, request.urlParams, _ => Error__namespace.RequestError({
66
+ const fromAgent = agent => Client__namespace.makeDefault(request => Effect__namespace.flatMap(UrlParams__namespace.makeUrl(request.url, request.urlParams, _ => Error__namespace.RequestError({
67
67
  request,
68
68
  reason: "InvalidUrl",
69
69
  error: _
@@ -14,7 +14,7 @@ var Https = require('node:https');
14
14
  var node_stream = require('node:stream');
15
15
  var NodeStreamP = require('node:stream/promises');
16
16
  var Sink_dist_effectPlatformNodeSink = require('../Sink/dist/effect-platform-node-Sink.cjs.dev.js');
17
- var incomingMessage = require('./incomingMessage-587c8285.cjs.dev.js');
17
+ var incomingMessage = require('./incomingMessage-ac1817d4.cjs.dev.js');
18
18
 
19
19
  function _interopNamespace(e) {
20
20
  if (e && e.__esModule) return e;
@@ -63,7 +63,7 @@ const makeAgentLayer$1 = options => Layer__namespace.scoped(HttpAgent$1, makeAge
63
63
 
64
64
  /** @internal */
65
65
  const agentLayer$1 = /*#__PURE__*/makeAgentLayer$1();
66
- const fromAgent = agent => Client__namespace.make(request => Effect__namespace.flatMap(UrlParams__namespace.makeUrl(request.url, request.urlParams, _ => Error__namespace.RequestError({
66
+ const fromAgent = agent => Client__namespace.makeDefault(request => Effect__namespace.flatMap(UrlParams__namespace.makeUrl(request.url, request.urlParams, _ => Error__namespace.RequestError({
67
67
  request,
68
68
  reason: "InvalidUrl",
69
69
  error: _
@@ -17,8 +17,8 @@ var Stream = require('effect/Stream');
17
17
  var node_stream = require('node:stream');
18
18
  var NodeStreamP = require('node:stream/promises');
19
19
  var Sink_dist_effectPlatformNodeSink = require('../Sink/dist/effect-platform-node-Sink.cjs.dev.js');
20
- var formData = require('./formData-00b767b9.cjs.dev.js');
21
- var incomingMessage = require('./incomingMessage-587c8285.cjs.dev.js');
20
+ var formData = require('./formData-5d873a90.cjs.dev.js');
21
+ var incomingMessage = require('./incomingMessage-ac1817d4.cjs.dev.js');
22
22
  var platform = require('./platform-5b27475e.cjs.dev.js');
23
23
 
24
24
  function _interopNamespace(e) {
@@ -103,7 +103,7 @@ const make$1 = (evaluate, options) => Effect__namespace.gen(function* (_) {
103
103
  port: address.port
104
104
  },
105
105
  serve: (httpApp, middleware) => {
106
- const handledApp = middleware ? middleware(respond(httpApp)) : respond(httpApp);
106
+ const handledApp = middleware ? middleware(App__namespace.withDefaultMiddleware(respond(httpApp))) : App__namespace.withDefaultMiddleware(respond(httpApp));
107
107
  return Effect__namespace.flatMap(Effect__namespace.all([Effect__namespace.runtime(), Effect__namespace.fiberId]), ([runtime, fiberId]) => {
108
108
  const runFork = Runtime__namespace.runFork(runtime);
109
109
  function handler(nodeRequest, nodeResponse) {
@@ -17,8 +17,8 @@ var Stream = require('effect/Stream');
17
17
  var node_stream = require('node:stream');
18
18
  var NodeStreamP = require('node:stream/promises');
19
19
  var Sink_dist_effectPlatformNodeSink = require('../Sink/dist/effect-platform-node-Sink.cjs.prod.js');
20
- var formData = require('./formData-59e5f494.cjs.prod.js');
21
- var incomingMessage = require('./incomingMessage-890fef7a.cjs.prod.js');
20
+ var formData = require('./formData-2d4168a3.cjs.prod.js');
21
+ var incomingMessage = require('./incomingMessage-4526b216.cjs.prod.js');
22
22
  var platform = require('./platform-80b90f07.cjs.prod.js');
23
23
 
24
24
  function _interopNamespace(e) {
@@ -103,7 +103,7 @@ const make$1 = (evaluate, options) => Effect__namespace.gen(function* (_) {
103
103
  port: address.port
104
104
  },
105
105
  serve: (httpApp, middleware) => {
106
- const handledApp = middleware ? middleware(respond(httpApp)) : respond(httpApp);
106
+ const handledApp = middleware ? middleware(App__namespace.withDefaultMiddleware(respond(httpApp))) : App__namespace.withDefaultMiddleware(respond(httpApp));
107
107
  return Effect__namespace.flatMap(Effect__namespace.all([Effect__namespace.runtime(), Effect__namespace.fiberId]), ([runtime, fiberId]) => {
108
108
  const runFork = Runtime__namespace.runFork(runtime);
109
109
  function handler(nodeRequest, nodeResponse) {
@@ -15,8 +15,8 @@ import * as Stream from 'effect/Stream';
15
15
  import { Readable } from 'node:stream';
16
16
  import { pipeline } from 'node:stream/promises';
17
17
  import { fromWritable } from '../Sink/dist/effect-platform-node-Sink.esm.js';
18
- import { f as formData, s as stream } from './formData-3a02d09f.esm.js';
19
- import { I as IncomingMessageImpl } from './incomingMessage-6970f455.esm.js';
18
+ import { f as formData, s as stream } from './formData-b50a3c9f.esm.js';
19
+ import { I as IncomingMessageImpl } from './incomingMessage-a56317f6.esm.js';
20
20
  import { l as layer$2 } from './platform-2c00c2c5.esm.js';
21
21
 
22
22
  function _mergeNamespaces(n, m) {
@@ -68,7 +68,7 @@ const make$1 = (evaluate, options) => Effect.gen(function* (_) {
68
68
  port: address.port
69
69
  },
70
70
  serve: (httpApp, middleware) => {
71
- const handledApp = middleware ? middleware(respond(httpApp)) : respond(httpApp);
71
+ const handledApp = middleware ? middleware(App.withDefaultMiddleware(respond(httpApp))) : App.withDefaultMiddleware(respond(httpApp));
72
72
  return Effect.flatMap(Effect.all([Effect.runtime(), Effect.fiberId]), ([runtime, fiberId]) => {
73
73
  const runFork = Runtime.runFork(runtime);
74
74
  function handler(nodeRequest, nodeResponse) {
@@ -2,6 +2,7 @@
2
2
  * @since 1.0.0
3
3
  */
4
4
  /// <reference types="node" />
5
+ /// <reference types="node" />
5
6
  import type { LazyArg } from "effect/Function";
6
7
  import type { Sink } from "effect/Sink";
7
8
  import type { Writable } from "stream";
@@ -10,5 +11,5 @@ import type { FromWritableOptions } from "./Stream.js";
10
11
  * @category constructor
11
12
  * @since 1.0.0
12
13
  */
13
- export declare const fromWritable: <E, A>(evaluate: LazyArg<Writable>, onError: (error: unknown) => E, options?: FromWritableOptions) => Sink<never, E, A, never, void>;
14
+ export declare const fromWritable: <E, A = string | Uint8Array>(evaluate: LazyArg<Writable | NodeJS.WritableStream>, onError: (error: unknown) => E, options?: FromWritableOptions) => Sink<never, E, A, never, void>;
14
15
  //# sourceMappingURL=Sink.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Sink.d.ts","sourceRoot":"../../../src","sources":["Sink.ts"],"names":[],"mappings":"AAAA;;GAEG;;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAgB;AAEnD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,EAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB,KAC1B,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAyB,CAAA"}
1
+ {"version":3,"file":"Sink.d.ts","sourceRoot":"../../../src","sources":["Sink.ts"],"names":[],"mappings":"AAAA;;GAEG;;;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAgB;AAEnD;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,UAAU,EACpD,QAAQ,EAAE,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,EACnD,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB,KAC1B,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,CAAyB,CAAA"}
@@ -1,5 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
+ /// <reference types="node" />
3
4
  /**
4
5
  * @since 1.0.0
5
6
  */
@@ -31,7 +32,7 @@ export interface FromWritableOptions {
31
32
  * @category constructors
32
33
  * @since 1.0.0
33
34
  */
34
- export declare const fromReadable: <E, A = Uint8Array>(evaluate: LazyArg<Readable>, onError: (error: unknown) => E, { chunkSize }?: FromReadableOptions) => Stream<never, E, A>;
35
+ export declare const fromReadable: <E, A = Uint8Array>(evaluate: LazyArg<Readable | NodeJS.ReadableStream>, onError: (error: unknown) => E, { chunkSize }?: FromReadableOptions) => Stream<never, E, A>;
35
36
  /**
36
37
  * @category constructors
37
38
  * @since 1.0.0
@@ -57,19 +58,17 @@ export declare const pipeThroughSimple: {
57
58
  * @since 1.0.0
58
59
  * @category conversions
59
60
  */
60
- export declare const toString: <E>(options: {
61
- readable: LazyArg<Readable>;
62
- onFailure: (error: unknown) => E;
63
- encoding?: BufferEncoding;
64
- maxBytes?: SizeInput;
61
+ export declare const toString: <E>(readable: LazyArg<Readable | NodeJS.ReadableStream>, options: {
62
+ readonly onFailure: (error: unknown) => E;
63
+ readonly encoding?: BufferEncoding | undefined;
64
+ readonly maxBytes?: SizeInput | undefined;
65
65
  }) => Effect<never, E, string>;
66
66
  /**
67
67
  * @since 1.0.0
68
68
  * @category conversions
69
69
  */
70
- export declare const toUint8Array: <E>(options: {
71
- readable: LazyArg<Readable>;
72
- onFailure: (error: unknown) => E;
73
- maxBytes?: SizeInput;
70
+ export declare const toUint8Array: <E>(readable: LazyArg<Readable | NodeJS.ReadableStream>, options: {
71
+ readonly onFailure: (error: unknown) => E;
72
+ readonly maxBytes?: SizeInput | undefined;
74
73
  }) => Effect<never, E, Uint8Array>;
75
74
  //# sourceMappingURL=Stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stream.d.ts","sourceRoot":"../../../src","sources":["Stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Stream.d.ts","sourceRoot":"../../../src","sources":["Stream.ts"],"names":[],"mappings":"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"}
@@ -90,8 +90,7 @@ const stream = (source, headers) => Function.pipe(Effect__namespace.Do, Effect__
90
90
  emit.end();
91
91
  });
92
92
  source.pipe(busboy);
93
- }), part => part._tag === "File" && Chunk__namespace.some(fieldMimeTypes, _ => part.contentType.includes(_)) ? Effect__namespace.map(Stream_dist_effectPlatformNodeStream.toString({
94
- readable: () => part.source,
93
+ }), part => part._tag === "File" && Chunk__namespace.some(fieldMimeTypes, _ => part.contentType.includes(_)) ? Effect__namespace.map(Stream_dist_effectPlatformNodeStream.toString(() => part.source, {
95
94
  onFailure: error => FormData__namespace.FormDataError("InternalError", error)
96
95
  }), content => new FieldImpl(part.key, part.contentType, content)) : Effect__namespace.succeed(part))), Stream__namespace.unwrapScoped);
97
96
  class FieldImpl {
@@ -90,8 +90,7 @@ const stream = (source, headers) => Function.pipe(Effect__namespace.Do, Effect__
90
90
  emit.end();
91
91
  });
92
92
  source.pipe(busboy);
93
- }), part => part._tag === "File" && Chunk__namespace.some(fieldMimeTypes, _ => part.contentType.includes(_)) ? Effect__namespace.map(Stream_dist_effectPlatformNodeStream.toString({
94
- readable: () => part.source,
93
+ }), part => part._tag === "File" && Chunk__namespace.some(fieldMimeTypes, _ => part.contentType.includes(_)) ? Effect__namespace.map(Stream_dist_effectPlatformNodeStream.toString(() => part.source, {
95
94
  onFailure: error => FormData__namespace.FormDataError("InternalError", error)
96
95
  }), content => new FieldImpl(part.key, part.contentType, content)) : Effect__namespace.succeed(part))), Stream__namespace.unwrapScoped);
97
96
  class FieldImpl {
@@ -56,8 +56,7 @@ const stream = (source, headers) => pipe(Effect.Do, Effect.bind("maxParts", () =
56
56
  emit.end();
57
57
  });
58
58
  source.pipe(busboy);
59
- }), part => part._tag === "File" && Chunk.some(fieldMimeTypes, _ => part.contentType.includes(_)) ? Effect.map(toString({
60
- readable: () => part.source,
59
+ }), part => part._tag === "File" && Chunk.some(fieldMimeTypes, _ => part.contentType.includes(_)) ? Effect.map(toString(() => part.source, {
61
60
  onFailure: error => FormData.FormDataError("InternalError", error)
62
61
  }), content => new FieldImpl(part.key, part.contentType, content)) : Effect.succeed(part))), Stream.unwrapScoped);
63
62
  class FieldImpl {
@@ -51,8 +51,7 @@ class IncomingMessageImpl {
51
51
  if (this.textEffect) {
52
52
  return this.textEffect;
53
53
  }
54
- this.textEffect = Effect__namespace.runSync(Effect__namespace.cached(Effect__namespace.flatMap(FiberRef__namespace.get(IncomingMessage__namespace.maxBodySize), maxBodySize => Stream_dist_effectPlatformNodeStream.toString({
55
- readable: () => this.source,
54
+ this.textEffect = Effect__namespace.runSync(Effect__namespace.cached(Effect__namespace.flatMap(FiberRef__namespace.get(IncomingMessage__namespace.maxBodySize), maxBodySize => Stream_dist_effectPlatformNodeStream.toString(() => this.source, {
56
55
  onFailure: this.onError,
57
56
  maxBytes: Option__namespace.getOrUndefined(maxBodySize)
58
57
  }))));
@@ -74,8 +73,7 @@ class IncomingMessageImpl {
74
73
  return Stream_dist_effectPlatformNodeStream.fromReadable(() => this.source, this.onError);
75
74
  }
76
75
  get arrayBuffer() {
77
- return Effect__namespace.flatMap(FiberRef__namespace.get(IncomingMessage__namespace.maxBodySize), maxBodySize => Stream_dist_effectPlatformNodeStream.toUint8Array({
78
- readable: () => this.source,
76
+ return Effect__namespace.flatMap(FiberRef__namespace.get(IncomingMessage__namespace.maxBodySize), maxBodySize => Stream_dist_effectPlatformNodeStream.toUint8Array(() => this.source, {
79
77
  onFailure: this.onError,
80
78
  maxBytes: Option__namespace.getOrUndefined(maxBodySize)
81
79
  }));
@@ -24,8 +24,7 @@ class IncomingMessageImpl {
24
24
  if (this.textEffect) {
25
25
  return this.textEffect;
26
26
  }
27
- this.textEffect = Effect.runSync(Effect.cached(Effect.flatMap(FiberRef.get(IncomingMessage.maxBodySize), maxBodySize => toString({
28
- readable: () => this.source,
27
+ this.textEffect = Effect.runSync(Effect.cached(Effect.flatMap(FiberRef.get(IncomingMessage.maxBodySize), maxBodySize => toString(() => this.source, {
29
28
  onFailure: this.onError,
30
29
  maxBytes: Option.getOrUndefined(maxBodySize)
31
30
  }))));
@@ -47,8 +46,7 @@ class IncomingMessageImpl {
47
46
  return fromReadable(() => this.source, this.onError);
48
47
  }
49
48
  get arrayBuffer() {
50
- return Effect.flatMap(FiberRef.get(IncomingMessage.maxBodySize), maxBodySize => toUint8Array({
51
- readable: () => this.source,
49
+ return Effect.flatMap(FiberRef.get(IncomingMessage.maxBodySize), maxBodySize => toUint8Array(() => this.source, {
52
50
  onFailure: this.onError,
53
51
  maxBytes: Option.getOrUndefined(maxBodySize)
54
52
  }));
@@ -51,8 +51,7 @@ class IncomingMessageImpl {
51
51
  if (this.textEffect) {
52
52
  return this.textEffect;
53
53
  }
54
- this.textEffect = Effect__namespace.runSync(Effect__namespace.cached(Effect__namespace.flatMap(FiberRef__namespace.get(IncomingMessage__namespace.maxBodySize), maxBodySize => Stream_dist_effectPlatformNodeStream.toString({
55
- readable: () => this.source,
54
+ this.textEffect = Effect__namespace.runSync(Effect__namespace.cached(Effect__namespace.flatMap(FiberRef__namespace.get(IncomingMessage__namespace.maxBodySize), maxBodySize => Stream_dist_effectPlatformNodeStream.toString(() => this.source, {
56
55
  onFailure: this.onError,
57
56
  maxBytes: Option__namespace.getOrUndefined(maxBodySize)
58
57
  }))));
@@ -74,8 +73,7 @@ class IncomingMessageImpl {
74
73
  return Stream_dist_effectPlatformNodeStream.fromReadable(() => this.source, this.onError);
75
74
  }
76
75
  get arrayBuffer() {
77
- return Effect__namespace.flatMap(FiberRef__namespace.get(IncomingMessage__namespace.maxBodySize), maxBodySize => Stream_dist_effectPlatformNodeStream.toUint8Array({
78
- readable: () => this.source,
76
+ return Effect__namespace.flatMap(FiberRef__namespace.get(IncomingMessage__namespace.maxBodySize), maxBodySize => Stream_dist_effectPlatformNodeStream.toUint8Array(() => this.source, {
79
77
  onFailure: this.onError,
80
78
  maxBytes: Option__namespace.getOrUndefined(maxBodySize)
81
79
  }));
@@ -1,9 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var Channel = require('effect/Channel');
4
+ var Deferred = require('effect/Deferred');
4
5
  var Effect = require('effect/Effect');
5
6
  var Sink = require('effect/Sink');
6
- var stream = require('./stream-c01737c4.cjs.prod.js');
7
+ var stream = require('./stream-8bbecb96.cjs.dev.js');
7
8
 
8
9
  function _interopNamespace(e) {
9
10
  if (e && e.__esModule) return e;
@@ -24,29 +25,26 @@ function _interopNamespace(e) {
24
25
  }
25
26
 
26
27
  var Channel__namespace = /*#__PURE__*/_interopNamespace(Channel);
28
+ var Deferred__namespace = /*#__PURE__*/_interopNamespace(Deferred);
27
29
  var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
28
30
  var Sink__namespace = /*#__PURE__*/_interopNamespace(Sink);
29
31
 
30
32
  /** @internal */
31
33
  const fromWritable = (evaluate, onError, options = {}) => Sink__namespace.suspend(() => Sink__namespace.fromChannel(writeChannel(evaluate(), onError, options)));
32
- const writeChannel = (writable, onError, {
33
- encoding,
34
- endOnDone = true
35
- } = {}) => {
36
- const write = stream.writeEffect(writable, onError, encoding);
37
- const close = endOnDone ? Effect__namespace.async(resume => {
38
- if (writable.closed) {
39
- resume(Effect__namespace.unit);
40
- } else {
41
- writable.end(() => resume(Effect__namespace.unit));
42
- }
43
- }) : Channel__namespace.unit;
44
- const loop = Channel__namespace.readWithCause({
45
- onInput: chunk => Channel__namespace.flatMap(Channel__namespace.fromEffect(write(chunk)), () => loop),
46
- onFailure: cause => Channel__namespace.zipRight(close, Channel__namespace.failCause(cause)),
47
- onDone: _done => close
34
+ const writeChannel = (writable, onError, options = {}) => Channel__namespace.flatMap(Deferred__namespace.make(), deferred => {
35
+ const input = stream.writeInput(writable, _ => Deferred__namespace.failCause(deferred, _), options, Deferred__namespace.complete(deferred, Effect__namespace.unit));
36
+ return Channel__namespace.embedInput(writableOutput(writable, deferred, onError), input);
37
+ });
38
+ const writableOutput = (writable, deferred, onError) => {
39
+ function handleError(err) {
40
+ Deferred__namespace.unsafeDone(deferred, Effect__namespace.fail(onError(err)));
41
+ }
42
+ return Effect__namespace.suspend(() => {
43
+ writable.on("error", handleError);
44
+ return Effect__namespace.ensuring(Deferred__namespace.await(deferred), Effect__namespace.sync(() => {
45
+ writable.removeListener("error", handleError);
46
+ }));
48
47
  });
49
- return loop;
50
48
  };
51
49
 
52
50
  exports.fromWritable = fromWritable;
@@ -1,9 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var Channel = require('effect/Channel');
4
+ var Deferred = require('effect/Deferred');
4
5
  var Effect = require('effect/Effect');
5
6
  var Sink = require('effect/Sink');
6
- var stream = require('./stream-c0c7bc20.cjs.dev.js');
7
+ var stream = require('./stream-1667e8bf.cjs.prod.js');
7
8
 
8
9
  function _interopNamespace(e) {
9
10
  if (e && e.__esModule) return e;
@@ -24,29 +25,26 @@ function _interopNamespace(e) {
24
25
  }
25
26
 
26
27
  var Channel__namespace = /*#__PURE__*/_interopNamespace(Channel);
28
+ var Deferred__namespace = /*#__PURE__*/_interopNamespace(Deferred);
27
29
  var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
28
30
  var Sink__namespace = /*#__PURE__*/_interopNamespace(Sink);
29
31
 
30
32
  /** @internal */
31
33
  const fromWritable = (evaluate, onError, options = {}) => Sink__namespace.suspend(() => Sink__namespace.fromChannel(writeChannel(evaluate(), onError, options)));
32
- const writeChannel = (writable, onError, {
33
- encoding,
34
- endOnDone = true
35
- } = {}) => {
36
- const write = stream.writeEffect(writable, onError, encoding);
37
- const close = endOnDone ? Effect__namespace.async(resume => {
38
- if (writable.closed) {
39
- resume(Effect__namespace.unit);
40
- } else {
41
- writable.end(() => resume(Effect__namespace.unit));
42
- }
43
- }) : Channel__namespace.unit;
44
- const loop = Channel__namespace.readWithCause({
45
- onInput: chunk => Channel__namespace.flatMap(Channel__namespace.fromEffect(write(chunk)), () => loop),
46
- onFailure: cause => Channel__namespace.zipRight(close, Channel__namespace.failCause(cause)),
47
- onDone: _done => close
34
+ const writeChannel = (writable, onError, options = {}) => Channel__namespace.flatMap(Deferred__namespace.make(), deferred => {
35
+ const input = stream.writeInput(writable, _ => Deferred__namespace.failCause(deferred, _), options, Deferred__namespace.complete(deferred, Effect__namespace.unit));
36
+ return Channel__namespace.embedInput(writableOutput(writable, deferred, onError), input);
37
+ });
38
+ const writableOutput = (writable, deferred, onError) => {
39
+ function handleError(err) {
40
+ Deferred__namespace.unsafeDone(deferred, Effect__namespace.fail(onError(err)));
41
+ }
42
+ return Effect__namespace.suspend(() => {
43
+ writable.on("error", handleError);
44
+ return Effect__namespace.ensuring(Deferred__namespace.await(deferred), Effect__namespace.sync(() => {
45
+ writable.removeListener("error", handleError);
46
+ }));
48
47
  });
49
- return loop;
50
48
  };
51
49
 
52
50
  exports.fromWritable = fromWritable;
@@ -0,0 +1,25 @@
1
+ import * as Channel from 'effect/Channel';
2
+ import * as Deferred from 'effect/Deferred';
3
+ import * as Effect from 'effect/Effect';
4
+ import * as Sink from 'effect/Sink';
5
+ import { w as writeInput } from './stream-faaffb40.esm.js';
6
+
7
+ /** @internal */
8
+ const fromWritable = (evaluate, onError, options = {}) => Sink.suspend(() => Sink.fromChannel(writeChannel(evaluate(), onError, options)));
9
+ const writeChannel = (writable, onError, options = {}) => Channel.flatMap(Deferred.make(), deferred => {
10
+ const input = writeInput(writable, _ => Deferred.failCause(deferred, _), options, Deferred.complete(deferred, Effect.unit));
11
+ return Channel.embedInput(writableOutput(writable, deferred, onError), input);
12
+ });
13
+ const writableOutput = (writable, deferred, onError) => {
14
+ function handleError(err) {
15
+ Deferred.unsafeDone(deferred, Effect.fail(onError(err)));
16
+ }
17
+ return Effect.suspend(() => {
18
+ writable.on("error", handleError);
19
+ return Effect.ensuring(Deferred.await(deferred), Effect.sync(() => {
20
+ writable.removeListener("error", handleError);
21
+ }));
22
+ });
23
+ };
24
+
25
+ export { fromWritable as f };
@@ -42,10 +42,10 @@ const fromReadable = (evaluate, onError, {
42
42
  } = {}) => Stream__namespace.fromChannel(readChannel(evaluate, onError, chunkSize ? Number(chunkSize) : undefined));
43
43
 
44
44
  /** @internal */
45
- const toString = options => {
45
+ const toString = (readable, options) => {
46
46
  const maxBytesNumber = options.maxBytes ? Number(options.maxBytes) : undefined;
47
47
  return Effect__namespace.acquireUseRelease(Effect__namespace.sync(() => {
48
- const stream = options.readable();
48
+ const stream = readable();
49
49
  stream.setEncoding(options.encoding ?? "utf8");
50
50
  return stream;
51
51
  }), stream => Effect__namespace.async(resume => {
@@ -66,16 +66,16 @@ const toString = options => {
66
66
  });
67
67
  }), stream => Effect__namespace.sync(() => {
68
68
  stream.removeAllListeners();
69
- if (!stream.closed) {
69
+ if ("closed" in stream && !stream.closed) {
70
70
  stream.destroy();
71
71
  }
72
72
  }));
73
73
  };
74
74
 
75
75
  /** @internal */
76
- const toUint8Array = options => {
76
+ const toUint8Array = (readable, options) => {
77
77
  const maxBytesNumber = options.maxBytes ? Number(options.maxBytes) : undefined;
78
- return Effect__namespace.acquireUseRelease(Effect__namespace.sync(options.readable), stream => Effect__namespace.async(resume => {
78
+ return Effect__namespace.acquireUseRelease(Effect__namespace.sync(readable), stream => Effect__namespace.async(resume => {
79
79
  let buffer = Buffer.alloc(0);
80
80
  let bytes = 0;
81
81
  stream.once("error", err => {
@@ -93,14 +93,14 @@ const toUint8Array = options => {
93
93
  });
94
94
  }), stream => Effect__namespace.sync(() => {
95
95
  stream.removeAllListeners();
96
- if (!stream.closed) {
96
+ if ("closed" in stream && !stream.closed) {
97
97
  stream.destroy();
98
98
  }
99
99
  }));
100
100
  };
101
101
 
102
102
  /** @internal */
103
- const fromDuplex = (evaluate, onError, options = {}) => Channel__namespace.acquireUseRelease(Effect__namespace.tap(Effect__namespace.zip(Effect__namespace.sync(evaluate), Queue__namespace.unbounded()), ([duplex, queue]) => readableOffer(duplex, queue, onError)), ([duplex, queue]) => Channel__namespace.embedInput(readableTake(duplex, queue, options.chunkSize ? Number(options.chunkSize) : undefined), writeInput(duplex, queue, onError, options)), ([duplex, queue]) => Effect__namespace.zipRight(Effect__namespace.sync(() => {
103
+ const fromDuplex = (evaluate, onError, options = {}) => Channel__namespace.acquireUseRelease(Effect__namespace.tap(Effect__namespace.zip(Effect__namespace.sync(evaluate), Queue__namespace.unbounded()), ([duplex, queue]) => readableOffer(duplex, queue, onError)), ([duplex, queue]) => Channel__namespace.embedInput(readableTake(duplex, queue, options.chunkSize ? Number(options.chunkSize) : undefined), writeInput(duplex, cause => Queue__namespace.offer(queue, Either__namespace.left(Exit__namespace.failCause(cause))), options)), ([duplex, queue]) => Effect__namespace.zipRight(Effect__namespace.sync(() => {
104
104
  duplex.removeAllListeners();
105
105
  if (!duplex.closed) {
106
106
  duplex.destroy();
@@ -120,48 +120,47 @@ const pipeThroughSimple = /*#__PURE__*/Function.dual(2, (self, duplex) => Stream
120
120
  }))));
121
121
  const readChannel = (evaluate, onError, chunkSize) => Channel__namespace.acquireUseRelease(Effect__namespace.tap(Effect__namespace.zip(Effect__namespace.sync(evaluate), Queue__namespace.unbounded()), ([readable, queue]) => readableOffer(readable, queue, onError)), ([readable, queue]) => readableTake(readable, queue, chunkSize), ([readable, queue]) => Effect__namespace.zipRight(Effect__namespace.sync(() => {
122
122
  readable.removeAllListeners();
123
- if (!readable.closed) {
123
+ if ("closed" in readable && !readable.closed) {
124
124
  readable.destroy();
125
125
  }
126
126
  }), Queue__namespace.shutdown(queue)));
127
- const writeInput = (writable, queue, onError, {
127
+
128
+ /** @internal */
129
+ const writeInput = (writable, onFailure, {
128
130
  encoding,
129
131
  endOnDone = true
130
- } = {}) => {
131
- const write = writeEffect(writable, onError, encoding);
132
+ }, onDone = Effect__namespace.unit) => {
133
+ const write = writeEffect(writable, encoding);
132
134
  const close = endOnDone ? Effect__namespace.async(resume => {
133
- if (writable.closed) {
135
+ if ("closed" in writable && writable.closed) {
134
136
  resume(Effect__namespace.unit);
135
137
  } else {
136
- writable.end(() => resume(Effect__namespace.unit));
138
+ writable.once("finish", () => resume(Effect__namespace.unit));
139
+ writable.end();
137
140
  }
138
141
  }) : Effect__namespace.unit;
139
142
  return {
140
143
  awaitRead: () => Effect__namespace.unit,
141
- emit: chunk => Effect__namespace.catchAllCause(write(chunk), cause => Queue__namespace.offer(queue, Either__namespace.left(Exit__namespace.failCause(cause)))),
142
- error: cause => Effect__namespace.zipRight(close, Queue__namespace.offer(queue, Either__namespace.left(Exit__namespace.failCause(cause)))),
143
- done: _ => close
144
+ emit: write,
145
+ error: cause => Effect__namespace.zipRight(close, onFailure(cause)),
146
+ done: _ => Effect__namespace.zipRight(close, onDone)
144
147
  };
145
148
  };
146
149
 
147
150
  /** @internal */
148
- const writeEffect = (writable, onError, encoding) => chunk => Effect__namespace.async(resume => {
151
+ const writeEffect = (writable, encoding) => chunk => chunk.length === 0 ? Effect__namespace.unit : Effect__namespace.async(resume => {
149
152
  const iterator = chunk[Symbol.iterator]();
153
+ let next = iterator.next();
150
154
  function loop() {
151
- const item = iterator.next();
152
- if (item.done) {
155
+ const item = next;
156
+ next = iterator.next();
157
+ const success = writable.write(item.value, encoding);
158
+ if (next.done) {
153
159
  resume(Effect__namespace.unit);
154
- } else if (encoding) {
155
- writable.write(item.value, encoding, onDone);
156
- } else {
157
- writable.write(item.value, onDone);
158
- }
159
- }
160
- function onDone(err) {
161
- if (err) {
162
- resume(Effect__namespace.fail(onError(err)));
163
- } else {
160
+ } else if (success) {
164
161
  loop();
162
+ } else {
163
+ writable.once("drain", loop);
165
164
  }
166
165
  }
167
166
  loop();
@@ -207,4 +206,4 @@ exports.pipeThroughDuplex = pipeThroughDuplex;
207
206
  exports.pipeThroughSimple = pipeThroughSimple;
208
207
  exports.toString = toString;
209
208
  exports.toUint8Array = toUint8Array;
210
- exports.writeEffect = writeEffect;
209
+ exports.writeInput = writeInput;