@effect/platform-bun 4.0.0-beta.4 → 4.0.0-beta.41

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.
@@ -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;AAErC,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"}
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"}
@@ -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 ?? config.runnerAddress;
30
- if (listenAddress === undefined) {
31
- return yield* Effect.die("BunClusterHttp.layerHttpServer: ShardingConfig.runnerAddress is undefined");
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","undefined","die","layer","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":[]}
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":[]}
@@ -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 type * as Scope from "effect/Scope";
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>) => Effect.Effect<{
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>) => Layer.Layer<Server.HttpServer>;
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>) => Layer.Layer<Server.HttpServer | HttpPlatform | Etag.Generator | BunServices.BunServices>;
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>>) => Layer.Layer<Server.HttpServer | HttpPlatform | FileSystem.FileSystem | Etag.Generator | Path.Path, ConfigError>;
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":"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"}
1
+ {"version":3,"file":"BunHttpServer.d.ts","sourceRoot":"","sources":["../src/BunHttpServer.ts"],"names":[],"mappings":"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"}
@@ -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.addFinalizer(() => Effect.promise(() => server.stop()));
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 scope = yield* Effect.scope;
66
- const services = yield* Effect.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.clientAbortFiberId);
90
+ fiber.interruptUnsafe(parent.id, Error.ClientAbort.annotation);
78
91
  }, {
79
92
  once: true
80
93
  });
81
94
  });
82
95
  }
83
- yield* Effect.acquireRelease(Effect.sync(() => {
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 ?? this.remoteAddressOverride);
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 = Effect.makeSemaphoreUnsafe(1);
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":"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","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":[]}
@@ -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.DurationInput | undefined;
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
@@ -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,aAAa,GAAG,SAAS,CAAA;IACzD,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"}
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",
4
+ "version": "4.0.0-beta.41",
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.4"
48
+ "effect": "^4.0.0-beta.41"
49
49
  },
50
50
  "dependencies": {
51
- "@effect/platform-node-shared": "^4.0.0-beta.4"
51
+ "@effect/platform-node-shared": "^4.0.0-beta.41"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@types/bun": "^1.3.8",
55
- "effect": "^4.0.0-beta.4"
55
+ "effect": "^4.0.0-beta.41"
56
56
  },
57
57
  "scripts": {
58
58
  "codegen": "effect-utils codegen",
@@ -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 ?? config.runnerAddress
51
- if (listenAddress === undefined) {
52
- return yield* Effect.die("BunClusterHttp.layerHttpServer: ShardingConfig.runnerAddress is undefined")
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
  /**
@@ -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 Scope from "effect/Scope"
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.addFinalizer(() => Effect.promise(() => server.stop()))
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 scope = yield* Effect.scope
98
- const services = yield* Effect.services<never>()
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.clientAbortFiberId)
133
+ fiber.interruptUnsafe(parent.id, Error.ClientAbort.annotation)
114
134
  }, { once: true })
115
135
  })
116
136
  }
117
137
 
118
- yield* Effect.acquireRelease(
119
- Effect.sync(() => {
120
- handlerStack.push(handler)
121
- server.reload({ fetch: handler })
122
- }),
123
- () =>
124
- Effect.sync(() => {
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<ServeOptions<R>>
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 ?? this.remoteAddressOverride
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 | undefined {
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<unknown, Error.HttpServerError> {
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 unknown,
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 = Effect.makeSemaphoreUnsafe(1)
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.DurationInput | undefined
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(