@effect/platform 0.23.0 → 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.
- package/FileSystem/dist/effect-platform-FileSystem.cjs.dev.js +13 -5
- package/FileSystem/dist/effect-platform-FileSystem.cjs.prod.js +13 -5
- package/FileSystem/dist/effect-platform-FileSystem.esm.js +11 -5
- package/Http/App/dist/effect-platform-Http-App.cjs.dev.js +6 -5
- package/Http/App/dist/effect-platform-Http-App.cjs.prod.js +6 -5
- package/Http/App/dist/effect-platform-Http-App.esm.js +6 -5
- package/Http/Body/dist/effect-platform-Http-Body.cjs.dev.js +4 -2
- package/Http/Body/dist/effect-platform-Http-Body.cjs.prod.js +4 -2
- package/Http/Body/dist/effect-platform-Http-Body.esm.js +4 -2
- package/Http/Client/dist/effect-platform-Http-Client.cjs.dev.js +5 -4
- package/Http/Client/dist/effect-platform-Http-Client.cjs.prod.js +5 -4
- package/Http/Client/dist/effect-platform-Http-Client.esm.js +5 -4
- package/Http/ClientRequest/dist/effect-platform-Http-ClientRequest.cjs.dev.js +4 -3
- package/Http/ClientRequest/dist/effect-platform-Http-ClientRequest.cjs.prod.js +4 -3
- package/Http/ClientRequest/dist/effect-platform-Http-ClientRequest.esm.js +4 -3
- package/Http/ClientResponse/dist/effect-platform-Http-ClientResponse.cjs.dev.js +3 -2
- package/Http/ClientResponse/dist/effect-platform-Http-ClientResponse.cjs.prod.js +3 -2
- package/Http/ClientResponse/dist/effect-platform-Http-ClientResponse.esm.js +3 -2
- package/Http/FormData/dist/effect-platform-Http-FormData.cjs.dev.js +2 -1
- package/Http/FormData/dist/effect-platform-Http-FormData.cjs.prod.js +2 -1
- package/Http/FormData/dist/effect-platform-Http-FormData.esm.js +2 -1
- package/Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.dev.js +2 -0
- package/Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.cjs.prod.js +2 -0
- package/Http/IncomingMessage/dist/effect-platform-Http-IncomingMessage.esm.js +2 -0
- package/Http/Middleware/dist/effect-platform-Http-Middleware.cjs.dev.js +10 -7
- package/Http/Middleware/dist/effect-platform-Http-Middleware.cjs.mjs +2 -0
- package/Http/Middleware/dist/effect-platform-Http-Middleware.cjs.prod.js +10 -7
- package/Http/Middleware/dist/effect-platform-Http-Middleware.esm.js +8 -7
- package/Http/Platform/dist/effect-platform-Http-Platform.cjs.dev.js +2 -0
- package/Http/Platform/dist/effect-platform-Http-Platform.cjs.prod.js +2 -0
- package/Http/Platform/dist/effect-platform-Http-Platform.esm.js +2 -0
- package/Http/Router/dist/effect-platform-Http-Router.cjs.dev.js +4 -3
- package/Http/Router/dist/effect-platform-Http-Router.cjs.prod.js +4 -3
- package/Http/Router/dist/effect-platform-Http-Router.esm.js +4 -3
- package/Http/ServerRequest/dist/effect-platform-Http-ServerRequest.cjs.dev.js +3 -2
- package/Http/ServerRequest/dist/effect-platform-Http-ServerRequest.cjs.prod.js +3 -2
- package/Http/ServerRequest/dist/effect-platform-Http-ServerRequest.esm.js +3 -2
- package/Http/ServerResponse/dist/effect-platform-Http-ServerResponse.cjs.dev.js +4 -3
- package/Http/ServerResponse/dist/effect-platform-Http-ServerResponse.cjs.prod.js +4 -3
- package/Http/ServerResponse/dist/effect-platform-Http-ServerResponse.esm.js +4 -3
- package/HttpClient/dist/effect-platform-HttpClient.cjs.dev.js +9 -8
- package/HttpClient/dist/effect-platform-HttpClient.cjs.prod.js +9 -8
- package/HttpClient/dist/effect-platform-HttpClient.esm.js +9 -8
- package/HttpServer/dist/effect-platform-HttpServer.cjs.dev.js +11 -10
- package/HttpServer/dist/effect-platform-HttpServer.cjs.prod.js +11 -10
- package/HttpServer/dist/effect-platform-HttpServer.esm.js +11 -10
- package/KeyValueStore/dist/effect-platform-KeyValueStore.cjs.dev.js +2 -0
- package/KeyValueStore/dist/effect-platform-KeyValueStore.cjs.prod.js +2 -0
- package/KeyValueStore/dist/effect-platform-KeyValueStore.esm.js +2 -0
- package/dist/{App-2d206a13.esm.js → App-65b1c523.esm.js} +1 -1
- package/dist/{App-bad10dc1.cjs.dev.js → App-7d2be5ad.cjs.dev.js} +1 -1
- package/dist/{App-7ef679dc.cjs.prod.js → App-8a42ebfd.cjs.prod.js} +1 -1
- package/dist/{Body-c26fa93f.cjs.prod.js → Body-bf109de0.cjs.prod.js} +1 -1
- package/dist/{Body-40ced606.esm.js → Body-e69a4f4c.esm.js} +1 -1
- package/dist/{Body-4a7ad057.cjs.dev.js → Body-f4eb1a35.cjs.dev.js} +1 -1
- package/dist/{Client-e9835f16.cjs.prod.js → Client-5f6bb294.cjs.prod.js} +3 -3
- package/dist/{Client-4f8f804b.esm.js → Client-c42a5e4a.esm.js} +3 -3
- package/dist/{Client-0146412d.cjs.dev.js → Client-ec7b3df5.cjs.dev.js} +3 -3
- package/dist/{ClientRequest-c5336a28.cjs.dev.js → ClientRequest-4c64deb3.cjs.dev.js} +1 -1
- package/dist/{ClientRequest-a729f345.cjs.prod.js → ClientRequest-71df9f94.cjs.prod.js} +1 -1
- package/dist/{ClientRequest-27630c54.esm.js → ClientRequest-dc3e2234.esm.js} +1 -1
- package/dist/{ClientResponse-d013f94d.cjs.dev.js → ClientResponse-71e7e945.cjs.dev.js} +1 -1
- package/dist/{ClientResponse-52489a0b.cjs.prod.js → ClientResponse-b144d841.cjs.prod.js} +1 -1
- package/dist/{ClientResponse-862f0a17.esm.js → ClientResponse-e2d63169.esm.js} +1 -1
- package/dist/{Middleware-e53794a3.cjs.prod.js → Middleware-12cd1708.cjs.prod.js} +17 -1
- package/dist/{Middleware-a2c50c35.cjs.dev.js → Middleware-6033b095.cjs.dev.js} +17 -1
- package/dist/Middleware-a234a3bd.esm.js +55 -0
- package/dist/{Router-3645c2b3.cjs.prod.js → Router-0e88c7bd.cjs.prod.js} +1 -1
- package/dist/{Router-2505b5dd.esm.js → Router-4e5dfda7.esm.js} +1 -1
- package/dist/{Router-b9feed01.cjs.dev.js → Router-e91081b8.cjs.dev.js} +1 -1
- package/dist/{ServerRequest-078a4bb2.esm.js → ServerRequest-818d861a.esm.js} +1 -1
- package/dist/{ServerRequest-705b12bb.cjs.prod.js → ServerRequest-bea4cd33.cjs.prod.js} +1 -1
- package/dist/{ServerRequest-8e9629a5.cjs.dev.js → ServerRequest-c5471023.cjs.dev.js} +1 -1
- package/dist/{ServerResponse-db87bde2.cjs.prod.js → ServerResponse-affbb013.cjs.prod.js} +1 -1
- package/dist/{ServerResponse-de572c21.esm.js → ServerResponse-e5363221.esm.js} +1 -1
- package/dist/{ServerResponse-9af42ecb.cjs.dev.js → ServerResponse-fd3740b3.cjs.dev.js} +1 -1
- package/dist/{clientRequest-dae0c34e.cjs.dev.js → clientRequest-07f3c216.cjs.dev.js} +1 -1
- package/dist/{clientRequest-fe7578cf.esm.js → clientRequest-24b9b51c.esm.js} +1 -1
- package/dist/{clientRequest-539df396.cjs.prod.js → clientRequest-d5011790.cjs.prod.js} +1 -1
- package/dist/declarations/src/Http/Middleware.d.ts +15 -0
- package/dist/declarations/src/Http/Middleware.d.ts.map +1 -1
- package/dist/{middleware-98794cc2.cjs.dev.js → middleware-5fc689fd.cjs.dev.js} +25 -9
- package/dist/{middleware-85768a1e.cjs.prod.js → middleware-aa67276a.cjs.prod.js} +25 -9
- package/dist/{middleware-ea618e68.esm.js → middleware-f2836150.esm.js} +23 -10
- package/package.json +1 -1
- package/src/Http/Middleware.ts +15 -0
- package/src/internal/fileSystem.ts +28 -14
- package/src/internal/http/middleware.ts +34 -11
- package/dist/Middleware-934a0c8f.esm.js +0 -41
- /package/dist/{FormData-7ea13198.cjs.dev.js → FormData-32cdf056.cjs.dev.js} +0 -0
- /package/dist/{FormData-6d030595.cjs.prod.js → FormData-4f356055.cjs.prod.js} +0 -0
- /package/dist/{FormData-bd727d2f.esm.js → FormData-9b480115.esm.js} +0 -0
- /package/dist/{body-db8cfb3d.esm.js → body-752ece55.esm.js} +0 -0
- /package/dist/{body-cea7c1c9.cjs.dev.js → body-a150eddc.cjs.dev.js} +0 -0
- /package/dist/{body-95276637.cjs.prod.js → body-c9112f14.cjs.prod.js} +0 -0
- /package/dist/{clientResponse-41725dd3.cjs.prod.js → clientResponse-81f7b8b7.cjs.prod.js} +0 -0
- /package/dist/{clientResponse-23f1ffca.esm.js → clientResponse-ef21b8ba.esm.js} +0 -0
- /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-
|
|
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 =>
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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-
|
|
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 =>
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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-
|
|
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 =>
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
package/src/Http/Middleware.ts
CHANGED
|
@@ -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 =
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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 };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|