@effect/platform 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 (98) hide show
  1. package/FileSystem/dist/effect-platform-FileSystem.cjs.dev.js +13 -5
  2. package/FileSystem/dist/effect-platform-FileSystem.cjs.prod.js +13 -5
  3. package/FileSystem/dist/effect-platform-FileSystem.esm.js +11 -5
  4. package/Http/App/dist/effect-platform-Http-App.cjs.dev.js +6 -5
  5. package/Http/App/dist/effect-platform-Http-App.cjs.prod.js +6 -5
  6. package/Http/App/dist/effect-platform-Http-App.esm.js +6 -5
  7. package/Http/Body/dist/effect-platform-Http-Body.cjs.dev.js +4 -2
  8. package/Http/Body/dist/effect-platform-Http-Body.cjs.prod.js +4 -2
  9. package/Http/Body/dist/effect-platform-Http-Body.esm.js +4 -2
  10. package/Http/Client/dist/effect-platform-Http-Client.cjs.dev.js +5 -4
  11. package/Http/Client/dist/effect-platform-Http-Client.cjs.prod.js +5 -4
  12. package/Http/Client/dist/effect-platform-Http-Client.esm.js +5 -4
  13. package/Http/ClientRequest/dist/effect-platform-Http-ClientRequest.cjs.dev.js +4 -3
  14. package/Http/ClientRequest/dist/effect-platform-Http-ClientRequest.cjs.prod.js +4 -3
  15. package/Http/ClientRequest/dist/effect-platform-Http-ClientRequest.esm.js +4 -3
  16. package/Http/ClientResponse/dist/effect-platform-Http-ClientResponse.cjs.dev.js +3 -2
  17. package/Http/ClientResponse/dist/effect-platform-Http-ClientResponse.cjs.prod.js +3 -2
  18. package/Http/ClientResponse/dist/effect-platform-Http-ClientResponse.esm.js +3 -2
  19. package/Http/FormData/dist/effect-platform-Http-FormData.cjs.dev.js +2 -1
  20. package/Http/FormData/dist/effect-platform-Http-FormData.cjs.prod.js +2 -1
  21. package/Http/FormData/dist/effect-platform-Http-FormData.esm.js +2 -1
  22. package/Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.dev.js +2 -0
  23. package/Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.prod.js +2 -0
  24. package/Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.esm.js +2 -0
  25. package/Http/Middleware/dist/effect-platform-Http-Middleware.cjs.dev.js +10 -7
  26. package/Http/Middleware/dist/effect-platform-Http-Middleware.cjs.mjs +2 -0
  27. package/Http/Middleware/dist/effect-platform-Http-Middleware.cjs.prod.js +10 -7
  28. package/Http/Middleware/dist/effect-platform-Http-Middleware.esm.js +8 -7
  29. package/Http/Platform/dist/effect-platform-Http-Platform.cjs.dev.js +2 -0
  30. package/Http/Platform/dist/effect-platform-Http-Platform.cjs.prod.js +2 -0
  31. package/Http/Platform/dist/effect-platform-Http-Platform.esm.js +2 -0
  32. package/Http/Router/dist/effect-platform-Http-Router.cjs.dev.js +4 -3
  33. package/Http/Router/dist/effect-platform-Http-Router.cjs.prod.js +4 -3
  34. package/Http/Router/dist/effect-platform-Http-Router.esm.js +4 -3
  35. package/Http/ServerRequest/dist/effect-platform-Http-ServerRequest.cjs.dev.js +3 -2
  36. package/Http/ServerRequest/dist/effect-platform-Http-ServerRequest.cjs.prod.js +3 -2
  37. package/Http/ServerRequest/dist/effect-platform-Http-ServerRequest.esm.js +3 -2
  38. package/Http/ServerResponse/dist/effect-platform-Http-ServerResponse.cjs.dev.js +4 -3
  39. package/Http/ServerResponse/dist/effect-platform-Http-ServerResponse.cjs.prod.js +4 -3
  40. package/Http/ServerResponse/dist/effect-platform-Http-ServerResponse.esm.js +4 -3
  41. package/HttpClient/dist/effect-platform-HttpClient.cjs.dev.js +9 -8
  42. package/HttpClient/dist/effect-platform-HttpClient.cjs.prod.js +9 -8
  43. package/HttpClient/dist/effect-platform-HttpClient.esm.js +9 -8
  44. package/HttpServer/dist/effect-platform-HttpServer.cjs.dev.js +11 -10
  45. package/HttpServer/dist/effect-platform-HttpServer.cjs.prod.js +11 -10
  46. package/HttpServer/dist/effect-platform-HttpServer.esm.js +11 -10
  47. package/KeyValueStore/dist/effect-platform-KeyValueStore.cjs.dev.js +2 -0
  48. package/KeyValueStore/dist/effect-platform-KeyValueStore.cjs.prod.js +2 -0
  49. package/KeyValueStore/dist/effect-platform-KeyValueStore.esm.js +2 -0
  50. package/dist/{App-2d206a13.esm.js → App-65b1c523.esm.js} +1 -1
  51. package/dist/{App-bad10dc1.cjs.dev.js → App-7d2be5ad.cjs.dev.js} +1 -1
  52. package/dist/{App-7ef679dc.cjs.prod.js → App-8a42ebfd.cjs.prod.js} +1 -1
  53. package/dist/{Body-c26fa93f.cjs.prod.js → Body-bf109de0.cjs.prod.js} +1 -1
  54. package/dist/{Body-40ced606.esm.js → Body-e69a4f4c.esm.js} +1 -1
  55. package/dist/{Body-4a7ad057.cjs.dev.js → Body-f4eb1a35.cjs.dev.js} +1 -1
  56. package/dist/{Client-e9835f16.cjs.prod.js → Client-5f6bb294.cjs.prod.js} +3 -3
  57. package/dist/{Client-4f8f804b.esm.js → Client-c42a5e4a.esm.js} +3 -3
  58. package/dist/{Client-0146412d.cjs.dev.js → Client-ec7b3df5.cjs.dev.js} +3 -3
  59. package/dist/{ClientRequest-c5336a28.cjs.dev.js → ClientRequest-4c64deb3.cjs.dev.js} +1 -1
  60. package/dist/{ClientRequest-a729f345.cjs.prod.js → ClientRequest-71df9f94.cjs.prod.js} +1 -1
  61. package/dist/{ClientRequest-27630c54.esm.js → ClientRequest-dc3e2234.esm.js} +1 -1
  62. package/dist/{ClientResponse-d013f94d.cjs.dev.js → ClientResponse-71e7e945.cjs.dev.js} +1 -1
  63. package/dist/{ClientResponse-52489a0b.cjs.prod.js → ClientResponse-b144d841.cjs.prod.js} +1 -1
  64. package/dist/{ClientResponse-862f0a17.esm.js → ClientResponse-e2d63169.esm.js} +1 -1
  65. package/dist/{Middleware-e53794a3.cjs.prod.js → Middleware-12cd1708.cjs.prod.js} +17 -1
  66. package/dist/{Middleware-a2c50c35.cjs.dev.js → Middleware-6033b095.cjs.dev.js} +17 -1
  67. package/dist/Middleware-a234a3bd.esm.js +55 -0
  68. package/dist/{Router-3645c2b3.cjs.prod.js → Router-0e88c7bd.cjs.prod.js} +1 -1
  69. package/dist/{Router-2505b5dd.esm.js → Router-4e5dfda7.esm.js} +1 -1
  70. package/dist/{Router-b9feed01.cjs.dev.js → Router-e91081b8.cjs.dev.js} +1 -1
  71. package/dist/{ServerRequest-078a4bb2.esm.js → ServerRequest-818d861a.esm.js} +1 -1
  72. package/dist/{ServerRequest-705b12bb.cjs.prod.js → ServerRequest-bea4cd33.cjs.prod.js} +1 -1
  73. package/dist/{ServerRequest-8e9629a5.cjs.dev.js → ServerRequest-c5471023.cjs.dev.js} +1 -1
  74. package/dist/{ServerResponse-db87bde2.cjs.prod.js → ServerResponse-affbb013.cjs.prod.js} +1 -1
  75. package/dist/{ServerResponse-de572c21.esm.js → ServerResponse-e5363221.esm.js} +1 -1
  76. package/dist/{ServerResponse-9af42ecb.cjs.dev.js → ServerResponse-fd3740b3.cjs.dev.js} +1 -1
  77. package/dist/{clientRequest-dae0c34e.cjs.dev.js → clientRequest-07f3c216.cjs.dev.js} +1 -1
  78. package/dist/{clientRequest-fe7578cf.esm.js → clientRequest-24b9b51c.esm.js} +1 -1
  79. package/dist/{clientRequest-539df396.cjs.prod.js → clientRequest-d5011790.cjs.prod.js} +1 -1
  80. package/dist/declarations/src/Http/Middleware.d.ts +15 -0
  81. package/dist/declarations/src/Http/Middleware.d.ts.map +1 -1
  82. package/dist/{middleware-98794cc2.cjs.dev.js → middleware-5fc689fd.cjs.dev.js} +25 -9
  83. package/dist/{middleware-85768a1e.cjs.prod.js → middleware-aa67276a.cjs.prod.js} +25 -9
  84. package/dist/{middleware-ea618e68.esm.js → middleware-f2836150.esm.js} +23 -10
  85. package/package.json +5 -5
  86. package/src/Http/Middleware.ts +15 -0
  87. package/src/internal/fileSystem.ts +28 -14
  88. package/src/internal/http/middleware.ts +34 -11
  89. package/dist/Middleware-934a0c8f.esm.js +0 -41
  90. /package/dist/{FormData-7ea13198.cjs.dev.js → FormData-32cdf056.cjs.dev.js} +0 -0
  91. /package/dist/{FormData-6d030595.cjs.prod.js → FormData-4f356055.cjs.prod.js} +0 -0
  92. /package/dist/{FormData-bd727d2f.esm.js → FormData-9b480115.esm.js} +0 -0
  93. /package/dist/{body-db8cfb3d.esm.js → body-752ece55.esm.js} +0 -0
  94. /package/dist/{body-cea7c1c9.cjs.dev.js → body-a150eddc.cjs.dev.js} +0 -0
  95. /package/dist/{body-95276637.cjs.prod.js → body-c9112f14.cjs.prod.js} +0 -0
  96. /package/dist/{clientResponse-41725dd3.cjs.prod.js → clientResponse-81f7b8b7.cjs.prod.js} +0 -0
  97. /package/dist/{clientResponse-23f1ffca.esm.js → clientResponse-ef21b8ba.esm.js} +0 -0
  98. /package/dist/{clientResponse-5b8658b6.cjs.dev.js → clientResponse-fa64515b.cjs.dev.js} +0 -0
