@effect/platform-bun 4.0.0-beta.6 → 4.0.0-beta.62

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,7 @@
1
1
  import * as Config from "effect/Config";
2
+ import * as Context from "effect/Context";
2
3
  import * as Deferred from "effect/Deferred";
4
+ import * as Duration from "effect/Duration";
3
5
  import * as Effect from "effect/Effect";
4
6
  import * as Exit from "effect/Exit";
5
7
  import * as Fiber from "effect/Fiber";
@@ -7,8 +9,9 @@ import * as FiberSet from "effect/FiberSet";
7
9
  import { flow } from "effect/Function";
8
10
  import * as Inspectable from "effect/Inspectable";
9
11
  import * as Layer from "effect/Layer";
12
+ import * as Option from "effect/Option";
13
+ import * as Scope from "effect/Scope";
10
14
  import * as Semaphore from "effect/Semaphore";
11
- import * as ServiceMap from "effect/ServiceMap";
12
15
  import * as Stream from "effect/Stream";
13
16
  import * as Cookies from "effect/unstable/http/Cookies";
14
17
  import * as Etag from "effect/unstable/http/Etag";
@@ -30,6 +33,7 @@ import * as BunStream from "./BunStream.js";
30
33
  * @category Constructors
31
34
  */
32
35
  export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
36
+ const scope = yield* Effect.scope;
33
37
  const handlerStack = [function (_request, _server) {
34
38
  return new Response("not found", {
35
39
  status: 404
@@ -46,6 +50,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
46
50
  ws.data.run(message);
47
51
  },
48
52
  close(ws, code, closeReason) {
53
+ code = typeof code === "number" ? code : 1001;
49
54
  Deferred.doneUnsafe(ws.data.closeDeferred, Socket.defaultCloseCodeIsError(code) ? Exit.fail(new Socket.SocketError({
50
55
  reason: new Socket.SocketCloseError({
51
56
  code,
@@ -55,7 +60,12 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
55
60
  }
56
61
  }
57
62
  });
58
- 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);
59
69
  return Server.make({
60
70
  address: {
61
71
  _tag: "TcpAddress",
@@ -63,8 +73,10 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
63
73
  hostname: server.hostname
64
74
  },
65
75
  serve: Effect.fnUntraced(function* (httpApp, middleware) {
66
- const scope = yield* Effect.scope;
67
- const services = yield* Effect.services();
76
+ const parent = yield* Effect.fiber;
77
+ const services = parent.context;
78
+ const serveScope = Context.getUnsafe(services, Scope.Scope);
79
+ const scope = Scope.forkUnsafe(serveScope, "parallel");
68
80
  const httpEffect = HttpEffect.toHandled(httpApp, (request, response) => Effect.sync(() => {
69
81
  ;
70
82
  request.resolve(makeResponse(request, response, services, scope));
@@ -73,29 +85,29 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
73
85
  return new Promise((resolve, _reject) => {
74
86
  const map = new Map(services.mapUnsafe);
75
87
  map.set(ServerRequest.HttpServerRequest.key, new BunServerRequest(request, resolve, removeHost(request.url), server));
76
- const fiber = Fiber.runIn(Effect.runForkWith(ServiceMap.makeUnsafe(map))(httpEffect), scope);
88
+ const fiber = Fiber.runIn(Effect.runForkWith(Context.makeUnsafe(map))(httpEffect), scope);
77
89
  request.signal.addEventListener("abort", () => {
78
- fiber.interruptUnsafe(Error.clientAbortFiberId);
90
+ fiber.interruptUnsafe(parent.id, Error.ClientAbort.annotation);
79
91
  }, {
80
92
  once: true
81
93
  });
82
94
  });
83
95
  }
84
- yield* Effect.acquireRelease(Effect.sync(() => {
85
- handlerStack.push(handler);
86
- server.reload({
87
- fetch: handler
88
- });
89
- }), () => Effect.sync(() => {
96
+ yield* Scope.addFinalizerExit(serveScope, () => {
90
97
  handlerStack.pop();
91
98
  server.reload({
92
99
  fetch: handlerStack[handlerStack.length - 1]
93
100
  });
94
- }));
101
+ return preemptiveShutdown;
102
+ });
103
+ handlerStack.push(handler);
104
+ server.reload({
105
+ fetch: handler
106
+ });
95
107
  })
96
108
  });
97
109
  });
98
- const makeResponse = (request, response, services, scope) => {
110
+ const makeResponse = (request, response, context, scope) => {
99
111
  const fields = {
100
112
  headers: new globalThis.Headers(response.headers),
101
113
  status: response.status
@@ -138,7 +150,7 @@ const makeResponse = (request, response, services, scope) => {
138
150
  return new Response(Stream.toReadableStreamWith(Stream.unwrap(Effect.withFiber(fiber => {
139
151
  Fiber.runIn(fiber, scope);
140
152
  return Effect.succeed(body.stream);
141
- })), services), fields);
153
+ })), context), fields);
142
154
  }
143
155
  }
144
156
  };
@@ -202,7 +214,7 @@ class BunServerRequest extends Inspectable.Class {
202
214
  });
203
215
  }
204
216
  modify(options) {
205
- 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);
206
218
  }
