@effect/platform-node 0.101.1 → 0.102.0

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.
@@ -14,6 +14,7 @@ var Server = _interopRequireWildcard(require("@effect/platform/HttpServer"));
14
14
  var Error = _interopRequireWildcard(require("@effect/platform/HttpServerError"));
15
15
  var ServerRequest = _interopRequireWildcard(require("@effect/platform/HttpServerRequest"));
16
16
  var Socket = _interopRequireWildcard(require("@effect/platform/Socket"));
17
+ var Cause = _interopRequireWildcard(require("effect/Cause"));
17
18
  var Chunk = _interopRequireWildcard(require("effect/Chunk"));
18
19
  var Config = _interopRequireWildcard(require("effect/Config"));
19
20
  var Effect = _interopRequireWildcard(require("effect/Effect"));
@@ -265,7 +266,7 @@ const handleResponse = (request, response) => Effect.suspend(() => {
265
266
  reason: "Decode",
266
267
  cause
267
268
  })
268
- }).pipe(Effect.interruptible, Effect.tapErrorCause(handleCause(nodeResponse)));
269
+ }).pipe(Effect.interruptible, Effect.tapErrorCause(handleCause(nodeResponse, response)));
269
270
  }
270
271
  return Effect.async(resume => {
271
272
  nodeResponse.end(body.body, () => resume(Effect.void));
@@ -299,37 +300,45 @@ const handleResponse = (request, response) => Effect.suspend(() => {
299
300
  }).once("finish", () => {
300
301
  resume(Effect.void);
301
302
  });
302
- }).pipe(Effect.interruptible, Effect.tapErrorCause(handleCause(nodeResponse)));
303
+ }).pipe(Effect.interruptible, Effect.tapErrorCause(handleCause(nodeResponse, response)));
303
304
  });
304
305
  }
305
306
  case "Stream":