@@ -1,9 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var Effect = require('effect/Effect');
4
+ var FiberRef = require('effect/FiberRef');
5
+ var Global = require('effect/GlobalValue');
4
6
  var Http_Headers_dist_effectPlatformHttpHeaders = require('./Headers-f56bc667.cjs.dev.js');
5
7
  var Http_IncomingMessage_dist_effectPlatformHttpIncomingMessage = require('../Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.dev.js');
6
- var Http_ServerRequest_dist_effectPlatformHttpServerRequest = require('./ServerRequest-8e9629a5.cjs.dev.js');
8
+ var Http_ServerRequest_dist_effectPlatformHttpServerRequest = require('./ServerRequest-c5471023.cjs.dev.js');
7
9
 
8
10
  function _interopNamespace(e) {
9
11
  if (e && e.__esModule) return e;
@@ -24,21 +26,33 @@ function _interopNamespace(e) {
24
26
  }
25
27
 
26
28
  var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
29
+ var FiberRef__namespace = /*#__PURE__*/_interopNamespace(FiberRef);
27
30
 
28
31
  /** @internal */
29
32
  const make = middleware => middleware;
30
33
 
34
+ /** @internal */
35
+ const loggerDisabled = /*#__PURE__*/Global.globalValue( /*#__PURE__*/Symbol.for("@effect/platform/Http/Middleware/loggerDisabled"), () => FiberRef__namespace.unsafeMake(false));
36
+
37
+ /** @internal */
38
+ const withLoggerDisabled = self => Effect__namespace.zipRight(FiberRef__namespace.set(loggerDisabled, true), self);
39
+
31
40
  /** @internal */
32
41
  const logger = /*#__PURE__*/make(httpApp => {
33
42
  let counter = 0;
34
- return Effect__namespace.flatMap(Http_ServerRequest_dist_effectPlatformHttpServerRequest.ServerRequest, request => Effect__namespace.withLogSpan(Effect__namespace.onExit(httpApp, exit => exit._tag === "Failure" ? Effect__namespace.annotateLogs(Effect__namespace.log(exit.cause), {
35
- "http.method": request.method,
36
- "http.url": request.url,
37
- "http.status": 500
38
- }) : Effect__namespace.annotateLogs(Effect__namespace.log(""), {
39
- "http.method": request.method,
40
- "http.url": request.url,
41
- "http.status": exit.value.status
43
+ return Effect__namespace.flatMap(Http_ServerRequest_dist_effectPlatformHttpServerRequest.ServerRequest, request => Effect__namespace.withLogSpan(Effect__namespace.onExit(httpApp, exit => Effect__namespace.flatMap(FiberRef__namespace.get(loggerDisabled), disabled => {
44
+ if (disabled) {
45
+ return Effect__namespace.unit;
46
+ }
47
+ return exit._tag === "Failure" ? Effect__namespace.annotateLogs(Effect__namespace.log(exit.cause), {
48
+ "http.method": request.method,
49
+ "http.url": request.url,
50
+ "http.status": 500
51
+ }) : Effect__namespace.annotateLogs(Effect__namespace.log(""), {
52
+ "http.method": request.method,
53
+ "http.url": request.url,
54
+ "http.status": exit.value.status
55
+ });
42
56
  })), `http.span.${++counter}`));
43
57
  });
44
58
 
@@ -61,6 +75,8 @@ const xForwardedHeaders = /*#__PURE__*/make(httpApp => Effect__namespace.updateS
61
75
  }) : request));
62
76
 
63
77
  exports.logger = logger;
78
+ exports.loggerDisabled = loggerDisabled;
64
79
  exports.make = make;
65
80
  exports.tracer = tracer;
81
+ exports.withLoggerDisabled = withLoggerDisabled;
66
82
  exports.xForwardedHeaders = xForwardedHeaders;
@@ -1,9 +1,11 @@
1
1
  'use strict';
2
2
 
3
3
  var Effect = require('effect/Effect');
4
+ var FiberRef = require('effect/FiberRef');
5
+ var Global = require('effect/GlobalValue');
4
6
  var Http_Headers_dist_effectPlatformHttpHeaders = require('./Headers-122cb877.cjs.prod.js');
5
7
  var Http_IncomingMessage_dist_effectPlatformHttpIncomingMessage = require('../Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.prod.js');
6
- var Http_ServerRequest_dist_effectPlatformHttpServerRequest = require('./ServerRequest-705b12bb.cjs.prod.js');
8
+ var Http_ServerRequest_dist_effectPlatformHttpServerRequest = require('./ServerRequest-bea4cd33.cjs.prod.js');
7
9
 
8
10
  function _interopNamespace(e) {
9
11
  if (e && e.__esModule) return e;
@@ -24,21 +26,33 @@ function _interopNamespace(e) {
24
26
  }
25
27
 
26
28
  var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
29
+ var FiberRef__namespace = /*#__PURE__*/_interopNamespace(FiberRef);
27
30
 
28
31
  /** @internal */
29
32
  const make = middleware => middleware;
30
33
 
34
+ /** @internal */
35
+ const loggerDisabled = /*#__PURE__*/Global.globalValue( /*#__PURE__*/Symbol.for("@effect/platform/Http/Middleware/loggerDisabled"), () => FiberRef__namespace.unsafeMake(false));
36
+
37
+ /** @internal */
38
+ const withLoggerDisabled = self => Effect__namespace.zipRight(FiberRef__namespace.set(loggerDisabled, true), self);
39
+
31
40
  /** @internal */
32
41
  const logger = /*#__PURE__*/make(httpApp => {
33
42
  let counter = 0;
34
- return Effect__namespace.flatMap(Http_ServerRequest_dist_effectPlatformHttpServerRequest.ServerRequest, request => Effect__namespace.withLogSpan(Effect__namespace.onExit(httpApp, exit => exit._tag === "Failure" ? Effect__namespace.annotateLogs(Effect__namespace.log(exit.cause), {
35
- "http.method": request.method,
36
- "http.url": request.url,
37
- "http.status": 500
38
- }) : Effect__namespace.annotateLogs(Effect__namespace.log(""), {
39
- "http.method": request.method,
40
- "http.url": request.url,
41
- "http.status": exit.value.status
43
+ return Effect__namespace.flatMap(Http_ServerRequest_dist_effectPlatformHttpServerRequest.ServerRequest, request => Effect__namespace.withLogSpan(Effect__namespace.onExit(httpApp, exit => Effect__namespace.flatMap(FiberRef__namespace.get(loggerDisabled), disabled => {
44
+ if (disabled) {
45
+ return Effect__namespace.unit;
46
+ }
47
+ return exit._tag === "Failure" ? Effect__namespace.annotateLogs(Effect__namespace.log(exit.cause), {
48
+ "http.method": request.method,
49
+ "http.url": request.url,
50
+ "http.status": 500
51
+ }) : Effect__namespace.annotateLogs(Effect__namespace.log(""), {
52
+ "http.method": request.method,
53
+ "http.url": request.url,
54
+ "http.status": exit.value.status
55
+ });
42
56
  })), `http.span.${++counter}`));
43
57
  });
44
58
 
@@ -61,6 +75,8 @@ const xForwardedHeaders = /*#__PURE__*/make(httpApp => Effect__namespace.updateS
61
75
  }) : request));
62
76
 
63
77
  exports.logger = logger;
78
+ exports.loggerDisabled = loggerDisabled;
64
79
  exports.make = make;
65
80
  exports.tracer = tracer;
81
+ exports.withLoggerDisabled = withLoggerDisabled;
66
82
  exports.xForwardedHeaders = xForwardedHeaders;
@@ -1,22 +1,35 @@
1
1
  import * as Effect from 'effect/Effect';
2
+ import * as FiberRef from 'effect/FiberRef';
3
+ import { globalValue } from 'effect/GlobalValue';
2
4
  import { s as set } from './Headers-58b56a08.esm.js';
3
5
  import { schemaExternalSpan } from '../Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.esm.js';
4
- import { S as ServerRequest } from './ServerRequest-078a4bb2.esm.js';
6
+ import { S as ServerRequest } from './ServerRequest-818d861a.esm.js';
5
7
 
6
8
  /** @internal */
7
9
  const make = middleware => middleware;
8
10
 
11
+ /** @internal */
12
+ const loggerDisabled = /*#__PURE__*/globalValue( /*#__PURE__*/Symbol.for("@effect/platform/Http/Middleware/loggerDisabled"), () => FiberRef.unsafeMake(false));
13
+
14
+ /** @internal */
15
+ const withLoggerDisabled = self => Effect.zipRight(FiberRef.set(loggerDisabled, true), self);
16
+
9
17
  /** @internal */
10
18
  const logger = /*#__PURE__*/make(httpApp => {
11
19
  let counter = 0;
12
- return Effect.flatMap(ServerRequest, request => Effect.withLogSpan(Effect.onExit(httpApp, exit => exit._tag === "Failure" ? Effect.annotateLogs(Effect.log(exit.cause), {
13
- "http.method": request.method,
14
- "http.url": request.url,
15
- "http.status": 500
16
- }) : Effect.annotateLogs(Effect.log(""), {
17
- "http.method": request.method,
18
- "http.url": request.url,
19
- "http.status": exit.value.status
20
+ return Effect.flatMap(ServerRequest, request => Effect.withLogSpan(Effect.onExit(httpApp, exit => Effect.flatMap(FiberRef.get(loggerDisabled), disabled => {
21
+ if (disabled) {
22
+ return Effect.unit;
23
+ }
24
+ return exit._tag === "Failure" ? Effect.annotateLogs(Effect.log(exit.cause), {
25
+ "http.method": request.method,
26
+ "http.url": request.url,
27
+ "http.status": 500
28
+ }) : Effect.annotateLogs(Effect.log(""), {
29
+ "http.method": request.method,
30
+ "http.url": request.url,
31
+ "http.status": exit.value.status
32
+ });
20
33
  })), `http.span.${++counter}`));
21
34
  });
22
35
 
@@ -38,4 +51,4 @@ const xForwardedHeaders = /*#__PURE__*/make(httpApp => Effect.updateService(http
38
51
  remoteAddress: request.headers["x-forwarded-for"]?.split(",")[0].trim()
39
52
  }) : request));
40
53
 
41
- export { logger as l, make as m, tracer as t, xForwardedHeaders as x };
54
+ export { loggerDisabled as a, logger as l, make as m, tracer as t, withLoggerDisabled as w, xForwardedHeaders as x };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@effect/platform",
3
- "version": "0.22.1",
3
+ "version": "0.23.1",
4
4
  "description": "Unified interfaces for common platform-specific services",
5
5
  "main": "dist/effect-platform.cjs.js",
6
6
  "module": "dist/effect-platform.esm.js",
@@ -34,13 +34,13 @@
34
34
  "path-browserify": "^1.0.1"
35
35
  },
36
36
  "devDependencies": {
37
- "@effect/schema": "^0.43.2",
37
+ "@effect/schema": "^0.44.0",
38
38
  "@types/path-browserify": "^1.0.0",
39
- "effect": "2.0.0-next.48"
39
+ "effect": "2.0.0-next.49"
40
40
  },
41
41
  "peerDependencies": {
42
- "@effect/schema": "^0.43.0",
43
- "effect": "2.0.0-next.48"
42
+ "@effect/schema": "^0.44.0",
43
+ "effect": "2.0.0-next.49"
44
44
  },
45
45
  "files": [
46
46
  "src",
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import type * as Effect from "effect/Effect"
5
+ import type * as FiberRef from "effect/FiberRef"
4
6
  import * as internal from "../internal/http/middleware"
5
7
  import type * as App from "./App"
6
8
 
@@ -36,6 +38,19 @@ export const make: <M extends Middleware>(middleware: M) => M = internal.make
36
38
  */
37
39
  export const logger: <R, E>(httpApp: App.Default<R, E>) => App.Default<R, E> = internal.logger
38
40
 
41
+ /**
42
+ * @since 1.0.0
43
+ * @category fiber refs
44
+ */
45
+ export const loggerDisabled: FiberRef.FiberRef<boolean> = internal.loggerDisabled
46
+
47
+ /**
48
+ * @since 1.0.0
49
+ * @category fiber refs
50
+ */
51
+ export const withLoggerDisabled: <R, E, A>(self: Effect.Effect<R, E, A>) => Effect.Effect<R, E, A> =
52
+ internal.withLoggerDisabled
53
+
39
54
  /**
40
55
  * @since 1.0.0
41
56
  * @category constructors
@@ -1,3 +1,5 @@
1
+ import * as Channel from "effect/Channel"
2
+ import * as Chunk from "effect/Chunk"
1
3
  import { Tag } from "effect/Context"
2
4
  import * as Effect from "effect/Effect"
3
5
  import { identity, pipe } from "effect/Function"
@@ -86,27 +88,39 @@ export const make = (
86
88
 
87
89
  /** @internal */
88
90
  const stream = (file: File, {
89
- bufferSize = 4,
91
+ bufferSize = 16,
90
92
  bytesToRead: bytesToRead_,
91
93
  chunkSize: chunkSize_ = Size(64 * 1024)
92
94
  }: StreamOptions = {}) => {
93
95
  const bytesToRead = bytesToRead_ !== undefined ? Size(bytesToRead_) : undefined
94
96
  const chunkSize = Size(chunkSize_)
95
- return Stream.bufferChunks(
96
- Stream.unfoldEffect(BigInt(0), (totalBytesRead) => {
97
- if (bytesToRead !== undefined && bytesToRead <= totalBytesRead) {
98
- return Effect.succeed(Option.none())
99
- }
100
97
 
101
- const toRead = bytesToRead !== undefined && (bytesToRead - totalBytesRead) < chunkSize
102
- ? bytesToRead - totalBytesRead
103
- : chunkSize
98
+ function loop(
99
+ totalBytesRead: bigint
100
+ ): Channel.Channel<never, unknown, unknown, unknown, Error.PlatformError, Chunk.Chunk<Uint8Array>, void> {
101
+ if (bytesToRead !== undefined && bytesToRead <= totalBytesRead) {
102
+ return Channel.unit
103
+ }
104
104
 
105
- return Effect.map(
106
- file.readAlloc(toRead),
107
- Option.map((buf) => [buf, Size(totalBytesRead + BigInt(buf.length))] as const)
108
- )
109
- }),
105
+ const toRead = bytesToRead !== undefined && (bytesToRead - totalBytesRead) < chunkSize
106
+ ? bytesToRead - totalBytesRead
107
+ : chunkSize
108
+
109
+ return Channel.flatMap(
110
+ file.readAlloc(toRead),
111
+ Option.match({
112
+ onNone: () => Channel.unit,
113
+ onSome: (buf) =>
114
+ Channel.flatMap(
115
+ Channel.write(Chunk.of(buf)),
116
+ (_) => loop(totalBytesRead + BigInt(buf.length))
117
+ )
118
+ })
119
+ )
120
+ }
121
+
122
+ return Stream.bufferChunks(
123
+ Stream.fromChannel(loop(BigInt(0))),
110
124
  { capacity: bufferSize }
111
125
  )
112
126
  }
@@ -1,4 +1,6 @@
1
1
  import * as Effect from "effect/Effect"
2
+ import * as FiberRef from "effect/FiberRef"
3
+ import { globalValue } from "effect/GlobalValue"
2
4
  import * as Headers from "../../Http/Headers"
3
5
  import * as IncomingMessage from "../../Http/IncomingMessage"
4
6
  import type * as Middleware from "../../Http/Middleware"
@@ -7,6 +9,19 @@ import * as ServerRequest from "../../Http/ServerRequest"
7
9
  /** @internal */
8
10
  export const make = <M extends Middleware.Middleware>(middleware: M): M => middleware
9
11
 
12
+ /** @internal */
13
+ export const loggerDisabled = globalValue(
14
+ Symbol.for("@effect/platform/Http/Middleware/loggerDisabled"),
15
+ () => FiberRef.unsafeMake(false)
16
+ )
17
+
18
+ /** @internal */
19
+ export const withLoggerDisabled = <R, E, A>(self: Effect.Effect<R, E, A>): Effect.Effect<R, E, A> =>
20
+ Effect.zipRight(
21
+ FiberRef.set(loggerDisabled, true),
22
+ self
23
+ )
24
+
10
25
  /** @internal */
11
26
  export const logger = make((httpApp) => {
12
27
  let counter = 0
@@ -15,17 +30,25 @@ export const logger = make((httpApp) => {
15
30
  (request) =>
16
31
  Effect.withLogSpan(
17
32
  Effect.onExit(httpApp, (exit) =>
18
- exit._tag === "Failure" ?
19
- Effect.annotateLogs(Effect.log(exit.cause), {
20
- "http.method": request.method,
21
- "http.url": request.url,
22
- "http.status": 500
23
- }) :
24
- Effect.annotateLogs(Effect.log(""), {
25
- "http.method": request.method,
26
- "http.url": request.url,
27
- "http.status": exit.value.status
28
- })),
33
+ Effect.flatMap(
34
+ FiberRef.get(loggerDisabled),
35
+ (disabled) => {
36
+ if (disabled) {
37
+ return Effect.unit
38
+ }
39
+ return exit._tag === "Failure" ?
40
+ Effect.annotateLogs(Effect.log(exit.cause), {
41
+ "http.method": request.method,
42
+ "http.url": request.url,
43
+ "http.status": 500
44
+ }) :
45
+ Effect.annotateLogs(Effect.log(""), {
46
+ "http.method": request.method,
47
+ "http.url": request.url,
48
+ "http.status": exit.value.status
49
+ })
50
+ }
51
+ )),
29
52
  `http.span.${++counter}`
30
53
  )
31
54
  )
@@ -1,41 +0,0 @@
1
- import { m as make$1, l as logger$1, x as xForwardedHeaders$1 } from './middleware-ea618e68.esm.js';
2
-
3
- /**
4
- * @since 1.0.0
5
- */
6
-
7
- /**
8
- * @since 1.0.0
9
- * @category models
10
- */
11
-
12
- /**
13
- * @since 1.0.0
14
- */
15
-
16
- /**
17
- * @since 1.0.0
18
- * @category constructors
19
- */
20
- const make = make$1;
21
-
22
- /**
23
- * @since 1.0.0
24
- * @category constructors
25
- */
26
- const logger = logger$1;
27
-
28
- /**
29
- * @since 1.0.0
30
- * @category constructors
31
- */
32
- const xForwardedHeaders = xForwardedHeaders$1;
33
-
34
- var Middleware = /*#__PURE__*/Object.freeze({
35
- __proto__: null,
36
- make: make,
37
- logger: logger,
38
- xForwardedHeaders: xForwardedHeaders
39
- });
40
-
41
- export { Middleware as M, logger as l, make as m, xForwardedHeaders as x };