207
219
  get method() {
208
220
  return this.source.method.toUpperCase();
@@ -211,7 +223,7 @@ class BunServerRequest extends Inspectable.Class {
211
223
  return this.source.url;
212
224
  }
213
225
  get remoteAddress() {
214
- return this.remoteAddressOverride ?? this.bunServer.requestIP(this.source)?.address;
226
+ return this.remoteAddressOverride ?? Option.fromNullishOr(this.bunServer.requestIP(this.source)?.address);
215
227
  }
216
228
  get headers() {
217
229
  this.headersOverride ??= Headers.fromInput(this.source.headers);
@@ -226,7 +238,7 @@ class BunServerRequest extends Inspectable.Class {
226
238
  }
227
239
  get stream() {
228
240
  return this.source.body ? BunStream.fromReadableStream({
229
- evaluate: () => this.source.body,
241
+ evaluate: () => this.source.body ?? emptyReadbleStream,
230
242
  onError: cause => new Error.HttpServerError({
231
243
  reason: new Error.RequestParseError({
232
244
  request: this,
@@ -303,6 +315,7 @@ class BunServerRequest extends Inspectable.Class {
303
315
  })
304
316
  })
305
317
  })));
318
+ this.textEffect = Effect.map(this.arrayBufferEffect, _ => new TextDecoder().decode(_));
306
319
  return this.arrayBufferEffect;
307
320
  }
308
321
  get upgrade() {
@@ -354,11 +367,7 @@ class BunServerRequest extends Inspectable.Class {
354
367
  if (opts?.onOpen) yield* opts.onOpen;
355
368
  return yield* FiberSet.join(set);
356
369
  }, Effect.scoped, Effect.onExit(exit => Effect.sync(() => ws.close(exit._tag === "Success" ? 1000 : 1011))), Effect.raceFirst(Deferred.await(closeDeferred)), semaphore.withPermits(1));
357
- const encoder = new TextEncoder();
358
- const run = (handler, opts) => runRaw(data => typeof data === "string" ? handler(encoder.encode(data)) : handler(data), opts);
359
- return Socket.Socket.of({
360
- [Socket.TypeId]: Socket.TypeId,
361
- run,
370
+ return Socket.make({
362
371
  runRaw,
363
372
  writer
364
373
  });
@@ -366,6 +375,12 @@ class BunServerRequest extends Inspectable.Class {
366
375
  });
367
376
  }
368
377
  }