306
307
  {
307
308
  nodeResponse.writeHead(response.status, headers);
308
- return body.stream.pipe(Stream.orDie, Stream.runForEachChunk(chunk => Effect.async(resume => {
309
+ const drainLatch = Effect.unsafeMakeLatch();
310
+ nodeResponse.on("drain", () => drainLatch.unsafeOpen());
311
+ return body.stream.pipe(Stream.orDie, Stream.runForEachChunk(chunk => {
309
312
  const array = Chunk.toReadonlyArray(chunk);
310
- if (array.length === 0) {
311
- resume(Effect.void);
312
- return;
313
+ if (array.length === 0) return Effect.void;
314
+ let needDrain = false;
315
+ for (let i = 0; i < array.length; i++) {
316
+ const written = nodeResponse.write(array[i]);
317
+ if (!written && !needDrain) {
318
+ needDrain = true;
319
+ drainLatch.unsafeClose();
320
+ } else if (written && needDrain) {
321
+ needDrain = false;
322
+ }
313
323
  }
314
- for (let i = 0; i < array.length - 1; i++) {
315
- nodeResponse.write(array[i]);
316
- }
317
- nodeResponse.write(array[array.length - 1], () => resume(Effect.void));
318
- })), Effect.interruptible, Effect.matchCauseEffect({
324
+ if (!needDrain) return Effect.void;
325
+ return drainLatch.await;
326
+ }), Effect.interruptible, Effect.matchCauseEffect({
319
327
  onSuccess: () => Effect.sync(() => nodeResponse.end()),
320
- onFailure: handleCause(nodeResponse)
328
+ onFailure: handleCause(nodeResponse, response)
321
329
  }));
322
330
  }
323
331
  }
324
332
  });
325
- const handleCause = nodeResponse => cause => Error.causeResponse(cause).pipe(Effect.flatMap(([response, cause]) => {
326
- if (!nodeResponse.headersSent) {
333
+ const handleCause = (nodeResponse, original) => originalCause => Error.causeResponse(originalCause).pipe(Effect.flatMap(([response, cause]) => {
334
+ const headersSent = nodeResponse.headersSent;
335
+ if (!headersSent) {
327
336
  nodeResponse.writeHead(response.status);
328
337
  }
329
338
  if (!nodeResponse.writableEnded) {
330
339
  nodeResponse.end();
331
340
  }
332
- return Effect.failCause(cause);
341
+ return Effect.failCause(headersSent ? Cause.sequential(originalCause, Cause.die(original)) : cause);
333
342
  }));
334
343
  /** @internal */
335
344
  const toIncomingMessage = self => self.source;
@@ -1 +1 @@
1
- {"version":3,"file":"httpServer.js","names":["MultipartNode","_interopRequireWildcard","require","Cookies","Etag","FileSystem","App","IncomingMessage","Server","Error","ServerRequest","Socket","Chunk","Config","Effect","FiberSet","_Function","Layer","Option","Runtime","Scope","Stream","Http","_nodeStream","_promises","WS","NodeContext","NodeHttpClient","_httpIncomingMessage","internalPlatform","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","evaluate","options","gen","scope","server","acquireRelease","sync","async","resume","listening","void","close","error","die","onError","cause","fail","ServeError","on","listen","off","address","wss","pipe","WebSocketServer","noServer","extend","cached","_tag","path","hostname","port","serve","httpApp","middleware","handler","makeHandler","upgradeHandler","makeUpgradeHandler","addFinalizer","provideService","MaxBodySize","some","Size","exports","handledApp","toHandled","handleResponse","map","runtime","runFork","nodeRequest","nodeResponse","fiber","HttpServerRequest","ServerRequestImpl","writableEnded","unsafeInterruptAsFork","clientAbortFiberId","lazyWss","makeRuntime","socket","head","nodeResponse_","undefined","ServerResponse","assignSocket","end","upgradeEffect","fromWebSocket","flatMap","handleUpgrade","ws","succeed","HttpIncomingMessageImpl","source","response","url","headersOverride","TypeId","constructor","remoteAddressOverride","RequestError","request","reason","cachedCookies","cookies","parseHeader","headers","cookie","resolvedResponse","modify","remoteAddress","originalUrl","method","toUpperCase","multipartEffect","multipart","runSync","persisted","multipartStream","stream","upgrade","description","toString","toJSON","inspect","_id","layerServer","scoped","HttpServer","layerContext","mergeAll","layer","layerWeak","layerTest","layerTestClient","provide","layerWithoutAgent","makeAgentLayer","keepAlive","provideMerge","createServer","layerConfig","unwrap","suspend","isEmpty","toSet","toSetCookieHeaders","push","writeHead","status","body","tryPromise","try","signal","pipeline","catch","ResponseError","interruptible","tapErrorCause","handleCause","Response","formData","fromEntries","Readable","fromWeb","once","orDie","runForEachChunk","chunk","array","toReadonlyArray","length","write","matchCauseEffect","onSuccess","onFailure","causeResponse","headersSent","failCause","toIncomingMessage","self","toServerResponse","res"],"sources":["../../../src/internal/httpServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"httpServer.js","names":["MultipartNode","_interopRequireWildcard","require","Cookies","Etag","FileSystem","App","IncomingMessage","Server","Error","ServerRequest","Socket","Cause","Chunk","Config","Effect","FiberSet","_Function","Layer","Option","Runtime","Scope","Stream","Http","_nodeStream","_promises","WS","NodeContext","NodeHttpClient","_httpIncomingMessage","internalPlatform","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","evaluate","options","gen","scope","server","acquireRelease","sync","async","resume","listening","void","close","error","die","onError","cause","fail","ServeError","on","listen","off","address","wss","pipe","WebSocketServer","noServer","extend","cached","_tag","path","hostname","port","serve","httpApp","middleware","handler","makeHandler","upgradeHandler","makeUpgradeHandler","addFinalizer","provideService","MaxBodySize","some","Size","exports","handledApp","toHandled","handleResponse","map","runtime","runFork","nodeRequest","nodeResponse","fiber","HttpServerRequest","ServerRequestImpl","writableEnded","unsafeInterruptAsFork","clientAbortFiberId","lazyWss","makeRuntime","socket","head","nodeResponse_","undefined","ServerResponse","assignSocket","end","upgradeEffect","fromWebSocket","flatMap","handleUpgrade","ws","succeed","HttpIncomingMessageImpl","source","response","url","headersOverride","TypeId","constructor","remoteAddressOverride","RequestError","request","reason","cachedCookies","cookies","parseHeader","headers","cookie","resolvedResponse","modify","remoteAddress","originalUrl","method","toUpperCase","multipartEffect","multipart","runSync","persisted","multipartStream","stream","upgrade","description","toString","toJSON","inspect","_id","layerServer","scoped","HttpServer","layerContext","mergeAll","layer","layerWeak","layerTest","layerTestClient","provide","layerWithoutAgent","makeAgentLayer","keepAlive","provideMerge","createServer","layerConfig","unwrap","suspend","isEmpty","toSet","toSetCookieHeaders","push","writeHead","status","body","tryPromise","try","signal","pipeline","catch","ResponseError","interruptible","tapErrorCause","handleCause","Response","formData","fromEntries","Readable","fromWeb","once","drainLatch","unsafeMakeLatch","unsafeOpen","orDie","runForEachChunk","chunk","array","toReadonlyArray","length","needDrain","written","write","unsafeClose","await","matchCauseEffect","onSuccess","onFailure","original","originalCause","causeResponse","headersSent","failCause","sequential","toIncomingMessage","self","toServerResponse","res"],"sources":["../../../src/internal/httpServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -8,6 +8,7 @@ import * as Server from "@effect/platform/HttpServer";
8
8
  import * as Error from "@effect/platform/HttpServerError";
9
9
  import * as ServerRequest from "@effect/platform/HttpServerRequest";
10
10
  import * as Socket from "@effect/platform/Socket";
11
+ import * as Cause from "effect/Cause";
11
12
  import * as Chunk from "effect/Chunk";
12
13
  import * as Config from "effect/Config";
13
14
  import * as Effect from "effect/Effect";
@@ -252,7 +253,7 @@ const handleResponse = (request, response) => Effect.suspend(() => {
252
253
  reason: "Decode",
253
254
  cause
254
255
  })
255
- }).pipe(Effect.interruptible, Effect.tapErrorCause(handleCause(nodeResponse)));
256
+ }).pipe(Effect.interruptible, Effect.tapErrorCause(handleCause(nodeResponse, response)));
256
257
  }
257
258
  return Effect.async(resume => {
258
259
  nodeResponse.end(body.body, () => resume(Effect.void));
@@ -286,37 +287,45 @@ const handleResponse = (request, response) => Effect.suspend(() => {
286
287
  }).once("finish", () => {
287
288
  resume(Effect.void);
288
289
  });
289
- }).pipe(Effect.interruptible, Effect.tapErrorCause(handleCause(nodeResponse)));
290
+ }).pipe(Effect.interruptible, Effect.tapErrorCause(handleCause(nodeResponse, response)));
290
291
  });
