@effect/platform-bun 4.0.0-beta.4 → 4.0.0-beta.40
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/dist/BunClusterHttp.d.ts.map +1 -1
- package/dist/BunClusterHttp.js +5 -4
- package/dist/BunClusterHttp.js.map +1 -1
- package/dist/BunHttpServer.d.ts +18 -5
- package/dist/BunHttpServer.d.ts.map +1 -1
- package/dist/BunHttpServer.js +27 -14
- package/dist/BunHttpServer.js.map +1 -1
- package/dist/BunSocket.d.ts +1 -1
- package/dist/BunSocket.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/BunClusterHttp.ts +5 -4
- package/src/BunHttpServer.ts +56 -29
- package/src/BunSocket.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BunClusterHttp.d.ts","sourceRoot":"","sources":["../src/BunClusterHttp.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"BunClusterHttp.d.ts","sourceRoot":"","sources":["../src/BunClusterHttp.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAE5C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAExE,OAAO,KAAK,OAAO,MAAM,iCAAiC,CAAA;AAC1D,OAAO,KAAK,aAAa,MAAM,uCAAuC,CAAA;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,KAAK,cAAc,MAAM,wCAAwC,CAAA;AAGxE,OAAO,KAAK,KAAK,IAAI,MAAM,2BAA2B,CAAA;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA;AACrE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sCAAsC,CAAA;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAG1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAGnD,OAAO;AACL;;;GAGG;AACH,kBAAkB,EACnB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,KAAK,CACrC,YAAY,GACZ,IAAI,CAAC,SAAS,GACd,WAAW,GACX,UAAU,EACZ,UAAU,EACV,cAAc,CAAC,cAAc,CAQV,CAAA;AAErB;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,KAAK,CAAC,UAAU,SAAS,OAAO,GAAG,KAAK,EACxC,KAAK,CAAC,OAAO,SAAS,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,EACrD,SAAS;IACT,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAAA;IACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IAC5C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,eAAe,CAAC,EAAE;QACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACvC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5C,GAAG,SAAS,CAAA;IACb,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,GAAG,SAAS,CAAA;CACxF,KAAG,UAAU,SAAS,IAAI,GAAG,KAAK,CAAC,KAAK,CACrC,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK,GAAG,cAAc,CAAC,cAAc,CAAC,EAC5F,MAAM,CAAC,WAAW,EAClB,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CACd,GACD,KAAK,CAAC,KAAK,CACT,QAAQ,GAAG,OAAO,CAAC,OAAO,GAAG,cAAc,CAAC,cAAc,EAC1D,UAAU,GAAG,MAAM,CAAC,WAAW,EAC/B,OAAO,SAAS,OAAO,GAAG,KAAK,GAC3B,KAAK,SAAS,OAAO,GAAG,CAAC,cAAc,CAAC,cAAc,GAAG,aAAa,CAAC,aAAa,CAAC,GACrF,SAAS,CAiDhB,CAAA"}
|
package/dist/BunClusterHttp.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as Layer from "effect/Layer";
|
|
3
|
+
import * as Option from "effect/Option";
|
|
3
4
|
import * as HttpRunner from "effect/unstable/cluster/HttpRunner";
|
|
4
5
|
import * as MessageStorage from "effect/unstable/cluster/MessageStorage";
|
|
5
6
|
import * as RunnerHealth from "effect/unstable/cluster/RunnerHealth";
|
|
@@ -26,11 +27,11 @@ layerK8sHttpClient };
|
|
|
26
27
|
*/
|
|
27
28
|
export const layerHttpServer = /*#__PURE__*/Effect.gen(function* () {
|
|
28
29
|
const config = yield* ShardingConfig.ShardingConfig;
|
|
29
|
-
const listenAddress = config.runnerListenAddress
|
|
30
|
-
if (listenAddress
|
|
31
|
-
return yield* Effect.die("BunClusterHttp.layerHttpServer: ShardingConfig.runnerAddress is
|
|
30
|
+
const listenAddress = Option.orElse(config.runnerListenAddress, () => config.runnerAddress);
|
|
31
|
+
if (Option.isNone(listenAddress)) {
|
|
32
|
+
return yield* Effect.die("BunClusterHttp.layerHttpServer: ShardingConfig.runnerAddress is None");
|
|
32
33
|
}
|
|
33
|
-
return BunHttpServer.layer(listenAddress);
|
|
34
|
+
return BunHttpServer.layer(listenAddress.value);
|
|
34
35
|
}).pipe(Layer.unwrap);
|
|
35
36
|
/**
|
|
36
37
|
* @since 1.0.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BunClusterHttp.js","names":["Effect","Layer","HttpRunner","MessageStorage","RunnerHealth","Runners","RunnerStorage","ShardingConfig","SqlMessageStorage","SqlRunnerStorage","FetchHttpClient","RpcSerialization","layerK8sHttpClient","BunFileSystem","BunHttpServer","BunSocket","layerHttpServer","gen","config","listenAddress","runnerListenAddress","runnerAddress","
|
|
1
|
+
{"version":3,"file":"BunClusterHttp.js","names":["Effect","Layer","Option","HttpRunner","MessageStorage","RunnerHealth","Runners","RunnerStorage","ShardingConfig","SqlMessageStorage","SqlRunnerStorage","FetchHttpClient","RpcSerialization","layerK8sHttpClient","BunFileSystem","BunHttpServer","BunSocket","layerHttpServer","gen","config","listenAddress","orElse","runnerListenAddress","runnerAddress","isNone","die","layer","value","pipe","unwrap","options","clientOnly","transport","provide","layerHttpClientOnly","layerWebsocketClientOnly","layerWebSocketConstructor","layerHttp","layerWebsocket","runnerHealth","empty","layerK8s","runnerHealthK8s","layerPing","layerRpc","layerClientProtocolHttpDefault","layerClientProtocolWebsocketDefault","provideMerge","storage","layerNoop","orDie","layerMemory","layerFromEnv","shardingConfig","serialization","layerNdjson","layerMsgPack"],"sources":["../src/BunClusterHttp.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/BunHttpServer.d.ts
CHANGED
|
@@ -5,11 +5,12 @@ import type { ServerWebSocket } from "bun";
|
|
|
5
5
|
import * as Config from "effect/Config";
|
|
6
6
|
import type { ConfigError } from "effect/Config";
|
|
7
7
|
import * as Deferred from "effect/Deferred";
|
|
8
|
+
import * as Duration from "effect/Duration";
|
|
8
9
|
import * as Effect from "effect/Effect";
|
|
9
10
|
import type * as FileSystem from "effect/FileSystem";
|
|
10
11
|
import * as Layer from "effect/Layer";
|
|
11
12
|
import type * as Path from "effect/Path";
|
|
12
|
-
import
|
|
13
|
+
import * as Scope from "effect/Scope";
|
|
13
14
|
import * as Etag from "effect/unstable/http/Etag";
|
|
14
15
|
import type { HttpClient } from "effect/unstable/http/HttpClient";
|
|
15
16
|
import type { HttpPlatform } from "effect/unstable/http/HttpPlatform";
|
|
@@ -29,7 +30,10 @@ export type ServeOptions<R extends string> = (Bun.Serve.UnixServeOptions<WebSock
|
|
|
29
30
|
* @since 1.0.0
|
|
30
31
|
* @category Constructors
|
|
31
32
|
*/
|
|
32
|
-
export declare const make: <R extends string>(options: ServeOptions<R>
|
|
33
|
+
export declare const make: <R extends string>(options: ServeOptions<R> & {
|
|
34
|
+
readonly disablePreemptiveShutdown?: boolean | undefined;
|
|
35
|
+
readonly gracefulShutdownTimeout?: Duration.Input | undefined;
|
|
36
|
+
}) => Effect.Effect<{
|
|
33
37
|
readonly serve: {
|
|
34
38
|
<E, R_1>(effect: Effect.Effect<ServerResponse.HttpServerResponse, E, R_1>): Effect.Effect<void, never, Exclude<R_1, ServerRequest.HttpServerRequest> | Scope.Scope>;
|
|
35
39
|
<E, R_2, App extends Effect.Effect<ServerResponse.HttpServerResponse, any, any>>(effect: Effect.Effect<ServerResponse.HttpServerResponse, E, R_2>, middleware: import("effect/unstable/http/HttpMiddleware").HttpMiddleware.Applied<App, E, R_2>): Effect.Effect<void, never, Exclude<R_2, ServerRequest.HttpServerRequest> | Scope.Scope>;
|
|
@@ -40,7 +44,10 @@ export declare const make: <R extends string>(options: ServeOptions<R>) => Effec
|
|
|
40
44
|
* @since 1.0.0
|
|
41
45
|
* @category Layers
|
|
42
46
|
*/
|
|
43
|
-
export declare const layerServer: <R extends string>(options: ServeOptions<R>
|
|
47
|
+
export declare const layerServer: <R extends string>(options: ServeOptions<R> & {
|
|
48
|
+
readonly disablePreemptiveShutdown?: boolean | undefined;
|
|
49
|
+
readonly gracefulShutdownTimeout?: Duration.Input | undefined;
|
|
50
|
+
}) => Layer.Layer<Server.HttpServer>;
|
|
44
51
|
/**
|
|
45
52
|
* @since 1.0.0
|
|
46
53
|
* @category Layers
|
|
@@ -50,7 +57,10 @@ export declare const layerHttpServices: Layer.Layer<HttpPlatform | Etag.Generato
|
|
|
50
57
|
* @since 1.0.0
|
|
51
58
|
* @category Layers
|
|
52
59
|
*/
|
|
53
|
-
export declare const layer: <R extends string>(options: ServeOptions<R>
|
|
60
|
+
export declare const layer: <R extends string>(options: ServeOptions<R> & {
|
|
61
|
+
readonly disablePreemptiveShutdown?: boolean | undefined;
|
|
62
|
+
readonly gracefulShutdownTimeout?: Duration.Input | undefined;
|
|
63
|
+
}) => Layer.Layer<Server.HttpServer | HttpPlatform | Etag.Generator | BunServices.BunServices>;
|
|
54
64
|
/**
|
|
55
65
|
* @since 1.0.0
|
|
56
66
|
* @category Layers
|
|
@@ -60,7 +70,10 @@ export declare const layerTest: Layer.Layer<Server.HttpServer | HttpPlatform | F
|
|
|
60
70
|
* @since 1.0.0
|
|
61
71
|
* @category Layers
|
|
62
72
|
*/
|
|
63
|
-
export declare const layerConfig: <R extends string>(options: Config.Wrap<ServeOptions<R
|
|
73
|
+
export declare const layerConfig: <R extends string>(options: Config.Wrap<ServeOptions<R> & {
|
|
74
|
+
readonly disablePreemptiveShutdown?: boolean | undefined;
|
|
75
|
+
readonly gracefulShutdownTimeout?: Duration.Input | undefined;
|
|
76
|
+
}>) => Layer.Layer<Server.HttpServer | HttpPlatform | FileSystem.FileSystem | Etag.Generator | Path.Path, ConfigError>;
|
|
64
77
|
interface WebSocketContext {
|
|
65
78
|
readonly deferred: Deferred.Deferred<ServerWebSocket<WebSocketContext>>;
|
|
66
79
|
readonly closeDeferred: Deferred.Deferred<void, Socket.SocketError>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BunHttpServer.d.ts","sourceRoot":"","sources":["../src/BunHttpServer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAuB,eAAe,EAAE,MAAM,KAAK,CAAA;AAC/D,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,KAAK,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAGpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"BunHttpServer.d.ts","sourceRoot":"","sources":["../src/BunHttpServer.ts"],"names":[],"mappings":"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"}
|
package/dist/BunHttpServer.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as Config from "effect/Config";
|
|
2
2
|
import * as Deferred from "effect/Deferred";
|
|
3
|
+
import * as Duration from "effect/Duration";
|
|
3
4
|
import * as Effect from "effect/Effect";
|
|
4
5
|
import * as Exit from "effect/Exit";
|
|
5
6
|
import * as Fiber from "effect/Fiber";
|
|
@@ -7,6 +8,9 @@ import * as FiberSet from "effect/FiberSet";
|
|
|
7
8
|
import { flow } from "effect/Function";
|
|
8
9
|
import * as Inspectable from "effect/Inspectable";
|
|
9
10
|
import * as Layer from "effect/Layer";
|
|
11
|
+
import * as Option from "effect/Option";
|
|
12
|
+
import * as Scope from "effect/Scope";
|
|
13
|
+
import * as Semaphore from "effect/Semaphore";
|
|
10
14
|
import * as ServiceMap from "effect/ServiceMap";
|
|
11
15
|
import * as Stream from "effect/Stream";
|
|
12
16
|
import * as Cookies from "effect/unstable/http/Cookies";
|
|
@@ -29,6 +33,7 @@ import * as BunStream from "./BunStream.js";
|
|
|
29
33
|
* @category Constructors
|
|
30
34
|
*/
|
|
31
35
|
export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
36
|
+
const scope = yield* Effect.scope;
|
|
32
37
|
const handlerStack = [function (_request, _server) {
|
|
33
38
|
return new Response("not found", {
|
|
34
39
|
status: 404
|
|
@@ -45,6 +50,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
45
50
|
ws.data.run(message);
|
|
46
51
|
},
|
|
47
52
|
close(ws, code, closeReason) {
|
|
53
|
+
code = typeof code === "number" ? code : 1001;
|
|
48
54
|
Deferred.doneUnsafe(ws.data.closeDeferred, Socket.defaultCloseCodeIsError(code) ? Exit.fail(new Socket.SocketError({
|
|
49
55
|
reason: new Socket.SocketCloseError({
|
|
50
56
|
code,
|
|
@@ -54,7 +60,12 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
54
60
|
}
|
|
55
61
|
}
|
|
56
62
|
});
|
|
57
|
-
yield* Effect.
|
|
63
|
+
const shutdown = yield* Effect.promise(() => server.stop()).pipe(Effect.cached);
|
|
64
|
+
const preemptiveShutdown = options.disablePreemptiveShutdown ? Effect.void : Effect.timeoutOrElse(shutdown, {
|
|
65
|
+
duration: options.gracefulShutdownTimeout ?? Duration.seconds(20),
|
|
66
|
+
orElse: () => Effect.void
|
|
67
|
+
});
|
|
68
|
+
yield* Scope.addFinalizer(scope, shutdown);
|
|
58
69
|
return Server.make({
|
|
59
70
|
address: {
|
|
60
71
|
_tag: "TcpAddress",
|
|
@@ -62,8 +73,10 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
62
73
|
hostname: server.hostname
|
|
63
74
|
},
|
|
64
75
|
serve: Effect.fnUntraced(function* (httpApp, middleware) {
|
|
65
|
-
const
|
|
66
|
-
const services =
|
|
76
|
+
const parent = yield* Effect.fiber;
|
|
77
|
+
const services = parent.services;
|
|
78
|
+
const serveScope = ServiceMap.getUnsafe(services, Scope.Scope);
|
|
79
|
+
const scope = Scope.forkUnsafe(serveScope, "parallel");
|
|
67
80
|
const httpEffect = HttpEffect.toHandled(httpApp, (request, response) => Effect.sync(() => {
|
|
68
81
|
;
|
|
69
82
|
request.resolve(makeResponse(request, response, services, scope));
|
|
@@ -74,23 +87,23 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
74
87
|
map.set(ServerRequest.HttpServerRequest.key, new BunServerRequest(request, resolve, removeHost(request.url), server));
|
|
75
88
|
const fiber = Fiber.runIn(Effect.runForkWith(ServiceMap.makeUnsafe(map))(httpEffect), scope);
|
|
76
89
|
request.signal.addEventListener("abort", () => {
|
|
77
|
-
fiber.interruptUnsafe(Error.
|
|
90
|
+
fiber.interruptUnsafe(parent.id, Error.ClientAbort.annotation);
|
|
78
91
|
}, {
|
|
79
92
|
once: true
|
|
80
93
|
});
|
|
81
94
|
});
|
|
82
95
|
}
|
|
83
|
-
yield*
|
|
84
|
-
handlerStack.push(handler);
|
|
85
|
-
server.reload({
|
|
86
|
-
fetch: handler
|
|
87
|
-
});
|
|
88
|
-
}), () => Effect.sync(() => {
|
|
96
|
+
yield* Scope.addFinalizerExit(serveScope, () => {
|
|
89
97
|
handlerStack.pop();
|
|
90
98
|
server.reload({
|
|
91
99
|
fetch: handlerStack[handlerStack.length - 1]
|
|
92
100
|
});
|
|
93
|
-
|
|
101
|
+
return preemptiveShutdown;
|
|
102
|
+
});
|
|
103
|
+
handlerStack.push(handler);
|
|
104
|
+
server.reload({
|
|
105
|
+
fetch: handler
|
|
106
|
+
});
|
|
94
107
|
})
|
|
95
108
|
});
|
|
96
109
|
});
|
|
@@ -201,7 +214,7 @@ class BunServerRequest extends Inspectable.Class {
|
|
|
201
214
|
});
|
|
202
215
|
}
|
|
203
216
|
modify(options) {
|
|
204
|
-
return new BunServerRequest(this.source, this.resolve, options.url ?? this.url, this.bunServer, options.headers ?? this.headersOverride, options.remoteAddress
|
|
217
|
+
return new BunServerRequest(this.source, this.resolve, options.url ?? this.url, this.bunServer, options.headers ?? this.headersOverride, "remoteAddress" in options ? options.remoteAddress : this.remoteAddressOverride);
|
|
205
218
|
}
|
|
206
219
|
get method() {
|
|
207
220
|
return this.source.method.toUpperCase();
|
|
@@ -210,7 +223,7 @@ class BunServerRequest extends Inspectable.Class {
|
|
|
210
223
|
return this.source.url;
|
|
211
224
|
}
|
|
212
225
|
get remoteAddress() {
|
|
213
|
-
return this.remoteAddressOverride ?? this.bunServer.requestIP(this.source)?.address;
|
|
226
|
+
return this.remoteAddressOverride ?? Option.fromNullishOr(this.bunServer.requestIP(this.source)?.address);
|
|
214
227
|
}
|
|
215
228
|
get headers() {
|
|
216
229
|
this.headersOverride ??= Headers.fromInput(this.source.headers);
|
|
@@ -308,7 +321,7 @@ class BunServerRequest extends Inspectable.Class {
|
|
|
308
321
|
return Effect.callback(resume => {
|
|
309
322
|
const deferred = Deferred.makeUnsafe();
|
|
310
323
|
const closeDeferred = Deferred.makeUnsafe();
|
|
311
|
-
const semaphore =
|
|
324
|
+
const semaphore = Semaphore.makeUnsafe(1);
|
|
312
325
|
const success = this.bunServer.upgrade(this.source, {
|
|
313
326
|
data: {
|
|
314
327
|
deferred,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BunHttpServer.js","names":["Config","Deferred","Effect","Exit","Fiber","FiberSet","flow","Inspectable","Layer","ServiceMap","Stream","Cookies","Etag","FetchHttpClient","Headers","HttpEffect","IncomingMessage","Server","Error","ServerRequest","UrlParams","Socket","Platform","BunMultipart","BunServices","BunStream","make","fnUntraced","options","handlerStack","_request","_server","Response","status","server","Bun","serve","fetch","websocket","open","ws","doneUnsafe","data","deferred","succeed","message","run","close","code","closeReason","closeDeferred","defaultCloseCodeIsError","fail","SocketError","reason","SocketCloseError","void","addFinalizer","promise","stop","address","_tag","port","hostname","httpApp","middleware","scope","services","httpEffect","toHandled","request","response","sync","resolve","makeResponse","handler","Promise","_reject","map","Map","mapUnsafe","set","HttpServerRequest","key","BunServerRequest","removeHost","url","fiber","runIn","runForkWith","makeUnsafe","signal","addEventListener","interruptUnsafe","clientAbortFiberId","once","acquireRelease","push","reload","pop","length","fields","headers","globalThis","isEmpty","cookies","header","toSetCookieHeaders","append","statusText","undefined","method","scopeTransferToStream","body","value","entries","formData","toReadableStreamWith","unwrap","withFiber","stream","layerServer","effect","HttpServer","layerHttpServices","mergeAll","layer","layerWeak","layerTest","layerTestClient","pipe","provide","RequestInit","keepalive","provideMerge","layerConfig","flatMap","asEffect","wsDefaultRun","_","buffer","Class","TypeId","source","bunServer","headersOverride","remoteAddressOverride","constructor","toJSON","inspect","_id","originalUrl","modify","remoteAddress","toUpperCase","requestIP","fromInput","cachedCookies","parseHeader","cookie","fromReadableStream","evaluate","onError","cause","HttpServerError","RequestParseError","description","textEffect","text","runSync","cached","tryPromise","try","catch","json","JSON","parse","urlParamsBody","URLSearchParams","multipartEffect","multipart","persisted","multipartStream","arrayBufferEffect","arrayBuffer","upgrade","callback","resume","semaphore","makeSemaphoreUnsafe","success","await","write","chunk","sendText","isCloseEvent","sendBinary","writer","runRaw","opts","runtime","result","isEffect","forEach","onOpen","join","scoped","onExit","exit","raceFirst","withPermits","encoder","TextEncoder","encode","of","index","indexOf","slice"],"sources":["../src/BunHttpServer.ts"],"sourcesContent":[null],"mappings":"AAIA,OAAO,KAAKA,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAE3C,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,WAAW,MAAM,oBAAoB;AACjD,OAAO,KAAKC,KAAK,MAAM,cAAc;AAIrC,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,OAAO,MAAM,8BAA8B;AACvD,OAAO,KAAKC,IAAI,MAAM,2BAA2B;AACjD,OAAO,KAAKC,eAAe,MAAM,sCAAsC;AACvE,OAAO,KAAKC,OAAO,MAAM,8BAA8B;AAEvD,OAAO,KAAKC,UAAU,MAAM,iCAAiC;AAC7D,OAAO,KAAKC,eAAe,MAAM,0CAA0C;AAG3E,OAAO,KAAKC,MAAM,MAAM,iCAAiC;AACzD,OAAO,KAAKC,KAAK,MAAM,sCAAsC;AAC7D,OAAO,KAAKC,aAAa,MAAM,wCAAwC;AAGvE,OAAO,KAAKC,SAAS,MAAM,gCAAgC;AAC3D,OAAO,KAAKC,MAAM,MAAM,+BAA+B;AACvD,OAAO,KAAKC,QAAQ,MAAM,sBAAsB;AAChD,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AACjD,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAC/C,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAa3C;;;;AAIA,OAAO,MAAMC,IAAI,gBAAGxB,MAAM,CAACyB,UAAU,CACnC,WACEC,OAAwB;EAExB,MAAMC,YAAY,GAChB,CACE,UAASC,QAAQ,EAAEC,OAAO;IACxB,OAAO,IAAIC,QAAQ,CAAC,WAAW,EAAE;MAAEC,MAAM,EAAE;IAAG,CAAE,CAAC;EACnD,CAAC,CACF;EACH,MAAMC,MAAM,GAAGC,GAAG,CAACC,KAAK,CAAsB;IAC5C,GAAGR,OAA0B;IAC7BS,KAAK,EAAER,YAAY,CAAC,CAAC,CAAC;IACtBS,SAAS,EAAE;MACTC,IAAIA,CAACC,EAAE;QACLvC,QAAQ,CAACwC,UAAU,CAACD,EAAE,CAACE,IAAI,CAACC,QAAQ,EAAExC,IAAI,CAACyC,OAAO,CAACJ,EAAE,CAAC,CAAC;MACzD,CAAC;MACDK,OAAOA,CAACL,EAAE,EAAEK,OAAO;QACjBL,EAAE,CAACE,IAAI,CAACI,GAAG,CAACD,OAAO,CAAC;MACtB,CAAC;MACDE,KAAKA,CAACP,EAAE,EAAEQ,IAAI,EAAEC,WAAW;QACzBhD,QAAQ,CAACwC,UAAU,CACjBD,EAAE,CAACE,IAAI,CAACQ,aAAa,EACrB7B,MAAM,CAAC8B,uBAAuB,CAACH,IAAI,CAAC,GAChC7C,IAAI,CAACiD,IAAI,CACT,IAAI/B,MAAM,CAACgC,WAAW,CAAC;UACrBC,MAAM,EAAE,IAAIjC,MAAM,CAACkC,gBAAgB,CAAC;YAAEP,IAAI;YAAEC;UAAW,CAAE;SAC1D,CAAC,CACH,GACC9C,IAAI,CAACqD,IAAI,CACd;MACH;;GAEH,CAAC;EAEF,OAAOtD,MAAM,CAACuD,YAAY,CAAC,MAAMvD,MAAM,CAACwD,OAAO,CAAC,MAAMxB,MAAM,CAACyB,IAAI,EAAE,CAAC,CAAC;EAErE,OAAO1C,MAAM,CAACS,IAAI,CAAC;IACjBkC,OAAO,EAAE;MAAEC,IAAI,EAAE,YAAY;MAAEC,IAAI,EAAE5B,MAAM,CAAC4B,IAAK;MAAEC,QAAQ,EAAE7B,MAAM,CAAC6B;IAAS,CAAE;IAC/E3B,KAAK,EAAElC,MAAM,CAACyB,UAAU,CAAC,WAAUqC,OAAO,EAAEC,UAAU;MACpD,MAAMC,KAAK,GAAG,OAAOhE,MAAM,CAACgE,KAAK;MACjC,MAAMC,QAAQ,GAAG,OAAOjE,MAAM,CAACiE,QAAQ,EAAS;MAChD,MAAMC,UAAU,GAAGrD,UAAU,CAACsD,SAAS,CAACL,OAAO,EAAE,CAACM,OAAO,EAAEC,QAAQ,KACjErE,MAAM,CAACsE,IAAI,CAAC,MAAK;QACf;QAAEF,OAA4B,CAACG,OAAO,CAACC,YAAY,CAACJ,OAAO,EAAEC,QAAQ,EAAEJ,QAAQ,EAAED,KAAK,CAAC,CAAC;MAC1F,CAAC,CAAC,EAAED,UAAU,CAAC;MAEjB,SAASU,OAAOA,CAACL,OAAgB,EAAEpC,MAAmC;QACpE,OAAO,IAAI0C,OAAO,CAAW,CAACH,OAAO,EAAEI,OAAO,KAAI;UAChD,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAACZ,QAAQ,CAACa,SAAS,CAAC;UACvCF,GAAG,CAACG,GAAG,CACL9D,aAAa,CAAC+D,iBAAiB,CAACC,GAAG,EACnC,IAAIC,gBAAgB,CAACd,OAAO,EAAEG,OAAO,EAAEY,UAAU,CAACf,OAAO,CAACgB,GAAG,CAAC,EAAEpD,MAAM,CAAC,CACxE;UACD,MAAMqD,KAAK,GAAGnF,KAAK,CAACoF,KAAK,CAACtF,MAAM,CAACuF,WAAW,CAAChF,UAAU,CAACiF,UAAU,CAAMZ,GAAG,CAAC,CAAC,CAACV,UAAU,CAAC,EAAEF,KAAK,CAAC;UACjGI,OAAO,CAACqB,MAAM,CAACC,gBAAgB,CAAC,OAAO,EAAE,MAAK;YAC5CL,KAAK,CAACM,eAAe,CAAC3E,KAAK,CAAC4E,kBAAkB,CAAC;UACjD,CAAC,EAAE;YAAEC,IAAI,EAAE;UAAI,CAAE,CAAC;QACpB,CAAC,CAAC;MACJ;MAEA,OAAO7F,MAAM,CAAC8F,cAAc,CAC1B9F,MAAM,CAACsE,IAAI,CAAC,MAAK;QACf3C,YAAY,CAACoE,IAAI,CAACtB,OAAO,CAAC;QAC1BzC,MAAM,CAACgE,MAAM,CAAC;UAAE7D,KAAK,EAAEsC;QAAO,CAAE,CAAC;MACnC,CAAC,CAAC,EACF,MACEzE,MAAM,CAACsE,IAAI,CAAC,MAAK;QACf3C,YAAY,CAACsE,GAAG,EAAE;QAClBjE,MAAM,CAACgE,MAAM,CAAC;UAAE7D,KAAK,EAAER,YAAY,CAACA,YAAY,CAACuE,MAAM,GAAG,CAAC;QAAC,CAAE,CAAC;MACjE,CAAC,CAAC,CACL;IACH,CAAC;GACF,CAAC;AACJ,CAAC,CACF;AAED,MAAM1B,YAAY,GAAGA,CACnBJ,OAAwC,EACxCC,QAA2C,EAC3CJ,QAAsC,EACtCD,KAAkB,KACN;EACZ,MAAMmC,MAAM,GAIR;IACFC,OAAO,EAAE,IAAIC,UAAU,CAACzF,OAAO,CAACyD,QAAQ,CAAC+B,OAAO,CAAC;IACjDrE,MAAM,EAAEsC,QAAQ,CAACtC;GAClB;EAED,IAAI,CAACtB,OAAO,CAAC6F,OAAO,CAACjC,QAAQ,CAACkC,OAAO,CAAC,EAAE;IACtC,KAAK,MAAMC,MAAM,IAAI/F,OAAO,CAACgG,kBAAkB,CAACpC,QAAQ,CAACkC,OAAO,CAAC,EAAE;MACjEJ,MAAM,CAACC,OAAO,CAACM,MAAM,CAAC,YAAY,EAAEF,MAAM,CAAC;IAC7C;EACF;EAEA,IAAInC,QAAQ,CAACsC,UAAU,KAAKC,SAAS,EAAE;IACrCT,MAAM,CAACQ,UAAU,GAAGtC,QAAQ,CAACsC,UAAU;EACzC;EAEA,IAAIvC,OAAO,CAACyC,MAAM,KAAK,MAAM,EAAE;IAC7B,OAAO,IAAI/E,QAAQ,CAAC8E,SAAS,EAAET,MAAM,CAAC;EACxC;EACA9B,QAAQ,GAAGxD,UAAU,CAACiG,qBAAqB,CAACzC,QAAQ,CAAC;EACrD,MAAM0C,IAAI,GAAG1C,QAAQ,CAAC0C,IAAI;EAC1B,QAAQA,IAAI,CAACpD,IAAI;IACf,KAAK,OAAO;MAAE;QACZ,OAAO,IAAI7B,QAAQ,CAAC8E,SAAS,EAAET,MAAM,CAAC;MACxC;IACA,KAAK,YAAY;IACjB,KAAK,KAAK;MAAE;QACV,IAAIY,IAAI,CAACA,IAAI,YAAYjF,QAAQ,EAAE;UACjC,KAAK,MAAM,CAACmD,GAAG,EAAE+B,KAAK,CAAC,IAAIb,MAAM,CAACC,OAAO,CAACa,OAAO,EAAE,EAAE;YACnDF,IAAI,CAACA,IAAI,CAACX,OAAO,CAACrB,GAAG,CAACE,GAAG,EAAE+B,KAAK,CAAC;UACnC;UACA,OAAOD,IAAI,CAACA,IAAI;QAClB;QACA,OAAO,IAAIjF,QAAQ,CAACiF,IAAI,CAACA,IAAW,EAAEZ,MAAM,CAAC;MAC/C;IACA,KAAK,UAAU;MAAE;QACf,OAAO,IAAIrE,QAAQ,CAACiF,IAAI,CAACG,QAAe,EAAEf,MAAM,CAAC;MACnD;IACA,KAAK,QAAQ;MAAE;QACb,OAAO,IAAIrE,QAAQ,CACjBtB,MAAM,CAAC2G,oBAAoB,CACzB3G,MAAM,CAAC4G,MAAM,CAACpH,MAAM,CAACqH,SAAS,CAAEhC,KAAK,IAAI;UACvCnF,KAAK,CAACoF,KAAK,CAACD,KAAK,EAAErB,KAAK,CAAC;UACzB,OAAOhE,MAAM,CAAC0C,OAAO,CAACqE,IAAI,CAACO,MAAM,CAAC;QACpC,CAAC,CAAC,CAAC,EACHrD,QAAQ,CACT,EACDkC,MAAM,CACP;MACH;EACF;AACF,CAAC;AAED;;;;AAIA,OAAO,MAAMoB,WAAW,gBAEcnH,IAAI,CAACoB,IAAI,eAAElB,KAAK,CAACkH,MAAM,CAACzG,MAAM,CAAC0G,UAAU,CAAC,CAAQ;AAExF;;;;AAIA,OAAO,MAAMC,iBAAiB,gBAI1BpH,KAAK,CAACqH,QAAQ,CAChBvG,QAAQ,CAACwG,KAAK,EACdlH,IAAI,CAACmH,SAAS,EACdvG,WAAW,CAACsG,KAAK,CAClB;AAED;;;;AAIA,OAAO,MAAMA,KAAK,GAChBlG,OAAwB,IAMrBpB,KAAK,CAACqH,QAAQ,CAACJ,WAAW,CAAC7F,OAAO,CAAC,EAAEgG,iBAAiB,CAAC;AAE5D;;;;AAIA,OAAO,MAAMI,SAAS,gBAElB/G,MAAM,CAACgH,eAAe,CAACC,IAAI,cAC7B1H,KAAK,CAAC2H,OAAO,cAACtH,eAAe,CAACiH,KAAK,CAACI,IAAI,cACtC1H,KAAK,CAAC2H,OAAO,cAAC3H,KAAK,CAACoC,OAAO,CAAC/B,eAAe,CAACuH,WAAW,CAAC,CAAC;EAAEC,SAAS,EAAE;AAAK,CAAE,CAAC,CAAC,CAChF,CAAC,eACF7H,KAAK,CAAC8H,YAAY,cAACR,KAAK,CAAC;EAAEhE,IAAI,EAAE;AAAC,CAAE,CAAC,CAAC,CACvC;AAED;;;;AAIA,OAAO,MAAMyE,WAAW,GACtB3G,OAAqC,IAKrCpB,KAAK,CAACqH,QAAQ,CACZrH,KAAK,CAACkH,MAAM,CAACzG,MAAM,CAAC0G,UAAU,CAAC,CAACzH,MAAM,CAACsI,OAAO,CAACxI,MAAM,CAACsH,MAAM,CAAC1F,OAAO,CAAC,CAAC6G,QAAQ,EAAE,EAAE/G,IAAI,CAAC,CAAC,EACxFkG,iBAAiB,CAClB;AAaH,SAASc,YAAYA,CAAyBC,CAAsB;EAClE,IAAI,CAACC,MAAM,CAAC3C,IAAI,CAAC0C,CAAC,CAAC;AACrB;AAEA,MAAMvD,gBAAiB,SAAQ7E,WAAW,CAACsI,KAAK;EACrC,CAAC1H,aAAa,CAAC2H,MAAM;EACrB,CAAC9H,eAAe,CAAC8H,MAAM;EACvBC,MAAM;EACRtE,OAAO;EACLa,GAAG;EACJ0D,SAAS;EACVC,eAAe;EACdC,qBAAqB;EAE7BC,YACEJ,MAAe,EACftE,OAAqC,EACrCa,GAAW,EACX0D,SAAsC,EACtCC,eAAiC,EACjCC,qBAA8B;IAE9B,KAAK,EAAE;IACP,IAAI,CAAC/H,aAAa,CAAC2H,MAAM,CAAC,GAAG3H,aAAa,CAAC2H,MAAM;IACjD,IAAI,CAAC9H,eAAe,CAAC8H,MAAM,CAAC,GAAG9H,eAAe,CAAC8H,MAAM;IACrD,IAAI,CAACC,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACtE,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACa,GAAG,GAAGA,GAAG;IACd,IAAI,CAAC0D,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,eAAe,GAAGA,eAAe;IACtC,IAAI,CAACC,qBAAqB,GAAGA,qBAAqB;EACpD;EACAE,MAAMA,CAAA;IACJ,OAAOpI,eAAe,CAACqI,OAAO,CAAC,IAAI,EAAE;MACnCC,GAAG,EAAE,mBAAmB;MACxBvC,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBzB,GAAG,EAAE,IAAI,CAACiE;KACX,CAAC;EACJ;EACAC,MAAMA,CACJ5H,OAIC;IAED,OAAO,IAAIwD,gBAAgB,CACzB,IAAI,CAAC2D,MAAM,EACX,IAAI,CAACtE,OAAO,EACZ7C,OAAO,CAAC0D,GAAG,IAAI,IAAI,CAACA,GAAG,EACvB,IAAI,CAAC0D,SAAS,EACdpH,OAAO,CAAC0E,OAAO,IAAI,IAAI,CAAC2C,eAAe,EACvCrH,OAAO,CAAC6H,aAAa,IAAI,IAAI,CAACP,qBAAqB,CACpD;EACH;EACA,IAAInC,MAAMA,CAAA;IACR,OAAO,IAAI,CAACgC,MAAM,CAAChC,MAAM,CAAC2C,WAAW,EAAgB;EACvD;EACA,IAAIH,WAAWA,CAAA;IACb,OAAO,IAAI,CAACR,MAAM,CAACzD,GAAG;EACxB;EACA,IAAImE,aAAaA,CAAA;IACf,OAAO,IAAI,CAACP,qBAAqB,IAAI,IAAI,CAACF,SAAS,CAACW,SAAS,CAAC,IAAI,CAACZ,MAAM,CAAC,EAAEnF,OAAO;EACrF;EACA,IAAI0C,OAAOA,CAAA;IACT,IAAI,CAAC2C,eAAe,KAAKnI,OAAO,CAAC8I,SAAS,CAAC,IAAI,CAACb,MAAM,CAACzC,OAAO,CAAC;IAC/D,OAAO,IAAI,CAAC2C,eAAe;EAC7B;EAEQY,aAAa;EACrB,IAAIpD,OAAOA,CAAA;IACT,IAAI,IAAI,CAACoD,aAAa,EAAE;MACtB,OAAO,IAAI,CAACA,aAAa;IAC3B;IACA,OAAO,IAAI,CAACA,aAAa,GAAGlJ,OAAO,CAACmJ,WAAW,CAAC,IAAI,CAACxD,OAAO,CAACyD,MAAM,IAAI,EAAE,CAAC;EAC5E;EAEA,IAAIvC,MAAMA,CAAA;IACR,OAAO,IAAI,CAACuB,MAAM,CAAC9B,IAAI,GACnBxF,SAAS,CAACuI,kBAAkB,CAAC;MAC7BC,QAAQ,EAAEA,CAAA,KAAM,IAAI,CAAClB,MAAM,CAAC9B,IAAW;MACvCiD,OAAO,EAAGC,KAAK,IACb,IAAIjJ,KAAK,CAACkJ,eAAe,CAAC;QACxB9G,MAAM,EAAE,IAAIpC,KAAK,CAACmJ,iBAAiB,CAAC;UAClC/F,OAAO,EAAE,IAAI;UACb6F;SACD;OACF;KACJ,CAAC,GACAzJ,MAAM,CAAC0C,IAAI,CACX,IAAIlC,KAAK,CAACkJ,eAAe,CAAC;MACxB9G,MAAM,EAAE,IAAIpC,KAAK,CAACmJ,iBAAiB,CAAC;QAClC/F,OAAO,EAAE,IAAI;QACbgG,WAAW,EAAE;OACd;KACF,CAAC,CACH;EACL;EAEQC,UAAU;EAClB,IAAIC,IAAIA,CAAA;IACN,IAAI,IAAI,CAACD,UAAU,EAAE;MACnB,OAAO,IAAI,CAACA,UAAU;IACxB;IACA,IAAI,CAACA,UAAU,GAAGrK,MAAM,CAACuK,OAAO,CAACvK,MAAM,CAACwK,MAAM,CAC5CxK,MAAM,CAACyK,UAAU,CAAC;MAChBC,GAAG,EAAEA,CAAA,KAAM,IAAI,CAAC7B,MAAM,CAACyB,IAAI,EAAE;MAC7BK,KAAK,EAAGV,KAAK,IACX,IAAIjJ,KAAK,CAACkJ,eAAe,CAAC;QACxB9G,MAAM,EAAE,IAAIpC,KAAK,CAACmJ,iBAAiB,CAAC;UAClC/F,OAAO,EAAE,IAAI;UACb6F;SACD;OACF;KACJ,CAAC,CACH,CAAC;IACF,OAAO,IAAI,CAACI,UAAU;EACxB;EAEA,IAAIO,IAAIA,CAAA;IACN,OAAO5K,MAAM,CAACsI,OAAO,CAAC,IAAI,CAACgC,IAAI,EAAG7B,CAAC,IACjCzI,MAAM,CAAC0K,GAAG,CAAC;MACTA,GAAG,EAAEA,CAAA,KAAMG,IAAI,CAACC,KAAK,CAACrC,CAAC,CAAY;MACnCkC,KAAK,EAAGV,KAAK,IACX,IAAIjJ,KAAK,CAACkJ,eAAe,CAAC;QACxB9G,MAAM,EAAE,IAAIpC,KAAK,CAACmJ,iBAAiB,CAAC;UAClC/F,OAAO,EAAE,IAAI;UACb6F;SACD;OACF;KACJ,CAAC,CAAC;EACP;EAEA,IAAIc,aAAaA,CAAA;IACf,OAAO/K,MAAM,CAACsI,OAAO,CAAC,IAAI,CAACgC,IAAI,EAAG7B,CAAC,IACjCzI,MAAM,CAAC0K,GAAG,CAAC;MACTA,GAAG,EAAEA,CAAA,KAAMxJ,SAAS,CAACwI,SAAS,CAAC,IAAIsB,eAAe,CAACvC,CAAC,CAAC,CAAC;MACtDkC,KAAK,EAAGV,KAAK,IACX,IAAIjJ,KAAK,CAACkJ,eAAe,CAAC;QACxB9G,MAAM,EAAE,IAAIpC,KAAK,CAACmJ,iBAAiB,CAAC;UAClC/F,OAAO,EAAE,IAAI;UACb6F;SACD;OACF;KACJ,CAAC,CAAC;EACP;EAEQgB,eAAe;EAOvB,IAAIC,SAASA,CAAA;IAKX,IAAI,IAAI,CAACD,eAAe,EAAE;MACxB,OAAO,IAAI,CAACA,eAAe;IAC7B;IACA,IAAI,CAACA,eAAe,GAAGjL,MAAM,CAACuK,OAAO,CAACvK,MAAM,CAACwK,MAAM,CACjDnJ,YAAY,CAAC8J,SAAS,CAAC,IAAI,CAACtC,MAAM,CAAC,CACpC,CAAC;IACF,OAAO,IAAI,CAACoC,eAAe;EAC7B;EAEA,IAAIG,eAAeA,CAAA;IACjB,OAAO/J,YAAY,CAACiG,MAAM,CAAC,IAAI,CAACuB,MAAM,CAAC;EACzC;EAEQwC,iBAAiB;EACzB,IAAIC,WAAWA,CAAA;IACb,IAAI,IAAI,CAACD,iBAAiB,EAAE;MAC1B,OAAO,IAAI,CAACA,iBAAiB;IAC/B;IACA,IAAI,CAACA,iBAAiB,GAAGrL,MAAM,CAACuK,OAAO,CAACvK,MAAM,CAACwK,MAAM,CACnDxK,MAAM,CAACyK,UAAU,CAAC;MAChBC,GAAG,EAAEA,CAAA,KAAM,IAAI,CAAC7B,MAAM,CAACyC,WAAW,EAAE;MACpCX,KAAK,EAAGV,KAAK,IACX,IAAIjJ,KAAK,CAACkJ,eAAe,CAAC;QACxB9G,MAAM,EAAE,IAAIpC,KAAK,CAACmJ,iBAAiB,CAAC;UAClC/F,OAAO,EAAE,IAAI;UACb6F;SACD;OACF;KACJ,CAAC,CACH,CAAC;IACF,OAAO,IAAI,CAACoB,iBAAiB;EAC/B;EAEA,IAAIE,OAAOA,CAAA;IACT,OAAOvL,MAAM,CAACwL,QAAQ,CAAwCC,MAAM,IAAI;MACtE,MAAMhJ,QAAQ,GAAG1C,QAAQ,CAACyF,UAAU,EAAqC;MACzE,MAAMxC,aAAa,GAAGjD,QAAQ,CAACyF,UAAU,EAA4B;MACrE,MAAMkG,SAAS,GAAG1L,MAAM,CAAC2L,mBAAmB,CAAC,CAAC,CAAC;MAE/C,MAAMC,OAAO,GAAG,IAAI,CAAC9C,SAAS,CAACyC,OAAO,CAAC,IAAI,CAAC1C,MAAM,EAAE;QAClDrG,IAAI,EAAE;UACJC,QAAQ;UACRO,aAAa;UACb0F,MAAM,EAAE,EAAE;UACV9F,GAAG,EAAE4F;;OAER,CAAC;MACF,IAAI,CAACoD,OAAO,EAAE;QACZH,MAAM,CAACzL,MAAM,CAACkD,IAAI,CAChB,IAAIlC,KAAK,CAACkJ,eAAe,CAAC;UACxB9G,MAAM,EAAE,IAAIpC,KAAK,CAACmJ,iBAAiB,CAAC;YAClC/F,OAAO,EAAE,IAAI;YACbgG,WAAW,EAAE;WACd;SACF,CAAC,CACH,CAAC;QACF;MACF;MACAqB,MAAM,CAACzL,MAAM,CAAC4E,GAAG,CAAC7E,QAAQ,CAAC8L,KAAK,CAACpJ,QAAQ,CAAC,EAAGH,EAAE,IAAI;QACjD,MAAMwJ,KAAK,GAAIC,KAA8C,IAC3D/L,MAAM,CAACsE,IAAI,CAAC,MAAK;UACf,IAAI,OAAOyH,KAAK,KAAK,QAAQ,EAAE;YAC7BzJ,EAAE,CAAC0J,QAAQ,CAACD,KAAK,CAAC;UACpB,CAAC,MAAM,IAAI5K,MAAM,CAAC8K,YAAY,CAACF,KAAK,CAAC,EAAE;YACrCzJ,EAAE,CAACO,KAAK,CAACkJ,KAAK,CAACjJ,IAAI,EAAEiJ,KAAK,CAAC3I,MAAM,CAAC;UACpC,CAAC,MAAM;YACLd,EAAE,CAAC4J,UAAU,CAACH,KAAK,CAAC;UACtB;UAEA,OAAO,IAAI;QACb,CAAC,CAAC;QACJ,MAAMI,MAAM,GAAGnM,MAAM,CAAC0C,OAAO,CAACoJ,KAAK,CAAC;QACpC,MAAMM,MAAM,GAAGpM,MAAM,CAACyB,UAAU,CAC9B,WACEgD,OAAkE,EAClE4H,IAA4D;UAE5D,MAAMtH,GAAG,GAAG,OAAO5E,QAAQ,CAACqB,IAAI,EAAU;UAC1C,MAAMoB,GAAG,GAAG,OAAOzC,QAAQ,CAACmM,OAAO,CAACvH,GAAG,CAAC,EAAK;UAC7C,SAASqH,MAAMA,CAAC5J,IAAyB;YACvC,MAAM+J,MAAM,GAAG9H,OAAO,CAACjC,IAAI,CAAC;YAC5B,IAAIxC,MAAM,CAACwM,QAAQ,CAACD,MAAM,CAAC,EAAE;cAC3B3J,GAAG,CAAC2J,MAAM,CAAC;YACb;UACF;UACAjK,EAAE,CAACE,IAAI,CAACI,GAAG,GAAGwJ,MAAM;UACpB9J,EAAE,CAACE,IAAI,CAACkG,MAAM,CAAC+D,OAAO,CAACL,MAAM,CAAC;UAC9B9J,EAAE,CAACE,IAAI,CAACkG,MAAM,CAACxC,MAAM,GAAG,CAAC;UACzB,IAAImG,IAAI,EAAEK,MAAM,EAAE,OAAOL,IAAI,CAACK,MAAM;UACpC,OAAO,OAAOvM,QAAQ,CAACwM,IAAI,CAAC5H,GAAG,CAAC;QAClC,CAAC,EACD/E,MAAM,CAAC4M,MAAM,EACb5M,MAAM,CAAC6M,MAAM,CAAEC,IAAI,IAAK9M,MAAM,CAACsE,IAAI,CAAC,MAAMhC,EAAE,CAACO,KAAK,CAACiK,IAAI,CAACnJ,IAAI,KAAK,SAAS,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,EAC3F3D,MAAM,CAAC+M,SAAS,CAAChN,QAAQ,CAAC8L,KAAK,CAAC7I,aAAa,CAAC,CAAC,EAC/C0I,SAAS,CAACsB,WAAW,CAAC,CAAC,CAAC,CACzB;QAED,MAAMC,OAAO,GAAG,IAAIC,WAAW,EAAE;QACjC,MAAMtK,GAAG,GAAGA,CAAU6B,OAAyD,EAAE4H,IAEhF,KAAKD,MAAM,CAAE5J,IAAI,IAAK,OAAOA,IAAI,KAAK,QAAQ,GAAGiC,OAAO,CAACwI,OAAO,CAACE,MAAM,CAAC3K,IAAI,CAAC,CAAC,GAAGiC,OAAO,CAACjC,IAAI,CAAC,EAAE6J,IAAI,CAAC;QAEtG,OAAOlL,MAAM,CAACA,MAAM,CAACiM,EAAE,CAAC;UACtB,CAACjM,MAAM,CAACyH,MAAM,GAAGzH,MAAM,CAACyH,MAA8B;UACtDhG,GAAG;UACHwJ,MAAM;UACND;SACD,CAAC;MACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;EACJ;;AAGF,MAAMhH,UAAU,GAAIC,GAAW,IAAI;EACjC,IAAIA,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAClB,OAAOA,GAAG;EACZ;EACA,MAAMiI,KAAK,GAAGjI,GAAG,CAACkI,OAAO,CAAC,GAAG,EAAElI,GAAG,CAACkI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EACrD,OAAOD,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,GAAGjI,GAAG,CAACmI,KAAK,CAACF,KAAK,CAAC;AAC9C,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"BunHttpServer.js","names":["Config","Deferred","Duration","Effect","Exit","Fiber","FiberSet","flow","Inspectable","Layer","Option","Scope","Semaphore","ServiceMap","Stream","Cookies","Etag","FetchHttpClient","Headers","HttpEffect","IncomingMessage","Server","Error","ServerRequest","UrlParams","Socket","Platform","BunMultipart","BunServices","BunStream","make","fnUntraced","options","scope","handlerStack","_request","_server","Response","status","server","Bun","serve","fetch","websocket","open","ws","doneUnsafe","data","deferred","succeed","message","run","close","code","closeReason","closeDeferred","defaultCloseCodeIsError","fail","SocketError","reason","SocketCloseError","void","shutdown","promise","stop","pipe","cached","preemptiveShutdown","disablePreemptiveShutdown","timeoutOrElse","duration","gracefulShutdownTimeout","seconds","orElse","addFinalizer","address","_tag","port","hostname","httpApp","middleware","parent","fiber","services","serveScope","getUnsafe","forkUnsafe","httpEffect","toHandled","request","response","sync","resolve","makeResponse","handler","Promise","_reject","map","Map","mapUnsafe","set","HttpServerRequest","key","BunServerRequest","removeHost","url","runIn","runForkWith","makeUnsafe","signal","addEventListener","interruptUnsafe","id","ClientAbort","annotation","once","addFinalizerExit","pop","reload","length","push","fields","headers","globalThis","isEmpty","cookies","header","toSetCookieHeaders","append","statusText","undefined","method","scopeTransferToStream","body","value","entries","formData","toReadableStreamWith","unwrap","withFiber","stream","layerServer","effect","HttpServer","layerHttpServices","mergeAll","layer","layerWeak","layerTest","layerTestClient","provide","RequestInit","keepalive","provideMerge","layerConfig","flatMap","asEffect","wsDefaultRun","_","buffer","Class","TypeId","source","bunServer","headersOverride","remoteAddressOverride","constructor","toJSON","inspect","_id","originalUrl","modify","remoteAddress","toUpperCase","fromNullishOr","requestIP","fromInput","cachedCookies","parseHeader","cookie","fromReadableStream","evaluate","onError","cause","HttpServerError","RequestParseError","description","textEffect","text","runSync","tryPromise","try","catch","json","JSON","parse","urlParamsBody","URLSearchParams","multipartEffect","multipart","persisted","multipartStream","arrayBufferEffect","arrayBuffer","upgrade","callback","resume","semaphore","success","await","write","chunk","sendText","isCloseEvent","sendBinary","writer","runRaw","opts","runtime","result","isEffect","forEach","onOpen","join","scoped","onExit","exit","raceFirst","withPermits","encoder","TextEncoder","encode","of","index","indexOf","slice"],"sources":["../src/BunHttpServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/BunSocket.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export declare const layerWebSocketConstructor: Layer.Layer<Socket.WebSocketCons
|
|
|
20
20
|
*/
|
|
21
21
|
export declare const layerWebSocket: (url: string | Effect<string>, options?: {
|
|
22
22
|
readonly closeCodeIsError?: ((code: number) => boolean) | undefined;
|
|
23
|
-
readonly openTimeout?: Duration.
|
|
23
|
+
readonly openTimeout?: Duration.Input | undefined;
|
|
24
24
|
readonly protocols?: string | Array<string> | undefined;
|
|
25
25
|
} | undefined) => Layer.Layer<Socket.Socket, never, never>;
|
|
26
26
|
//# sourceMappingURL=BunSocket.d.ts.map
|
package/dist/BunSocket.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BunSocket.d.ts","sourceRoot":"","sources":["../src/BunSocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD;;GAEG;AACH,cAAc,yCAAyC,CAAA;AAEvD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,KAAK,CACjD,MAAM,CAAC,oBAAoB,CAG5B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,CAC3B,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAC5B,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAA;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"BunSocket.d.ts","sourceRoot":"","sources":["../src/BunSocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAE3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,+BAA+B,CAAA;AAEvD;;GAEG;AACH,cAAc,yCAAyC,CAAA;AAEvD;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,KAAK,CAAC,KAAK,CACjD,MAAM,CAAC,oBAAoB,CAG5B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,CAC3B,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAC5B,OAAO,CAAC,EAAE;IACR,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,SAAS,CAAA;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAA;CACxD,GAAG,SAAS,KACV,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAI3C,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/platform-bun",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "4.0.0-beta.
|
|
4
|
+
"version": "4.0.0-beta.40",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"description": "Platform specific implementations for the Bun runtime",
|
|
7
7
|
"homepage": "https://effect.website",
|
|
@@ -45,14 +45,14 @@
|
|
|
45
45
|
"provenance": true
|
|
46
46
|
},
|
|
47
47
|
"peerDependencies": {
|
|
48
|
-
"effect": "^4.0.0-beta.
|
|
48
|
+
"effect": "^4.0.0-beta.40"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@effect/platform-node-shared": "^4.0.0-beta.
|
|
51
|
+
"@effect/platform-node-shared": "^4.0.0-beta.40"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
54
|
"@types/bun": "^1.3.8",
|
|
55
|
-
"effect": "^4.0.0-beta.
|
|
55
|
+
"effect": "^4.0.0-beta.40"
|
|
56
56
|
},
|
|
57
57
|
"scripts": {
|
|
58
58
|
"codegen": "effect-utils codegen",
|
package/src/BunClusterHttp.ts
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import type * as Config from "effect/Config"
|
|
5
5
|
import * as Effect from "effect/Effect"
|
|
6
6
|
import * as Layer from "effect/Layer"
|
|
7
|
+
import * as Option from "effect/Option"
|
|
7
8
|
import * as HttpRunner from "effect/unstable/cluster/HttpRunner"
|
|
8
9
|
import * as MessageStorage from "effect/unstable/cluster/MessageStorage"
|
|
9
10
|
import * as RunnerHealth from "effect/unstable/cluster/RunnerHealth"
|
|
@@ -47,11 +48,11 @@ export const layerHttpServer: Layer.Layer<
|
|
|
47
48
|
ShardingConfig.ShardingConfig
|
|
48
49
|
> = Effect.gen(function*() {
|
|
49
50
|
const config = yield* ShardingConfig.ShardingConfig
|
|
50
|
-
const listenAddress = config.runnerListenAddress
|
|
51
|
-
if (listenAddress
|
|
52
|
-
return yield* Effect.die("BunClusterHttp.layerHttpServer: ShardingConfig.runnerAddress is
|
|
51
|
+
const listenAddress = Option.orElse(config.runnerListenAddress, () => config.runnerAddress)
|
|
52
|
+
if (Option.isNone(listenAddress)) {
|
|
53
|
+
return yield* Effect.die("BunClusterHttp.layerHttpServer: ShardingConfig.runnerAddress is None")
|
|
53
54
|
}
|
|
54
|
-
return BunHttpServer.layer(listenAddress)
|
|
55
|
+
return BunHttpServer.layer(listenAddress.value)
|
|
55
56
|
}).pipe(Layer.unwrap)
|
|
56
57
|
|
|
57
58
|
/**
|
package/src/BunHttpServer.ts
CHANGED
|
@@ -5,6 +5,7 @@ import type { Server as BunServer, ServerWebSocket } from "bun"
|
|
|
5
5
|
import * as Config from "effect/Config"
|
|
6
6
|
import type { ConfigError } from "effect/Config"
|
|
7
7
|
import * as Deferred from "effect/Deferred"
|
|
8
|
+
import * as Duration from "effect/Duration"
|
|
8
9
|
import * as Effect from "effect/Effect"
|
|
9
10
|
import * as Exit from "effect/Exit"
|
|
10
11
|
import * as Fiber from "effect/Fiber"
|
|
@@ -13,9 +14,12 @@ import type * as FileSystem from "effect/FileSystem"
|
|
|
13
14
|
import { flow } from "effect/Function"
|
|
14
15
|
import * as Inspectable from "effect/Inspectable"
|
|
15
16
|
import * as Layer from "effect/Layer"
|
|
17
|
+
import * as Option from "effect/Option"
|
|
16
18
|
import type * as Path from "effect/Path"
|
|
17
19
|
import type * as Record from "effect/Record"
|
|
18
|
-
import type * as
|
|
20
|
+
import type * as Schema from "effect/Schema"
|
|
21
|
+
import * as Scope from "effect/Scope"
|
|
22
|
+
import * as Semaphore from "effect/Semaphore"
|
|
19
23
|
import * as ServiceMap from "effect/ServiceMap"
|
|
20
24
|
import * as Stream from "effect/Stream"
|
|
21
25
|
import * as Cookies from "effect/unstable/http/Cookies"
|
|
@@ -56,8 +60,12 @@ export type ServeOptions<R extends string> =
|
|
|
56
60
|
*/
|
|
57
61
|
export const make = Effect.fnUntraced(
|
|
58
62
|
function*<R extends string>(
|
|
59
|
-
options: ServeOptions<R>
|
|
63
|
+
options: ServeOptions<R> & {
|
|
64
|
+
readonly disablePreemptiveShutdown?: boolean | undefined
|
|
65
|
+
readonly gracefulShutdownTimeout?: Duration.Input | undefined
|
|
66
|
+
}
|
|
60
67
|
) {
|
|
68
|
+
const scope = yield* Effect.scope
|
|
61
69
|
const handlerStack: Array<(request: Request, server: BunServer<WebSocketContext>) => Response | Promise<Response>> =
|
|
62
70
|
[
|
|
63
71
|
function(_request, _server) {
|
|
@@ -75,6 +83,7 @@ export const make = Effect.fnUntraced(
|
|
|
75
83
|
ws.data.run(message)
|
|
76
84
|
},
|
|
77
85
|
close(ws, code, closeReason) {
|
|
86
|
+
code = typeof code === "number" ? code : 1001
|
|
78
87
|
Deferred.doneUnsafe(
|
|
79
88
|
ws.data.closeDeferred,
|
|
80
89
|
Socket.defaultCloseCodeIsError(code)
|
|
@@ -89,13 +98,24 @@ export const make = Effect.fnUntraced(
|
|
|
89
98
|
}
|
|
90
99
|
})
|
|
91
100
|
|
|
92
|
-
yield* Effect.
|
|
101
|
+
const shutdown = yield* Effect.promise(() => server.stop()).pipe(
|
|
102
|
+
Effect.cached
|
|
103
|
+
)
|
|
104
|
+
const preemptiveShutdown = options.disablePreemptiveShutdown ? Effect.void : Effect.timeoutOrElse(shutdown, {
|
|
105
|
+
duration: options.gracefulShutdownTimeout ?? Duration.seconds(20),
|
|
106
|
+
orElse: () => Effect.void
|
|
107
|
+
})
|
|
108
|
+
|
|
109
|
+
yield* Scope.addFinalizer(scope, shutdown)
|
|
93
110
|
|
|
94
111
|
return Server.make({
|
|
95
112
|
address: { _tag: "TcpAddress", port: server.port!, hostname: server.hostname! },
|
|
96
113
|
serve: Effect.fnUntraced(function*(httpApp, middleware) {
|
|
97
|
-
const
|
|
98
|
-
const services =
|
|
114
|
+
const parent = yield* Effect.fiber
|
|
115
|
+
const services = parent.services
|
|
116
|
+
const serveScope = ServiceMap.getUnsafe(services, Scope.Scope)
|
|
117
|
+
const scope = Scope.forkUnsafe(serveScope, "parallel")
|
|
118
|
+
|
|
99
119
|
const httpEffect = HttpEffect.toHandled(httpApp, (request, response) =>
|
|
100
120
|
Effect.sync(() => {
|
|
101
121
|
;(request as BunServerRequest).resolve(makeResponse(request, response, services, scope))
|
|
@@ -110,22 +130,18 @@ export const make = Effect.fnUntraced(
|
|
|
110
130
|
)
|
|
111
131
|
const fiber = Fiber.runIn(Effect.runForkWith(ServiceMap.makeUnsafe<any>(map))(httpEffect), scope)
|
|
112
132
|
request.signal.addEventListener("abort", () => {
|
|
113
|
-
fiber.interruptUnsafe(Error.
|
|
133
|
+
fiber.interruptUnsafe(parent.id, Error.ClientAbort.annotation)
|
|
114
134
|
}, { once: true })
|
|
115
135
|
})
|
|
116
136
|
}
|
|
117
137
|
|
|
118
|
-
yield*
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
handlerStack.pop()
|
|
126
|
-
server.reload({ fetch: handlerStack[handlerStack.length - 1] })
|
|
127
|
-
})
|
|
128
|
-
)
|
|
138
|
+
yield* Scope.addFinalizerExit(serveScope, () => {
|
|
139
|
+
handlerStack.pop()
|
|
140
|
+
server.reload({ fetch: handlerStack[handlerStack.length - 1] })
|
|
141
|
+
return preemptiveShutdown
|
|
142
|
+
})
|
|
143
|
+
handlerStack.push(handler)
|
|
144
|
+
server.reload({ fetch: handler })
|
|
129
145
|
})
|
|
130
146
|
})
|
|
131
147
|
}
|
|
@@ -198,7 +214,10 @@ const makeResponse = (
|
|
|
198
214
|
* @category Layers
|
|
199
215
|
*/
|
|
200
216
|
export const layerServer: <R extends string>(
|
|
201
|
-
options: ServeOptions<R>
|
|
217
|
+
options: ServeOptions<R> & {
|
|
218
|
+
readonly disablePreemptiveShutdown?: boolean | undefined
|
|
219
|
+
readonly gracefulShutdownTimeout?: Duration.Input | undefined
|
|
220
|
+
}
|
|
202
221
|
) => Layer.Layer<Server.HttpServer> = flow(make, Layer.effect(Server.HttpServer)) as any
|
|
203
222
|
|
|
204
223
|
/**
|
|
@@ -220,7 +239,10 @@ export const layerHttpServices: Layer.Layer<
|
|
|
220
239
|
* @category Layers
|
|
221
240
|
*/
|
|
222
241
|
export const layer = <R extends string>(
|
|
223
|
-
options: ServeOptions<R>
|
|
242
|
+
options: ServeOptions<R> & {
|
|
243
|
+
readonly disablePreemptiveShutdown?: boolean | undefined
|
|
244
|
+
readonly gracefulShutdownTimeout?: Duration.Input | undefined
|
|
245
|
+
}
|
|
224
246
|
): Layer.Layer<
|
|
225
247
|
| Server.HttpServer
|
|
226
248
|
| HttpPlatform
|
|
@@ -246,7 +268,12 @@ export const layerTest: Layer.Layer<
|
|
|
246
268
|
* @category Layers
|
|
247
269
|
*/
|
|
248
270
|
export const layerConfig = <R extends string>(
|
|
249
|
-
options: Config.Wrap<
|
|
271
|
+
options: Config.Wrap<
|
|
272
|
+
ServeOptions<R> & {
|
|
273
|
+
readonly disablePreemptiveShutdown?: boolean | undefined
|
|
274
|
+
readonly gracefulShutdownTimeout?: Duration.Input | undefined
|
|
275
|
+
}
|
|
276
|
+
>
|
|
250
277
|
): Layer.Layer<
|
|
251
278
|
Server.HttpServer | HttpPlatform | FileSystem.FileSystem | Etag.Generator | Path.Path,
|
|
252
279
|
ConfigError
|
|
@@ -279,7 +306,7 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
|
|
|
279
306
|
readonly url: string
|
|
280
307
|
private bunServer: BunServer<WebSocketContext>
|
|
281
308
|
public headersOverride?: Headers.Headers | undefined
|
|
282
|
-
private remoteAddressOverride?: string | undefined
|
|
309
|
+
private remoteAddressOverride?: Option.Option<string> | undefined
|
|
283
310
|
|
|
284
311
|
constructor(
|
|
285
312
|
source: Request,
|
|
@@ -287,7 +314,7 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
|
|
|
287
314
|
url: string,
|
|
288
315
|
bunServer: BunServer<WebSocketContext>,
|
|
289
316
|
headersOverride?: Headers.Headers,
|
|
290
|
-
remoteAddressOverride?: string
|
|
317
|
+
remoteAddressOverride?: Option.Option<string>
|
|
291
318
|
) {
|
|
292
319
|
super()
|
|
293
320
|
this[ServerRequest.TypeId] = ServerRequest.TypeId
|
|
@@ -310,7 +337,7 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
|
|
|
310
337
|
options: {
|
|
311
338
|
readonly url?: string | undefined
|
|
312
339
|
readonly headers?: Headers.Headers | undefined
|
|
313
|
-
readonly remoteAddress?: string | undefined
|
|
340
|
+
readonly remoteAddress?: Option.Option<string> | undefined
|
|
314
341
|
}
|
|
315
342
|
) {
|
|
316
343
|
return new BunServerRequest(
|
|
@@ -319,7 +346,7 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
|
|
|
319
346
|
options.url ?? this.url,
|
|
320
347
|
this.bunServer,
|
|
321
348
|
options.headers ?? this.headersOverride,
|
|
322
|
-
options.remoteAddress
|
|
349
|
+
"remoteAddress" in options ? options.remoteAddress : this.remoteAddressOverride
|
|
323
350
|
)
|
|
324
351
|
}
|
|
325
352
|
get method(): HttpMethod {
|
|
@@ -328,8 +355,8 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
|
|
|
328
355
|
get originalUrl() {
|
|
329
356
|
return this.source.url
|
|
330
357
|
}
|
|
331
|
-
get remoteAddress(): string
|
|
332
|
-
return this.remoteAddressOverride ?? this.bunServer.requestIP(this.source)?.address
|
|
358
|
+
get remoteAddress(): Option.Option<string> {
|
|
359
|
+
return this.remoteAddressOverride ?? Option.fromNullishOr(this.bunServer.requestIP(this.source)?.address)
|
|
333
360
|
}
|
|
334
361
|
get headers(): Headers.Headers {
|
|
335
362
|
this.headersOverride ??= Headers.fromInput(this.source.headers)
|
|
@@ -386,10 +413,10 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
|
|
|
386
413
|
return this.textEffect
|
|
387
414
|
}
|
|
388
415
|
|
|
389
|
-
get json(): Effect.Effect<
|
|
416
|
+
get json(): Effect.Effect<Schema.Json, Error.HttpServerError> {
|
|
390
417
|
return Effect.flatMap(this.text, (_) =>
|
|
391
418
|
Effect.try({
|
|
392
|
-
try: () => JSON.parse(_) as
|
|
419
|
+
try: () => JSON.parse(_) as Schema.Json,
|
|
393
420
|
catch: (cause) =>
|
|
394
421
|
new Error.HttpServerError({
|
|
395
422
|
reason: new Error.RequestParseError({
|
|
@@ -463,7 +490,7 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
|
|
|
463
490
|
return Effect.callback<Socket.Socket, Error.HttpServerError>((resume) => {
|
|
464
491
|
const deferred = Deferred.makeUnsafe<ServerWebSocket<WebSocketContext>>()
|
|
465
492
|
const closeDeferred = Deferred.makeUnsafe<void, Socket.SocketError>()
|
|
466
|
-
const semaphore =
|
|
493
|
+
const semaphore = Semaphore.makeUnsafe(1)
|
|
467
494
|
|
|
468
495
|
const success = this.bunServer.upgrade(this.source, {
|
|
469
496
|
data: {
|
package/src/BunSocket.ts
CHANGED
|
@@ -30,7 +30,7 @@ export const layerWebSocket: (
|
|
|
30
30
|
url: string | Effect<string>,
|
|
31
31
|
options?: {
|
|
32
32
|
readonly closeCodeIsError?: ((code: number) => boolean) | undefined
|
|
33
|
-
readonly openTimeout?: Duration.
|
|
33
|
+
readonly openTimeout?: Duration.Input | undefined
|
|
34
34
|
readonly protocols?: string | Array<string> | undefined
|
|
35
35
|
} | undefined
|
|
36
36
|
) => Layer.Layer<Socket.Socket, never, never> = flow(
|