378
+ const emptyReadbleStream = /*#__PURE__*/new ReadableStream({
379
+ start(controller) {
380
+ controller.enqueue(new Uint8Array());
381
+ controller.close();
382
+ }
383
+ });
369
384
  const removeHost = url => {
370
385
  if (url[0] === "/") {
371
386
  return url;
@@ -1 +1 @@
1
- {"version":3,"file":"BunHttpServer.js","names":["Config","Deferred","Effect","Exit","Fiber","FiberSet","flow","Inspectable","Layer","Semaphore","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","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","Context","Deferred","Duration","Effect","Exit","Fiber","FiberSet","flow","Inspectable","Layer","Option","Scope","Semaphore","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","context","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","emptyReadbleStream","onError","cause","HttpServerError","RequestParseError","description","textEffect","text","runSync","tryPromise","try","catch","json","JSON","parse","urlParamsBody","URLSearchParams","multipartEffect","multipart","persisted","multipartStream","arrayBufferEffect","arrayBuffer","TextDecoder","decode","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","ReadableStream","start","controller","enqueue","Uint8Array","index","indexOf","slice"],"sources":["../src/BunHttpServer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"BunMultipart.d.ts","sourceRoot":"","sources":["../src/BunMultipart.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,SAAS,MAAM,gCAAgC,CAAA;AAG3D;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,QAAQ,OAAO,KAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,cAAc,CAM5F,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,SAAS,GACpB,QAAQ,OAAO,KACd,MAAM,CAAC,MAAM,CACd,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,cAAc,EACtB,UAAU,GACV,IAAI,GACJ,KAAK,CAAC,KAAK,CAC2B,CAAA"}
1
+ {"version":3,"file":"BunMultipart.d.ts","sourceRoot":"","sources":["../src/BunMultipart.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,SAAS,MAAM,gCAAgC,CAAA;AAG3D;;;GAGG;AACH,eAAO,MAAM,MAAM,GAAI,QAAQ,OAAO,KAAG,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,cAAc,CAM5F,CAAA;AASH;;;GAGG;AACH,eAAO,MAAM,SAAS,GACpB,QAAQ,OAAO,KACd,MAAM,CAAC,MAAM,CACd,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,cAAc,EACtB,UAAU,GACV,IAAI,GACJ,KAAK,CAAC,KAAK,CAC2B,CAAA"}
@@ -6,9 +6,15 @@ import * as BunStream from "./BunStream.js";
6
6
  * @category Constructors
7
7
  */
8
8
  export const stream = source => BunStream.fromReadableStream({
9
- evaluate: () => source.body,
9
+ evaluate: () => source.body ?? emptyReadbleStream,
10
10
  onError: cause => Multipart.MultipartError.fromReason("InternalError", cause)
11
11
  }).pipe(Stream.pipeThroughChannel(Multipart.makeChannel(Object.fromEntries(source.headers))));
12
+ const emptyReadbleStream = /*#__PURE__*/new ReadableStream({
13
+ start(controller) {
14
+ controller.enqueue(new Uint8Array());
15
+ controller.close();
16
+ }
17
+ });
12
18
  /**
13
19
  * @since 1.0.0
14
20
  * @category Constructors
@@ -1 +1 @@
1
- {"version":3,"file":"BunMultipart.js","names":["Stream","Multipart","BunStream","stream","source","fromReadableStream","evaluate","body","onError","cause","MultipartError","fromReason","pipe","pipeThroughChannel","makeChannel","Object","fromEntries","headers","persisted","toPersisted"],"sources":["../src/BunMultipart.ts"],"sourcesContent":[null],"mappings":"AAOA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,SAAS,MAAM,gCAAgC;AAC3D,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;;AAIA,OAAO,MAAMC,MAAM,GAAIC,MAAe,IACpCF,SAAS,CAACG,kBAAkB,CAAC;EAC3BC,QAAQ,EAAEA,CAAA,KAAMF,MAAM,CAACG,IAAK;EAC5BC,OAAO,EAAGC,KAAK,IAAKR,SAAS,CAACS,cAAc,CAACC,UAAU,CAAC,eAAe,EAAEF,KAAK;CAC/E,CAAC,CAACG,IAAI,CACLZ,MAAM,CAACa,kBAAkB,CAACZ,SAAS,CAACa,WAAW,CAACC,MAAM,CAACC,WAAW,CAACZ,MAAM,CAACa,OAAO,CAAC,CAAC,CAAC,CACrF;AAEH;;;;AAIA,OAAO,MAAMC,SAAS,GACpBd,MAAe,IAOZH,SAAS,CAACkB,WAAW,CAAChB,MAAM,CAACC,MAAM,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"BunMultipart.js","names":["Stream","Multipart","BunStream","stream","source","fromReadableStream","evaluate","body","emptyReadbleStream","onError","cause","MultipartError","fromReason","pipe","pipeThroughChannel","makeChannel","Object","fromEntries","headers","ReadableStream","start","controller","enqueue","Uint8Array","close","persisted","toPersisted"],"sources":["../src/BunMultipart.ts"],"sourcesContent":[null],"mappings":"AAOA,OAAO,KAAKA,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,SAAS,MAAM,gCAAgC;AAC3D,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;;AAIA,OAAO,MAAMC,MAAM,GAAIC,MAAe,IACpCF,SAAS,CAACG,kBAAkB,CAAC;EAC3BC,QAAQ,EAAEA,CAAA,KAAMF,MAAM,CAACG,IAAI,IAAIC,kBAAkB;EACjDC,OAAO,EAAGC,KAAK,IAAKT,SAAS,CAACU,cAAc,CAACC,UAAU,CAAC,eAAe,EAAEF,KAAK;CAC/E,CAAC,CAACG,IAAI,CACLb,MAAM,CAACc,kBAAkB,CAACb,SAAS,CAACc,WAAW,CAACC,MAAM,CAACC,WAAW,CAACb,MAAM,CAACc,OAAO,CAAC,CAAC,CAAC,CACrF;AAEH,MAAMV,kBAAkB,gBAAG,IAAIW,cAAc,CAAC;EAC5CC,KAAKA,CAACC,UAAU;IACdA,UAAU,CAACC,OAAO,CAAC,IAAIC,UAAU,EAAE,CAAC;IACpCF,UAAU,CAACG,KAAK,EAAE;EACpB;CACD,CAAC;AAEF;;;;AAIA,OAAO,MAAMC,SAAS,GACpBrB,MAAe,IAOZH,SAAS,CAACyB,WAAW,CAACvB,MAAM,CAACC,MAAM,CAAC,CAAC","ignoreList":[]}
@@ -3,11 +3,11 @@
3
3
  */
4
4
  import { RedisClient, type RedisOptions } from "bun";
5
5
  import * as Config from "effect/Config";
6
+ import * as Context from "effect/Context";
6
7
  import * as Effect from "effect/Effect";
7
8
  import * as Layer from "effect/Layer";
8
- import * as ServiceMap from "effect/ServiceMap";
9
9
  import * as Redis from "effect/unstable/persistence/Redis";
10
- declare const BunRedis_base: ServiceMap.ServiceClass<BunRedis, "@effect/platform-bun/BunRedis", {
10
+ declare const BunRedis_base: Context.ServiceClass<BunRedis, "@effect/platform-bun/BunRedis", {
11
11
  readonly client: RedisClient;
12
12
  readonly use: <A>(f: (client: RedisClient) => Promise<A>) => Effect.Effect<A, Redis.RedisError>;
13
13
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"BunRedis.d.ts","sourceRoot":"","sources":["../src/BunRedis.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,KAAK,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,mCAAmC,CAAA;;qBAOvC,WAAW;kBACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;;AANjG;;;GAGG;AACH,qBAAa,QAAS,SAAQ,aAGO;CAAG;AAmCxC;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,UAAU,CAAC;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAAC,GAAG,SAAS,KAC/D,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAwC,CAAA;AAE7E;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,SAAS,MAAM,CAAC,IAAI,CAAC;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAAC,KAC7D,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,EAAE,MAAM,CAAC,WAAW,CAKtD,CAAA"}
1
+ {"version":3,"file":"BunRedis.d.ts","sourceRoot":"","sources":["../src/BunRedis.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,KAAK,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,KAAK,MAAM,mCAAmC,CAAA;;qBAOvC,WAAW;kBACd,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC;;AANjG;;;GAGG;AACH,qBAAa,QAAS,SAAQ,aAGO;CAAG;AAmCxC;;;GAGG;AACH,eAAO,MAAM,KAAK,GAChB,UAAU,CAAC;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAAC,GAAG,SAAS,KAC/D,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAuC,CAAA;AAE5E;;;GAGG;AACH,eAAO,MAAM,WAAW,GACtB,SAAS,MAAM,CAAC,IAAI,CAAC;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,YAAY,CAAC,KAC7D,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,EAAE,MAAM,CAAC,WAAW,CAKtD,CAAA"}
package/dist/BunRedis.js CHANGED
@@ -3,17 +3,17 @@
3
3
  */
4
4
  import { RedisClient } from "bun";
5
5
  import * as Config from "effect/Config";
6
+ import * as Context from "effect/Context";
6
7
  import * as Effect from "effect/Effect";
7
8
  import * as Fn from "effect/Function";
8
9
  import * as Layer from "effect/Layer";
9
10
  import * as Scope from "effect/Scope";
10
- import * as ServiceMap from "effect/ServiceMap";
11
11
  import * as Redis from "effect/unstable/persistence/Redis";
12
12
  /**
13
13
  * @since 1.0.0
14
14
  * @category Service
15
15
  */
16
- export class BunRedis extends /*#__PURE__*/ServiceMap.Service()("@effect/platform-bun/BunRedis") {}
16
+ export class BunRedis extends /*#__PURE__*/Context.Service()("@effect/platform-bun/BunRedis") {}
17
17
  const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
18
18
  const scope = yield* Effect.scope;
19
19
  yield* Scope.addFinalizer(scope, Effect.sync(() => client.close()));
@@ -36,16 +36,16 @@ const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
36
36
  client,
37
37
  use
38
38
  });
39
- return ServiceMap.make(BunRedis, bunRedis).pipe(ServiceMap.add(Redis.Redis, redis));
39
+ return Context.make(BunRedis, bunRedis).pipe(Context.add(Redis.Redis, redis));
40
40
  });
41
41
  /**
42
42
  * @since 1.0.0
43
43
  * @category Layers
44
44
  */
45
- export const layer = options => Layer.effectServices(make(options));
45
+ export const layer = options => Layer.effectContext(make(options));
46
46
  /**
47
47
  * @since 1.0.0
48
48
  * @category Layers
49
49
  */
50
- export const layerConfig = options => Layer.effectServices(Config.unwrap(options).asEffect().pipe(Effect.flatMap(make)));
50
+ export const layerConfig = options => Layer.effectContext(Config.unwrap(options).asEffect().pipe(Effect.flatMap(make)));
51
51
  //# sourceMappingURL=BunRedis.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BunRedis.js","names":["RedisClient","Config","Effect","Fn","Layer","Scope","ServiceMap","Redis","BunRedis","Service","make","fnUntraced","options","scope","addFinalizer","sync","client","close","url","use","f","tryPromise","try","catch","cause","RedisError","redis","send","command","args","bunRedis","identity","pipe","add","layer","effectServices","layerConfig","unwrap","asEffect","flatMap"],"sources":["../src/BunRedis.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,SAASA,WAAW,QAA2B,KAAK;AACpD,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,EAAE,MAAM,iBAAiB;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,UAAU,MAAM,mBAAmB;AAC/C,OAAO,KAAKC,KAAK,MAAM,mCAAmC;AAE1D;;;;AAIA,OAAM,MAAOC,QAAS,sBAAQF,UAAU,CAACG,OAAO,EAG5C,CAAC,+BAA+B,CAAC;AAErC,MAAMC,IAAI,gBAAGR,MAAM,CAACS,UAAU,CAAC,WAC7BC,OAEgB;EAEhB,MAAMC,KAAK,GAAG,OAAOX,MAAM,CAACW,KAAK;EACjC,OAAOR,KAAK,CAACS,YAAY,CAACD,KAAK,EAAEX,MAAM,CAACa,IAAI,CAAC,MAAMC,MAAM,CAACC,KAAK,EAAE,CAAC,CAAC;EACnE,MAAMD,MAAM,GAAG,IAAIhB,WAAW,CAACY,OAAO,EAAEM,GAAG,EAAEN,OAAO,CAAC;EAErD,MAAMO,GAAG,GAAOC,CAAsC,IACpDlB,MAAM,CAACmB,UAAU,CAAC;IAChBC,GAAG,EAAEA,CAAA,KAAMF,CAAC,CAACJ,MAAM,CAAC;IACpBO,KAAK,EAAGC,KAAK,IAAK,IAAIjB,KAAK,CAACkB,UAAU,CAAC;MAAED;IAAK,CAAE;GACjD,CAAC;EAEJ,MAAME,KAAK,GAAG,OAAOnB,KAAK,CAACG,IAAI,CAAC;IAC9BiB,IAAI,EAAEA,CAAcC,OAAe,EAAE,GAAGC,IAA2B,KACjE3B,MAAM,CAACmB,UAAU,CAAC;MAChBC,GAAG,EAAEA,CAAA,KAAMN,MAAM,CAACW,IAAI,CAACC,OAAO,EAAEC,IAAqB,CAAe;MACpEN,KAAK,EAAGC,KAAK,IAAK,IAAIjB,KAAK,CAACkB,UAAU,CAAC;QAAED;MAAK,CAAE;KACjD;GACJ,CAAC;EAEF,MAAMM,QAAQ,GAAG3B,EAAE,CAAC4B,QAAQ,CAAsB;IAChDf,MAAM;IACNG;GACD,CAAC;EAEF,OAAOb,UAAU,CAACI,IAAI,CAACF,QAAQ,EAAEsB,QAAQ,CAAC,CAACE,IAAI,CAC7C1B,UAAU,CAAC2B,GAAG,CAAC1B,KAAK,CAACA,KAAK,EAAEmB,KAAK,CAAC,CACnC;AACH,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMQ,KAAK,GAChBtB,OAAgE,IACxBR,KAAK,CAAC+B,cAAc,CAACzB,IAAI,CAACE,OAAO,CAAC,CAAC;AAE7E;;;;AAIA,OAAO,MAAMwB,WAAW,GACtBxB,OAA8D,IAE9DR,KAAK,CAAC+B,cAAc,CAClBlC,MAAM,CAACoC,MAAM,CAACzB,OAAO,CAAC,CAAC0B,QAAQ,EAAE,CAACN,IAAI,CACpC9B,MAAM,CAACqC,OAAO,CAAC7B,IAAI,CAAC,CACrB,CACF","ignoreList":[]}
1
+ {"version":3,"file":"BunRedis.js","names":["RedisClient","Config","Context","Effect","Fn","Layer","Scope","Redis","BunRedis","Service","make","fnUntraced","options","scope","addFinalizer","sync","client","close","url","use","f","tryPromise","try","catch","cause","RedisError","redis","send","command","args","bunRedis","identity","pipe","add","layer","effectContext","layerConfig","unwrap","asEffect","flatMap"],"sources":["../src/BunRedis.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,SAASA,WAAW,QAA2B,KAAK;AACpD,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,EAAE,MAAM,iBAAiB;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,KAAK,MAAM,mCAAmC;AAE1D;;;;AAIA,OAAM,MAAOC,QAAS,sBAAQN,OAAO,CAACO,OAAO,EAGzC,CAAC,+BAA+B,CAAC;AAErC,MAAMC,IAAI,gBAAGP,MAAM,CAACQ,UAAU,CAAC,WAC7BC,OAEgB;EAEhB,MAAMC,KAAK,GAAG,OAAOV,MAAM,CAACU,KAAK;EACjC,OAAOP,KAAK,CAACQ,YAAY,CAACD,KAAK,EAAEV,MAAM,CAACY,IAAI,CAAC,MAAMC,MAAM,CAACC,KAAK,EAAE,CAAC,CAAC;EACnE,MAAMD,MAAM,GAAG,IAAIhB,WAAW,CAACY,OAAO,EAAEM,GAAG,EAAEN,OAAO,CAAC;EAErD,MAAMO,GAAG,GAAOC,CAAsC,IACpDjB,MAAM,CAACkB,UAAU,CAAC;IAChBC,GAAG,EAAEA,CAAA,KAAMF,CAAC,CAACJ,MAAM,CAAC;IACpBO,KAAK,EAAGC,KAAK,IAAK,IAAIjB,KAAK,CAACkB,UAAU,CAAC;MAAED;IAAK,CAAE;GACjD,CAAC;EAEJ,MAAME,KAAK,GAAG,OAAOnB,KAAK,CAACG,IAAI,CAAC;IAC9BiB,IAAI,EAAEA,CAAcC,OAAe,EAAE,GAAGC,IAA2B,KACjE1B,MAAM,CAACkB,UAAU,CAAC;MAChBC,GAAG,EAAEA,CAAA,KAAMN,MAAM,CAACW,IAAI,CAACC,OAAO,EAAEC,IAAqB,CAAe;MACpEN,KAAK,EAAGC,KAAK,IAAK,IAAIjB,KAAK,CAACkB,UAAU,CAAC;QAAED;MAAK,CAAE;KACjD;GACJ,CAAC;EAEF,MAAMM,QAAQ,GAAG1B,EAAE,CAAC2B,QAAQ,CAAsB;IAChDf,MAAM;IACNG;GACD,CAAC;EAEF,OAAOjB,OAAO,CAACQ,IAAI,CAACF,QAAQ,EAAEsB,QAAQ,CAAC,CAACE,IAAI,CAC1C9B,OAAO,CAAC+B,GAAG,CAAC1B,KAAK,CAACA,KAAK,EAAEmB,KAAK,CAAC,CAChC;AACH,CAAC,CAAC;AAEF;;;;AAIA,OAAO,MAAMQ,KAAK,GAChBtB,OAAgE,IACxBP,KAAK,CAAC8B,aAAa,CAACzB,IAAI,CAACE,OAAO,CAAC,CAAC;AAE5E;;;;AAIA,OAAO,MAAMwB,WAAW,GACtBxB,OAA8D,IAE9DP,KAAK,CAAC8B,aAAa,CACjBlC,MAAM,CAACoC,MAAM,CAACzB,OAAO,CAAC,CAAC0B,QAAQ,EAAE,CAACN,IAAI,CACpC7B,MAAM,CAACoC,OAAO,CAAC7B,IAAI,CAAC,CACrB,CACF","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"}
@@ -28,7 +28,7 @@ export const layer = /*#__PURE__*/Layer.succeed(WorkerRunner.WorkerRunnerPlatfor
28
28
  const run = handler => Effect.scopedWith(Effect.fnUntraced(function* (scope) {
29
29
  const closeLatch = Deferred.makeUnsafe();
30
30
  const trackFiber = Fiber.runIn(scope);
31
- const services = yield* Effect.services();
31
+ const services = yield* Effect.context();
32
32
  const runFork = Effect.runForkWith(services);
33
33
  const onExit = exit => {
34
34
  if (exit._tag === "Failure" && !Cause.hasInterruptsOnly(exit.cause)) {
@@ -1 +1 @@
1
- {"version":3,"file":"BunWorkerRunner.js","names":["Cause","Deferred","Effect","Exit","Fiber","identity","Layer","Scope","WorkerError","WorkerReceiveError","WorkerSpawnError","WorkerRunner","layer","succeed","WorkerRunnerPlatform","start","fnUntraced","self","reason","message","port","run","handler","scopedWith","scope","closeLatch","makeUnsafe","trackFiber","runIn","services","runFork","runForkWith","onExit","exit","_tag","hasInterruptsOnly","cause","logError","onMessage","event","data","result","isEffect","fiber","addObserver","close","doneUnsafe","void","onMessageError","error","asEffect","onError","addFinalizer","sync","removeEventListener","addEventListener","postMessage","await","sendUnsafe","_portId","transfer","send"],"sources":["../src/BunWorkerRunner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"BunWorkerRunner.js","names":["Cause","Deferred","Effect","Exit","Fiber","identity","Layer","Scope","WorkerError","WorkerReceiveError","WorkerSpawnError","WorkerRunner","layer","succeed","WorkerRunnerPlatform","start","fnUntraced","self","reason","message","port","run","handler","scopedWith","scope","closeLatch","makeUnsafe","trackFiber","runIn","services","context","runFork","runForkWith","onExit","exit","_tag","hasInterruptsOnly","cause","logError","onMessage","event","data","result","isEffect","fiber","addObserver","close","doneUnsafe","void","onMessageError","error","asEffect","onError","addFinalizer","sync","removeEventListener","addEventListener","postMessage","await","sendUnsafe","_portId","transfer","send"],"sources":["../src/BunWorkerRunner.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
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.6",
4
+ "version": "4.0.0-beta.62",
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.6"
48
+ "effect": "^4.0.0-beta.62"
49
49
  },
50
50
  "dependencies": {
51
- "@effect/platform-node-shared": "^4.0.0-beta.6"
51
+ "@effect/platform-node-shared": "^4.0.0-beta.62"
52
52
  },
53
53
  "devDependencies": {
54
- "@types/bun": "^1.3.8",
55
- "effect": "^4.0.0-beta.6"
54
+ "@types/bun": "^1.3.12",
55
+ "effect": "^4.0.0-beta.62"
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
  /**
@@ -4,7 +4,9 @@
4
4
  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
+ import * as Context from "effect/Context"
7
8
  import * as Deferred from "effect/Deferred"
9
+ import * as Duration from "effect/Duration"
8
10
  import * as Effect from "effect/Effect"
9
11
  import * as Exit from "effect/Exit"
10
12
  import * as Fiber from "effect/Fiber"
@@ -13,11 +15,12 @@ import type * as FileSystem from "effect/FileSystem"
13
15
  import { flow } from "effect/Function"
14
16
  import * as Inspectable from "effect/Inspectable"
15
17
  import * as Layer from "effect/Layer"
18
+ import * as Option from "effect/Option"
16
19
  import type * as Path from "effect/Path"
17
20
  import type * as Record from "effect/Record"
18
- import type * as Scope from "effect/Scope"
21
+ import type * as Schema from "effect/Schema"
22
+ import * as Scope from "effect/Scope"
19
23
  import * as Semaphore from "effect/Semaphore"
20
- import * as ServiceMap from "effect/ServiceMap"
21
24
  import * as Stream from "effect/Stream"
22
25
  import * as Cookies from "effect/unstable/http/Cookies"
23
26
  import * as Etag from "effect/unstable/http/Etag"
@@ -57,8 +60,12 @@ export type ServeOptions<R extends string> =
57
60
  */
58
61
  export const make = Effect.fnUntraced(
59
62
  function*<R extends string>(
60
- options: ServeOptions<R>
63
+ options: ServeOptions<R> & {
64
+ readonly disablePreemptiveShutdown?: boolean | undefined
65
+ readonly gracefulShutdownTimeout?: Duration.Input | undefined
66
+ }
61
67
  ) {
68
+ const scope = yield* Effect.scope
62
69
  const handlerStack: Array<(request: Request, server: BunServer<WebSocketContext>) => Response | Promise<Response>> =
63
70
  [
64
71
  function(_request, _server) {
@@ -76,6 +83,7 @@ export const make = Effect.fnUntraced(
76
83
  ws.data.run(message)
77
84
  },
78
85
  close(ws, code, closeReason) {
86
+ code = typeof code === "number" ? code : 1001
79
87
  Deferred.doneUnsafe(
80
88
  ws.data.closeDeferred,
81
89
  Socket.defaultCloseCodeIsError(code)
@@ -90,13 +98,24 @@ export const make = Effect.fnUntraced(
90
98
  }
91
99
  })
92
100
 
93
- 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)
94
110
 
95
111
  return Server.make({
96
112
  address: { _tag: "TcpAddress", port: server.port!, hostname: server.hostname! },
97
113
  serve: Effect.fnUntraced(function*(httpApp, middleware) {
98
- const scope = yield* Effect.scope
99
- const services = yield* Effect.services<never>()
114
+ const parent = yield* Effect.fiber
115
+ const services = parent.context
116
+ const serveScope = Context.getUnsafe(services, Scope.Scope)
117
+ const scope = Scope.forkUnsafe(serveScope, "parallel")
118
+
100
119
  const httpEffect = HttpEffect.toHandled(httpApp, (request, response) =>
101
120
  Effect.sync(() => {
102
121
  ;(request as BunServerRequest).resolve(makeResponse(request, response, services, scope))
@@ -109,24 +128,20 @@ export const make = Effect.fnUntraced(
109
128
  ServerRequest.HttpServerRequest.key,
110
129
  new BunServerRequest(request, resolve, removeHost(request.url), server)
111
130
  )
112
- const fiber = Fiber.runIn(Effect.runForkWith(ServiceMap.makeUnsafe<any>(map))(httpEffect), scope)
131
+ const fiber = Fiber.runIn(Effect.runForkWith(Context.makeUnsafe<any>(map))(httpEffect), scope)
113
132
  request.signal.addEventListener("abort", () => {
114
- fiber.interruptUnsafe(Error.clientAbortFiberId)
133
+ fiber.interruptUnsafe(parent.id, Error.ClientAbort.annotation)
115
134
  }, { once: true })
116
135
  })
117
136
  }
118
137
 
119
- yield* Effect.acquireRelease(
120
- Effect.sync(() => {
121
- handlerStack.push(handler)
122
- server.reload({ fetch: handler })
123
- }),
124
- () =>
125
- Effect.sync(() => {
126
- handlerStack.pop()
127
- server.reload({ fetch: handlerStack[handlerStack.length - 1] })
128
- })
129
- )
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 })
130
145
  })
131
146
  })
132
147
  }
@@ -135,7 +150,7 @@ export const make = Effect.fnUntraced(
135
150
  const makeResponse = (
136
151
  request: ServerRequest.HttpServerRequest,
137
152
  response: ServerResponse.HttpServerResponse,
138
- services: ServiceMap.ServiceMap<never>,
153
+ context: Context.Context<never>,
139
154
  scope: Scope.Scope
140
155
  ): Response => {
141
156
  const fields: {
@@ -186,7 +201,7 @@ const makeResponse = (
186
201
  Fiber.runIn(fiber, scope)
187
202
  return Effect.succeed(body.stream)
188
203
  })),
189
- services
204
+ context
190
205
  ),
191
206
  fields
192
207
  )
@@ -199,7 +214,10 @@ const makeResponse = (
199
214
  * @category Layers
200
215
  */
201
216
  export const layerServer: <R extends string>(
202
- options: ServeOptions<R>
217
+ options: ServeOptions<R> & {
218
+ readonly disablePreemptiveShutdown?: boolean | undefined
219
+ readonly gracefulShutdownTimeout?: Duration.Input | undefined
220
+ }
203
221
  ) => Layer.Layer<Server.HttpServer> = flow(make, Layer.effect(Server.HttpServer)) as any
204
222
 
205
223
  /**
@@ -221,7 +239,10 @@ export const layerHttpServices: Layer.Layer<
221
239
  * @category Layers
222
240
  */
223
241
  export const layer = <R extends string>(
224
- options: ServeOptions<R>
242
+ options: ServeOptions<R> & {
243
+ readonly disablePreemptiveShutdown?: boolean | undefined
244
+ readonly gracefulShutdownTimeout?: Duration.Input | undefined
245
+ }
225
246
  ): Layer.Layer<
226
247
  | Server.HttpServer
227
248
  | HttpPlatform
@@ -247,7 +268,12 @@ export const layerTest: Layer.Layer<
247
268
  * @category Layers
248
269
  */
249
270
  export const layerConfig = <R extends string>(
250
- 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
+ >
251
277
  ): Layer.Layer<
252
278
  Server.HttpServer | HttpPlatform | FileSystem.FileSystem | Etag.Generator | Path.Path,
253
279
  ConfigError
@@ -280,7 +306,7 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
280
306
  readonly url: string
281
307
  private bunServer: BunServer<WebSocketContext>
282
308
  public headersOverride?: Headers.Headers | undefined
283
- private remoteAddressOverride?: string | undefined
309
+ private remoteAddressOverride?: Option.Option<string> | undefined
284
310
 
285
311
  constructor(
286
312
  source: Request,
@@ -288,7 +314,7 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
288
314
  url: string,
289
315
  bunServer: BunServer<WebSocketContext>,
290
316
  headersOverride?: Headers.Headers,
291
- remoteAddressOverride?: string
317
+ remoteAddressOverride?: Option.Option<string>
292
318
  ) {
293
319
  super()
294
320
  this[ServerRequest.TypeId] = ServerRequest.TypeId
@@ -311,7 +337,7 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
311
337
  options: {
312
338
  readonly url?: string | undefined
313
339
  readonly headers?: Headers.Headers | undefined
314
- readonly remoteAddress?: string | undefined
340
+ readonly remoteAddress?: Option.Option<string> | undefined
315
341
  }
316
342
  ) {
317
343
  return new BunServerRequest(
@@ -320,7 +346,7 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
320
346
  options.url ?? this.url,
321
347
  this.bunServer,
322
348
  options.headers ?? this.headersOverride,
323
- options.remoteAddress ?? this.remoteAddressOverride
349
+ "remoteAddress" in options ? options.remoteAddress : this.remoteAddressOverride
324
350
  )
325
351
  }
326
352
  get method(): HttpMethod {
@@ -329,8 +355,8 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
329
355
  get originalUrl() {
330
356
  return this.source.url
331
357
  }
332
- get remoteAddress(): string | undefined {
333
- 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)
334
360
  }
335
361
  get headers(): Headers.Headers {
336
362
  this.headersOverride ??= Headers.fromInput(this.source.headers)
@@ -348,7 +374,7 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
348
374
  get stream(): Stream.Stream<Uint8Array, Error.HttpServerError> {
349
375
  return this.source.body
350
376
  ? BunStream.fromReadableStream({
351
- evaluate: () => this.source.body as any,
377
+ evaluate: () => this.source.body ?? emptyReadbleStream,
352
378
  onError: (cause) =>
353
379
  new Error.HttpServerError({
354
380
  reason: new Error.RequestParseError({
@@ -387,10 +413,10 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
387
413
  return this.textEffect
388
414
  }
389
415
 
390
- get json(): Effect.Effect<unknown, Error.HttpServerError> {
416
+ get json(): Effect.Effect<Schema.Json, Error.HttpServerError> {
391
417
  return Effect.flatMap(this.text, (_) =>
392
418
  Effect.try({
393
- try: () => JSON.parse(_) as unknown,
419
+ try: () => JSON.parse(_) as Schema.Json,
394
420
  catch: (cause) =>
395
421
  new Error.HttpServerError({
396
422
  reason: new Error.RequestParseError({
@@ -457,6 +483,7 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
457
483
  })
458
484
  })
459
485
  ))
486
+ this.textEffect = Effect.map(this.arrayBufferEffect, (_) => new TextDecoder().decode(_))
460
487
  return this.arrayBufferEffect
461
488
  }
462
489
 
@@ -524,14 +551,7 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
524
551
  semaphore.withPermits(1)
525
552
  )
526
553
 
527
- const encoder = new TextEncoder()
528
- const run = <R, E, _>(handler: (_: Uint8Array) => Effect.Effect<_, E, R> | void, opts?: {
529
- readonly onOpen?: Effect.Effect<void> | undefined
530
- }) => runRaw((data) => typeof data === "string" ? handler(encoder.encode(data)) : handler(data), opts)
531
-
532
- return Socket.Socket.of({
533
- [Socket.TypeId]: Socket.TypeId as typeof Socket.TypeId,
534
- run,
554
+ return Socket.make({
535
555
  runRaw,
536
556
  writer
537
557
  })
@@ -540,6 +560,13 @@ class BunServerRequest extends Inspectable.Class implements ServerRequest.HttpSe
540
560
  }
541
561
  }
542
562
 
563
+ const emptyReadbleStream = new ReadableStream({
564
+ start(controller) {
565
+ controller.enqueue(new Uint8Array())
566
+ controller.close()
567
+ }
568
+ })
569
+
543
570
  const removeHost = (url: string) => {
544
571
  if (url[0] === "/") {
545
572
  return url
@@ -15,12 +15,19 @@ import * as BunStream from "./BunStream.ts"
15
15
  */
16
16
  export const stream = (source: Request): Stream.Stream<Multipart.Part, Multipart.MultipartError> =>
17
17
  BunStream.fromReadableStream({
18
- evaluate: () => source.body!,
18
+ evaluate: () => source.body ?? emptyReadbleStream,
19
19
  onError: (cause) => Multipart.MultipartError.fromReason("InternalError", cause)
20
20
  }).pipe(
21
21
  Stream.pipeThroughChannel(Multipart.makeChannel(Object.fromEntries(source.headers)))
22
22
  )
23
23
 
24
+ const emptyReadbleStream = new ReadableStream({
25
+ start(controller) {
26
+ controller.enqueue(new Uint8Array())
27
+ controller.close()
28
+ }
29
+ })
30
+
24
31
  /**
25
32
  * @since 1.0.0
26
33
  * @category Constructors
package/src/BunRedis.ts CHANGED
@@ -3,18 +3,18 @@
3
3
  */
4
4
  import { RedisClient, type RedisOptions } from "bun"
5
5
  import * as Config from "effect/Config"
6
+ import * as Context from "effect/Context"
6
7
  import * as Effect from "effect/Effect"
7
8
  import * as Fn from "effect/Function"
8
9
  import * as Layer from "effect/Layer"
9
10
  import * as Scope from "effect/Scope"
10
- import * as ServiceMap from "effect/ServiceMap"
11
11
  import * as Redis from "effect/unstable/persistence/Redis"
12
12
 
13
13
  /**
14
14
  * @since 1.0.0
15
15
  * @category Service
16
16
  */
17
- export class BunRedis extends ServiceMap.Service<BunRedis, {
17
+ export class BunRedis extends Context.Service<BunRedis, {
18
18
  readonly client: RedisClient
19
19
  readonly use: <A>(f: (client: RedisClient) => Promise<A>) => Effect.Effect<A, Redis.RedisError>
20
20
  }>()("@effect/platform-bun/BunRedis") {}
@@ -47,8 +47,8 @@ const make = Effect.fnUntraced(function*(
47
47
  use
48
48
  })
49
49
 
50
- return ServiceMap.make(BunRedis, bunRedis).pipe(
51
- ServiceMap.add(Redis.Redis, redis)
50
+ return Context.make(BunRedis, bunRedis).pipe(
51
+ Context.add(Redis.Redis, redis)
52
52
  )
53
53
  })
54
54
 
@@ -58,7 +58,7 @@ const make = Effect.fnUntraced(function*(
58
58
  */
59
59
  export const layer = (
60
60
  options?: ({ readonly url?: string } & RedisOptions) | undefined
61
- ): Layer.Layer<Redis.Redis | BunRedis> => Layer.effectServices(make(options))
61
+ ): Layer.Layer<Redis.Redis | BunRedis> => Layer.effectContext(make(options))
62
62
 
63
63
  /**
64
64
  * @since 1.0.0
@@ -67,7 +67,7 @@ export const layer = (
67
67
  export const layerConfig = (
68
68
  options: Config.Wrap<{ readonly url?: string } & RedisOptions>
69
69
  ): Layer.Layer<Redis.Redis | BunRedis, Config.ConfigError> =>
70
- Layer.effectServices(
70
+ Layer.effectContext(
71
71
  Config.unwrap(options).asEffect().pipe(
72
72
  Effect.flatMap(make)
73
73
  )
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(
@@ -32,7 +32,7 @@ export const layer: Layer.Layer<WorkerRunner.WorkerRunnerPlatform> = Layer.succe
32
32
  Effect.scopedWith(Effect.fnUntraced(function*(scope) {
33
33
  const closeLatch = Deferred.makeUnsafe<void, WorkerError>()
34
34
  const trackFiber = Fiber.runIn(scope)
35
- const services = yield* Effect.services<R>()
35
+ const services = yield* Effect.context<R>()
36
36
  const runFork = Effect.runForkWith(services)
37
37
  const onExit = (exit: Exit.Exit<any, E>) => {
38
38
  if (exit._tag === "Failure" && !Cause.hasInterruptsOnly(exit.cause)) {