291
292
  }
292
293
  case "Stream":
293
294
  {
294
295
  nodeResponse.writeHead(response.status, headers);
295
- return body.stream.pipe(Stream.orDie, Stream.runForEachChunk(chunk => Effect.async(resume => {
296
+ const drainLatch = Effect.unsafeMakeLatch();
297
+ nodeResponse.on("drain", () => drainLatch.unsafeOpen());
298
+ return body.stream.pipe(Stream.orDie, Stream.runForEachChunk(chunk => {
296
299
  const array = Chunk.toReadonlyArray(chunk);
297
- if (array.length === 0) {
298
- resume(Effect.void);
299
- return;
300
+ if (array.length === 0) return Effect.void;
301
+ let needDrain = false;
302
+ for (let i = 0; i < array.length; i++) {
303
+ const written = nodeResponse.write(array[i]);
304
+ if (!written && !needDrain) {
305
+ needDrain = true;
306
+ drainLatch.unsafeClose();
307
+ } else if (written && needDrain) {
308
+ needDrain = false;
309
+ }
300
310
  }
301
- for (let i = 0; i < array.length - 1; i++) {
302
- nodeResponse.write(array[i]);
303
- }
304
- nodeResponse.write(array[array.length - 1], () => resume(Effect.void));
305
- })), Effect.interruptible, Effect.matchCauseEffect({
311
+ if (!needDrain) return Effect.void;
312
+ return drainLatch.await;
313
+ }), Effect.interruptible, Effect.matchCauseEffect({
306
314
  onSuccess: () => Effect.sync(() => nodeResponse.end()),
307
- onFailure: handleCause(nodeResponse)
315
+ onFailure: handleCause(nodeResponse, response)
308
316
  }));
309
317
  }
310
318
  }
311
319
  });
312
- const handleCause = nodeResponse => cause => Error.causeResponse(cause).pipe(Effect.flatMap(([response, cause]) => {
313
- if (!nodeResponse.headersSent) {
320
+ const handleCause = (nodeResponse, original) => originalCause => Error.causeResponse(originalCause).pipe(Effect.flatMap(([response, cause]) => {
321
+ const headersSent = nodeResponse.headersSent;
322
+ if (!headersSent) {
314
323
  nodeResponse.writeHead(response.status);
315
324
  }
316
325
  if (!nodeResponse.writableEnded) {
317
326
  nodeResponse.end();
318
327
  }
319
- return Effect.failCause(cause);
328
+ return Effect.failCause(headersSent ? Cause.sequential(originalCause, Cause.die(original)) : cause);
320
329
  }));
321
330
  /** @internal */
322
331
  export const toIncomingMessage = self => self.source;
@@ -1 +1 @@
1
- {"version":3,"file":"httpServer.js","names":["MultipartNode","Cookies","Etag","FileSystem","App","IncomingMessage","Server","Error","ServerRequest","Socket","Chunk","Config","Effect","FiberSet","pipe","Layer","Option","Runtime","Scope","Stream","Http","Readable","pipeline","WS","NodeContext","NodeHttpClient","HttpIncomingMessageImpl","internalPlatform","make","evaluate","options","gen","scope","server","acquireRelease","sync","async","resume","listening","void","close","error","die","onError","cause","fail","ServeError","on","listen","off","address","wss","WebSocketServer","noServer","extend","cached","_tag","path","hostname","port","serve","httpApp","middleware","handler","makeHandler","upgradeHandler","makeUpgradeHandler","addFinalizer","provideService","MaxBodySize","some","Size","handledApp","toHandled","handleResponse","map","runtime","runFork","nodeRequest","nodeResponse","fiber","HttpServerRequest","ServerRequestImpl","writableEnded","unsafeInterruptAsFork","clientAbortFiberId","lazyWss","makeRuntime","socket","head","nodeResponse_","undefined","ServerResponse","assignSocket","end","upgradeEffect","fromWebSocket","flatMap","handleUpgrade","ws","succeed","source","response","url","headersOverride","TypeId","constructor","remoteAddressOverride","RequestError","request","reason","cachedCookies","cookies","parseHeader","headers","cookie","resolvedResponse","modify","remoteAddress","originalUrl","method","toUpperCase","multipartEffect","multipart","runSync","persisted","multipartStream","stream","upgrade","description","toString","toJSON","inspect","_id","layerServer","scoped","HttpServer","layerContext","mergeAll","layer","layerWeak","layerTest","layerTestClient","provide","layerWithoutAgent","makeAgentLayer","keepAlive","provideMerge","createServer","layerConfig","unwrap","suspend","isEmpty","toSet","toSetCookieHeaders","push","writeHead","status","body","tryPromise","try","signal","catch","ResponseError","interruptible","tapErrorCause","handleCause","r","Response","formData","Object","fromEntries","fromWeb","once","orDie","runForEachChunk","chunk","array","toReadonlyArray","length","i","write","matchCauseEffect","onSuccess","onFailure","causeResponse","headersSent","failCause","toIncomingMessage","self","toServerResponse","res"],"sources":["../../../src/internal/httpServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"httpServer.js","names":["MultipartNode","Cookies","Etag","FileSystem","App","IncomingMessage","Server","Error","ServerRequest","Socket","Cause","Chunk","Config","Effect","FiberSet","pipe","Layer","Option","Runtime","Scope","Stream","Http","Readable","pipeline","WS","NodeContext","NodeHttpClient","HttpIncomingMessageImpl","internalPlatform","make","evaluate","options","gen","scope","server","acquireRelease","sync","async","resume","listening","void","close","error","die","onError","cause","fail","ServeError","on","listen","off","address","wss","WebSocketServer","noServer","extend","cached","_tag","path","hostname","port","serve","httpApp","middleware","handler","makeHandler","upgradeHandler","makeUpgradeHandler","addFinalizer","provideService","MaxBodySize","some","Size","handledApp","toHandled","handleResponse","map","runtime","runFork","nodeRequest","nodeResponse","fiber","HttpServerRequest","ServerRequestImpl","writableEnded","unsafeInterruptAsFork","clientAbortFiberId","lazyWss","makeRuntime","socket","head","nodeResponse_","undefined","ServerResponse","assignSocket","end","upgradeEffect","fromWebSocket","flatMap","handleUpgrade","ws","succeed","source","response","url","headersOverride","TypeId","constructor","remoteAddressOverride","RequestError","request","reason","cachedCookies","cookies","parseHeader","headers","cookie","resolvedResponse","modify","remoteAddress","originalUrl","method","toUpperCase","multipartEffect","multipart","runSync","persisted","multipartStream","stream","upgrade","description","toString","toJSON","inspect","_id","layerServer","scoped","HttpServer","layerContext","mergeAll","layer","layerWeak","layerTest","layerTestClient","provide","layerWithoutAgent","makeAgentLayer","keepAlive","provideMerge","createServer","layerConfig","unwrap","suspend","isEmpty","toSet","toSetCookieHeaders","push","writeHead","status","body","tryPromise","try","signal","catch","ResponseError","interruptible","tapErrorCause","handleCause","r","Response","formData","Object","fromEntries","fromWeb","once","drainLatch","unsafeMakeLatch","unsafeOpen","orDie","runForEachChunk","chunk","array","toReadonlyArray","length","needDrain","i","written","write","unsafeClose","await","matchCauseEffect","onSuccess","onFailure","original","originalCause","causeResponse","headersSent","failCause","sequential","toIncomingMessage","self","toServerResponse","res"],"sources":["../../../src/internal/httpServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform-node",
3
- "version": "0.101.1",
3
+ "version": "0.102.0",
4
4
  "description": "Platform specific implementations for the Node.js runtime",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -14,14 +14,14 @@
14
14
  "mime": "^3.0.0",
15
15
  "undici": "^7.10.0",
16
16
  "ws": "^8.18.2",
17
- "@effect/platform-node-shared": "^0.54.0"
17
+ "@effect/platform-node-shared": "^0.55.0"
18
18
  },
19
19
  "peerDependencies": {
20
- "@effect/platform": "^0.93.3",
20
+ "@effect/cluster": "^0.54.0",
21
+ "@effect/platform": "^0.93.5",
21
22
  "@effect/rpc": "^0.72.2",
22
- "@effect/cluster": "^0.53.4",
23
- "@effect/sql": "^0.48.0",
24
- "effect": "^3.19.6"
23
+ "@effect/sql": "^0.48.5",
24
+ "effect": "^3.19.8"
25
25
  },
26
26
  "publishConfig": {
27
27
  "provenance": true
@@ -14,7 +14,7 @@ import type * as ServerResponse from "@effect/platform/HttpServerResponse"
14
14
  import type * as Multipart from "@effect/platform/Multipart"
15
15
  import type * as Path from "@effect/platform/Path"
16
16
  import * as Socket from "@effect/platform/Socket"
17
- import type * as Cause from "effect/Cause"
17
+ import * as Cause from "effect/Cause"
18
18
  import * as Chunk from "effect/Chunk"
19
19
  import * as Config from "effect/Config"
20
20
  import * as Effect from "effect/Effect"
@@ -410,7 +410,7 @@ const handleResponse = (request: ServerRequest.HttpServerRequest, response: Serv
410
410
  })
411
411
  }).pipe(
412
412
  Effect.interruptible,
413
- Effect.tapErrorCause(handleCause(nodeResponse))
413
+ Effect.tapErrorCause(handleCause(nodeResponse, response))
414
414
  )
415
415
  }
416
416
  return Effect.async<void>((resume) => {
@@ -448,47 +448,61 @@ const handleResponse = (request: ServerRequest.HttpServerRequest, response: Serv
448
448
  })
449
449
  }).pipe(
450
450
  Effect.interruptible,
451
- Effect.tapErrorCause(handleCause(nodeResponse))
451
+ Effect.tapErrorCause(handleCause(nodeResponse, response))
452
452
  )
453
453
  })
454
454
  }
455
455
  case "Stream": {
456
456
  nodeResponse.writeHead(response.status, headers)
457
+ const drainLatch = Effect.unsafeMakeLatch()
458
+ nodeResponse.on("drain", () => drainLatch.unsafeOpen())
457
459
  return body.stream.pipe(
458
460
  Stream.orDie,
459
- Stream.runForEachChunk((chunk) =>
460
- Effect.async<void>((resume) => {
461
- const array = Chunk.toReadonlyArray(chunk)
462
- if (array.length === 0) {
463
- resume(Effect.void)
464
- return
465
- }
466
- for (let i = 0; i < array.length - 1; i++) {
467
- nodeResponse.write(array[i])
461
+ Stream.runForEachChunk((chunk) => {
462
+ const array = Chunk.toReadonlyArray(chunk)
463
+ if (array.length === 0) return Effect.void
464
+ let needDrain = false
465
+ for (let i = 0; i < array.length; i++) {
466
+ const written = nodeResponse.write(array[i])
467
+ if (!written && !needDrain) {
468
+ needDrain = true
469
+ drainLatch.unsafeClose()
470
+ } else if (written && needDrain) {
471
+ needDrain = false
468
472
  }
469
- nodeResponse.write(array[array.length - 1], () => resume(Effect.void))
470
- })
471
- ),
473
+ }
474
+ if (!needDrain) return Effect.void
475
+ return drainLatch.await
476
+ }),
472
477
  Effect.interruptible,
473
478
  Effect.matchCauseEffect({
474
479
  onSuccess: () => Effect.sync(() => nodeResponse.end()),
475
- onFailure: handleCause(nodeResponse)
480
+ onFailure: handleCause(nodeResponse, response)
476
481
  })
477
482
  )
478
483
  }
479
484
  }
480
485
  })
481
486
 
482
- const handleCause = (nodeResponse: Http.ServerResponse) => <E>(cause: Cause.Cause<E>) =>
483
- Error.causeResponse(cause).pipe(
487
+ const handleCause = (
488
+ nodeResponse: Http.ServerResponse,
489
+ original: ServerResponse.HttpServerResponse
490
+ ) =>
491
+ <E>(originalCause: Cause.Cause<E>) =>
492
+ Error.causeResponse(originalCause).pipe(
484
493
  Effect.flatMap(([response, cause]) => {
485
- if (!nodeResponse.headersSent) {
494
+ const headersSent = nodeResponse.headersSent
495
+ if (!headersSent) {
486
496
  nodeResponse.writeHead(response.status)
487
497
  }
488
498
  if (!nodeResponse.writableEnded) {
489
499
  nodeResponse.end()
490
500
  }
491
- return Effect.failCause(cause)
501
+ return Effect.failCause(
502
+ headersSent
503
+ ? Cause.sequential(originalCause, Cause.die(original))
504
+ : cause
505
+ )
492
506
  })
493
507
  )
494
508