@effect/platform-bun 0.32.9 → 0.32.11
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.
|
@@ -14,9 +14,13 @@ var Server = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect
|
|
|
14
14
|
var Error = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/Http/ServerError"));
|
|
15
15
|
var ServerRequest = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/Http/ServerRequest"));
|
|
16
16
|
var UrlParams = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/Http/UrlParams"));
|
|
17
|
+
var Socket = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/Socket"));
|
|
17
18
|
var Cause = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Cause"));
|
|
18
19
|
var Config = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Config"));
|
|
20
|
+
var Deferred = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Deferred"));
|
|
19
21
|
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
22
|
+
var Exit = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Exit"));
|
|
23
|
+
var FiberSet = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/FiberSet"));
|
|
20
24
|
var _Function = /*#__PURE__*/require("effect/Function");
|
|
21
25
|
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
|
|
22
26
|
var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
|
|
@@ -59,9 +63,27 @@ const make = options => Effect.gen(function* (_) {
|
|
|
59
63
|
status: 404
|
|
60
64
|
});
|
|
61
65
|
}];
|
|
66
|
+
const encoder = new TextEncoder();
|
|
62
67
|
const server = Bun.serve({
|
|
63
68
|
...options,
|
|
64
|
-
fetch: handlerStack[0]
|
|
69
|
+
fetch: handlerStack[0],
|
|
70
|
+
websocket: {
|
|
71
|
+
open(ws) {
|
|
72
|
+
Deferred.unsafeDone(ws.data.deferred, Exit.succeed(ws));
|
|
73
|
+
},
|
|
74
|
+
message(ws, message) {
|
|
75
|
+
ws.data.run(typeof message === "string" ? encoder.encode(message) : message);
|
|
76
|
+
},
|
|
77
|
+
close(ws, code, reason) {
|
|
78
|
+
Deferred.unsafeDone(ws.data.closeDeferred, Socket.defaultCloseCodeIsError(code) ? Exit.fail(new Socket.SocketError({
|
|
79
|
+
reason: "Close",
|
|
80
|
+
error: {
|
|
81
|
+
code,
|
|
82
|
+
reason
|
|
83
|
+
}
|
|
84
|
+
})) : Exit.unit);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
65
87
|
});
|
|
66
88
|
yield* _(Effect.addFinalizer(() => Effect.sync(() => {
|
|
67
89
|
server.stop();
|
|
@@ -76,9 +98,9 @@ const make = options => Effect.gen(function* (_) {
|
|
|
76
98
|
const app = Effect.scoped(middleware ? middleware(App.withDefaultMiddleware(respond(httpApp))) : App.withDefaultMiddleware(respond(httpApp)));
|
|
77
99
|
return (0, _Function.pipe)(Effect.runtime(), Effect.flatMap(runtime => Effect.async(_ => {
|
|
78
100
|
const runFork = Runtime.runFork(runtime);
|
|
79
|
-
function handler(request,
|
|
101
|
+
function handler(request, server) {
|
|
80
102
|
return new Promise((resolve, reject) => {
|
|
81
|
-
const fiber = runFork(Effect.provideService(app, ServerRequest.ServerRequest, new ServerRequestImpl(request, resolve, reject, removeHost(request.url))));
|
|
103
|
+
const fiber = runFork(Effect.provideService(app, ServerRequest.ServerRequest, new ServerRequestImpl(request, resolve, reject, removeHost(request.url), server)));
|
|
82
104
|
request.signal.addEventListener("abort", () => {
|
|
83
105
|
runFork(fiber.interruptAsFork(Error.clientAbortFiberId));
|
|
84
106
|
});
|
|
@@ -155,27 +177,32 @@ const layer = options => Layer.mergeAll(Layer.scoped(Server.Server, make(options
|
|
|
155
177
|
exports.layer = layer;
|
|
156
178
|
const layerConfig = options => Layer.mergeAll(Layer.scoped(Server.Server, Effect.flatMap(Config.unwrap(options), make)), Platform.layer, Etag.layerWeak, BunContext.layer);
|
|
157
179
|
exports.layerConfig = layerConfig;
|
|
180
|
+
function wsDefaultRun(_) {
|
|
181
|
+
this.buffer.push(_);
|
|
182
|
+
}
|
|
158
183
|
class ServerRequestImpl {
|
|
159
184
|
source;
|
|
160
185
|
resolve;
|
|
161
186
|
reject;
|
|
162
187
|
url;
|
|
188
|
+
bunServer;
|
|
163
189
|
headersOverride;
|
|
164
190
|
remoteAddressOverride;
|
|
165
191
|
[ServerRequest.TypeId];
|
|
166
192
|
[IncomingMessage.TypeId];
|
|
167
|
-
constructor(source, resolve, reject, url, headersOverride, remoteAddressOverride) {
|
|
193
|
+
constructor(source, resolve, reject, url, bunServer, headersOverride, remoteAddressOverride) {
|
|
168
194
|
this.source = source;
|
|
169
195
|
this.resolve = resolve;
|
|
170
196
|
this.reject = reject;
|
|
171
197
|
this.url = url;
|
|
198
|
+
this.bunServer = bunServer;
|
|
172
199
|
this.headersOverride = headersOverride;
|
|
173
200
|
this.remoteAddressOverride = remoteAddressOverride;
|
|
174
201
|
this[ServerRequest.TypeId] = ServerRequest.TypeId;
|
|
175
202
|
this[IncomingMessage.TypeId] = IncomingMessage.TypeId;
|
|
176
203
|
}
|
|
177
204
|
modify(options) {
|
|
178
|
-
return new ServerRequestImpl(this.source, this.resolve, this.reject, options.url ?? this.url, options.headers ?? this.headersOverride, options.remoteAddress ?? this.remoteAddressOverride);
|
|
205
|
+
return new ServerRequestImpl(this.source, this.resolve, this.reject, options.url ?? this.url, this.bunServer, options.headers ?? this.headersOverride, options.remoteAddress ?? this.remoteAddressOverride);
|
|
179
206
|
}
|
|
180
207
|
get method() {
|
|
181
208
|
return this.source.method.toUpperCase();
|
|
@@ -262,6 +289,43 @@ class ServerRequestImpl {
|
|
|
262
289
|
})));
|
|
263
290
|
return this.arrayBufferEffect;
|
|
264
291
|
}
|
|
292
|
+
get upgrade() {
|
|
293
|
+
return Effect.flatMap(Effect.all([Deferred.make(), Deferred.make(), Effect.makeSemaphore(1)]), ([deferred, closeDeferred, semaphore]) => Effect.async(resume => {
|
|
294
|
+
const success = this.bunServer.upgrade(this.source, {
|
|
295
|
+
data: {
|
|
296
|
+
deferred,
|
|
297
|
+
closeDeferred,
|
|
298
|
+
buffer: [],
|
|
299
|
+
run: wsDefaultRun
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
if (!success) {
|
|
303
|
+
resume(Effect.fail(Error.RequestError({
|
|
304
|
+
request: this,
|
|
305
|
+
reason: "Decode",
|
|
306
|
+
error: "Not an upgradeable ServerRequest"
|
|
307
|
+
})));
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
resume(Effect.map(Deferred.await(deferred), ws => {
|
|
311
|
+
const write = chunk => Effect.sync(() => ws.sendBinary(chunk));
|
|
312
|
+
const writer = Effect.succeed(write);
|
|
313
|
+
const run = handler => FiberSet.make().pipe(Effect.flatMap(set => FiberSet.runtime(set)().pipe(Effect.flatMap(run => {
|
|
314
|
+
ws.data.run = function (data) {
|
|
315
|
+
run(handler(data));
|
|
316
|
+
};
|
|
317
|
+
ws.data.buffer.forEach(data => run(handler(data)));
|
|
318
|
+
ws.data.buffer.length = 0;
|
|
319
|
+
return FiberSet.join(set);
|
|
320
|
+
}))), Effect.scoped, Effect.onExit(exit => Effect.sync(() => ws.close(exit._tag === "Success" ? 1000 : 1011))), Effect.raceFirst(Deferred.await(closeDeferred)), semaphore.withPermits(1));
|
|
321
|
+
return Socket.Socket.of({
|
|
322
|
+
[Socket.SocketTypeId]: Socket.SocketTypeId,
|
|
323
|
+
run,
|
|
324
|
+
writer
|
|
325
|
+
});
|
|
326
|
+
}));
|
|
327
|
+
}));
|
|
328
|
+
}
|
|
265
329
|
}
|
|
266
330
|
const removeHost = url => {
|
|
267
331
|
if (url[0] === "/") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","names":["Etag","_interopRequireWildcard","require","MultipartNode","App","Headers","IncomingMessage","Middleware","Server","Error","ServerRequest","UrlParams","Cause","Config","Effect","_Function","Layer","Option","Runtime","Stream","_nodeStream","BunContext","Platform","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","make","options","gen","_","handlerStack","_request","_server","Response","status","server","Bun","serve","fetch","addFinalizer","sync","stop","address","_tag","port","hostname","httpApp","middleware","app","scoped","withDefaultMiddleware","respond","pipe","runtime","flatMap","async","runFork","handler","request","Promise","resolve","reject","fiber","provideService","ServerRequestImpl","removeHost","url","signal","addEventListener","interruptAsFork","clientAbortFiberId","push","reload","pop","length","interruptible","forkScoped","asUnit","exports","makeResponse","response","fields","headers","undefined","statusText","method","body","formData","toReadableStream","stream","onExit","preResponseHandler","f","exit","impl","value","isInterruptedOnly","cause","source","aborted","pretty","layerServer","layer","mergeAll","layerWeak","layerConfig","unwrap","headersOverride","remoteAddressOverride","TypeId","constructor","modify","remoteAddress","toUpperCase","originalUrl","some","none","fromInput","fromReadableStream","RequestError","reason","error","fail","textEffect","text","runSync","cached","tryPromise","try","catch","json","tryMap","JSON","parse","urlParamsBody","URLSearchParams","multipartEffect","multipart","persisted","Readable","fromWeb","multipartStream","arrayBufferEffect","arrayBuffer","index","indexOf","slice","requestSource","self"],"sources":["../../../../src/internal/http/server.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","names":["Etag","_interopRequireWildcard","require","MultipartNode","App","Headers","IncomingMessage","Middleware","Server","Error","ServerRequest","UrlParams","Socket","Cause","Config","Deferred","Effect","Exit","FiberSet","_Function","Layer","Option","Runtime","Stream","_nodeStream","BunContext","Platform","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","make","options","gen","_","handlerStack","_request","_server","Response","status","encoder","TextEncoder","server","Bun","serve","fetch","websocket","open","ws","unsafeDone","data","deferred","succeed","message","run","encode","close","code","reason","closeDeferred","defaultCloseCodeIsError","fail","SocketError","error","unit","addFinalizer","sync","stop","address","_tag","port","hostname","httpApp","middleware","app","scoped","withDefaultMiddleware","respond","pipe","runtime","flatMap","async","runFork","handler","request","Promise","resolve","reject","fiber","provideService","ServerRequestImpl","removeHost","url","signal","addEventListener","interruptAsFork","clientAbortFiberId","push","reload","pop","length","interruptible","forkScoped","asUnit","exports","makeResponse","response","fields","headers","undefined","statusText","method","body","formData","toReadableStream","stream","onExit","preResponseHandler","f","exit","impl","value","isInterruptedOnly","cause","source","aborted","pretty","layerServer","layer","mergeAll","layerWeak","layerConfig","unwrap","wsDefaultRun","buffer","bunServer","headersOverride","remoteAddressOverride","TypeId","constructor","modify","remoteAddress","toUpperCase","originalUrl","some","none","fromInput","fromReadableStream","RequestError","textEffect","text","runSync","cached","tryPromise","try","catch","json","tryMap","JSON","parse","urlParamsBody","URLSearchParams","multipartEffect","multipart","persisted","Readable","fromWeb","multipartStream","arrayBufferEffect","arrayBuffer","upgrade","all","makeSemaphore","semaphore","resume","success","map","await","write","chunk","sendBinary","writer","forEach","join","raceFirst","withPermits","of","SocketTypeId","index","indexOf","slice","requestSource","self"],"sources":["../../../../src/internal/http/server.ts"],"sourcesContent":[null],"mappings":"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"}
|
|
@@ -9,9 +9,13 @@ import * as Server from "@effect/platform/Http/Server";
|
|
|
9
9
|
import * as Error from "@effect/platform/Http/ServerError";
|
|
10
10
|
import * as ServerRequest from "@effect/platform/Http/ServerRequest";
|
|
11
11
|
import * as UrlParams from "@effect/platform/Http/UrlParams";
|
|
12
|
+
import * as Socket from "@effect/platform/Socket";
|
|
12
13
|
import * as Cause from "effect/Cause";
|
|
13
14
|
import * as Config from "effect/Config";
|
|
15
|
+
import * as Deferred from "effect/Deferred";
|
|
14
16
|
import * as Effect from "effect/Effect";
|
|
17
|
+
import * as Exit from "effect/Exit";
|
|
18
|
+
import * as FiberSet from "effect/FiberSet";
|
|
15
19
|
import { pipe } from "effect/Function";
|
|
16
20
|
import * as Layer from "effect/Layer";
|
|
17
21
|
import * as Option from "effect/Option";
|
|
@@ -27,9 +31,27 @@ export const make = options => Effect.gen(function* (_) {
|
|
|
27
31
|
status: 404
|
|
28
32
|
});
|
|
29
33
|
}];
|
|
34
|
+
const encoder = new TextEncoder();
|
|
30
35
|
const server = Bun.serve({
|
|
31
36
|
...options,
|
|
32
|
-
fetch: handlerStack[0]
|
|
37
|
+
fetch: handlerStack[0],
|
|
38
|
+
websocket: {
|
|
39
|
+
open(ws) {
|
|
40
|
+
Deferred.unsafeDone(ws.data.deferred, Exit.succeed(ws));
|
|
41
|
+
},
|
|
42
|
+
message(ws, message) {
|
|
43
|
+
ws.data.run(typeof message === "string" ? encoder.encode(message) : message);
|
|
44
|
+
},
|
|
45
|
+
close(ws, code, reason) {
|
|
46
|
+
Deferred.unsafeDone(ws.data.closeDeferred, Socket.defaultCloseCodeIsError(code) ? Exit.fail(new Socket.SocketError({
|
|
47
|
+
reason: "Close",
|
|
48
|
+
error: {
|
|
49
|
+
code,
|
|
50
|
+
reason
|
|
51
|
+
}
|
|
52
|
+
})) : Exit.unit);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
33
55
|
});
|
|
34
56
|
yield* _(Effect.addFinalizer(() => Effect.sync(() => {
|
|
35
57
|
server.stop();
|
|
@@ -44,9 +66,9 @@ export const make = options => Effect.gen(function* (_) {
|
|
|
44
66
|
const app = Effect.scoped(middleware ? middleware(App.withDefaultMiddleware(respond(httpApp))) : App.withDefaultMiddleware(respond(httpApp)));
|
|
45
67
|
return pipe(Effect.runtime(), Effect.flatMap(runtime => Effect.async(_ => {
|
|
46
68
|
const runFork = Runtime.runFork(runtime);
|
|
47
|
-
function handler(request,
|
|
69
|
+
function handler(request, server) {
|
|
48
70
|
return new Promise((resolve, reject) => {
|
|
49
|
-
const fiber = runFork(Effect.provideService(app, ServerRequest.ServerRequest, new ServerRequestImpl(request, resolve, reject, removeHost(request.url))));
|
|
71
|
+
const fiber = runFork(Effect.provideService(app, ServerRequest.ServerRequest, new ServerRequestImpl(request, resolve, reject, removeHost(request.url), server)));
|
|
50
72
|
request.signal.addEventListener("abort", () => {
|
|
51
73
|
runFork(fiber.interruptAsFork(Error.clientAbortFiberId));
|
|
52
74
|
});
|
|
@@ -119,27 +141,32 @@ export const layerServer = options => Layer.scoped(Server.Server, make(options))
|
|
|
119
141
|
export const layer = options => Layer.mergeAll(Layer.scoped(Server.Server, make(options)), Platform.layer, Etag.layerWeak, BunContext.layer);
|
|
120
142
|
/** @internal */
|
|
121
143
|
export const layerConfig = options => Layer.mergeAll(Layer.scoped(Server.Server, Effect.flatMap(Config.unwrap(options), make)), Platform.layer, Etag.layerWeak, BunContext.layer);
|
|
144
|
+
function wsDefaultRun(_) {
|
|
145
|
+
this.buffer.push(_);
|
|
146
|
+
}
|
|
122
147
|
class ServerRequestImpl {
|
|
123
148
|
source;
|
|
124
149
|
resolve;
|
|
125
150
|
reject;
|
|
126
151
|
url;
|
|
152
|
+
bunServer;
|
|
127
153
|
headersOverride;
|
|
128
154
|
remoteAddressOverride;
|
|
129
155
|
[ServerRequest.TypeId];
|
|
130
156
|
[IncomingMessage.TypeId];
|
|
131
|
-
constructor(source, resolve, reject, url, headersOverride, remoteAddressOverride) {
|
|
157
|
+
constructor(source, resolve, reject, url, bunServer, headersOverride, remoteAddressOverride) {
|
|
132
158
|
this.source = source;
|
|
133
159
|
this.resolve = resolve;
|
|
134
160
|
this.reject = reject;
|
|
135
161
|
this.url = url;
|
|
162
|
+
this.bunServer = bunServer;
|
|
136
163
|
this.headersOverride = headersOverride;
|
|
137
164
|
this.remoteAddressOverride = remoteAddressOverride;
|
|
138
165
|
this[ServerRequest.TypeId] = ServerRequest.TypeId;
|
|
139
166
|
this[IncomingMessage.TypeId] = IncomingMessage.TypeId;
|
|
140
167
|
}
|
|
141
168
|
modify(options) {
|
|
142
|
-
return new ServerRequestImpl(this.source, this.resolve, this.reject, options.url ?? this.url, options.headers ?? this.headersOverride, options.remoteAddress ?? this.remoteAddressOverride);
|
|
169
|
+
return new ServerRequestImpl(this.source, this.resolve, this.reject, options.url ?? this.url, this.bunServer, options.headers ?? this.headersOverride, options.remoteAddress ?? this.remoteAddressOverride);
|
|
143
170
|
}
|
|
144
171
|
get method() {
|
|
145
172
|
return this.source.method.toUpperCase();
|
|
@@ -226,6 +253,43 @@ class ServerRequestImpl {
|
|
|
226
253
|
})));
|
|
227
254
|
return this.arrayBufferEffect;
|
|
228
255
|
}
|
|
256
|
+
get upgrade() {
|
|
257
|
+
return Effect.flatMap(Effect.all([Deferred.make(), Deferred.make(), Effect.makeSemaphore(1)]), ([deferred, closeDeferred, semaphore]) => Effect.async(resume => {
|
|
258
|
+
const success = this.bunServer.upgrade(this.source, {
|
|
259
|
+
data: {
|
|
260
|
+
deferred,
|
|
261
|
+
closeDeferred,
|
|
262
|
+
buffer: [],
|
|
263
|
+
run: wsDefaultRun
|
|
264
|
+
}
|
|
265
|
+
});
|
|
266
|
+
if (!success) {
|
|
267
|
+
resume(Effect.fail(Error.RequestError({
|
|
268
|
+
request: this,
|
|
269
|
+
reason: "Decode",
|
|
270
|
+
error: "Not an upgradeable ServerRequest"
|
|
271
|
+
})));
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
resume(Effect.map(Deferred.await(deferred), ws => {
|
|
275
|
+
const write = chunk => Effect.sync(() => ws.sendBinary(chunk));
|
|
276
|
+
const writer = Effect.succeed(write);
|
|
277
|
+
const run = handler => FiberSet.make().pipe(Effect.flatMap(set => FiberSet.runtime(set)().pipe(Effect.flatMap(run => {
|
|
278
|
+
ws.data.run = function (data) {
|
|
279
|
+
run(handler(data));
|
|
280
|
+
};
|
|
281
|
+
ws.data.buffer.forEach(data => run(handler(data)));
|
|
282
|
+
ws.data.buffer.length = 0;
|
|
283
|
+
return FiberSet.join(set);
|
|
284
|
+
}))), Effect.scoped, Effect.onExit(exit => Effect.sync(() => ws.close(exit._tag === "Success" ? 1000 : 1011))), Effect.raceFirst(Deferred.await(closeDeferred)), semaphore.withPermits(1));
|
|
285
|
+
return Socket.Socket.of({
|
|
286
|
+
[Socket.SocketTypeId]: Socket.SocketTypeId,
|
|
287
|
+
run,
|
|
288
|
+
writer
|
|
289
|
+
});
|
|
290
|
+
}));
|
|
291
|
+
}));
|
|
292
|
+
}
|
|
229
293
|
}
|
|
230
294
|
const removeHost = url => {
|
|
231
295
|
if (url[0] === "/") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","names":["Etag","MultipartNode","App","Headers","IncomingMessage","Middleware","Server","Error","ServerRequest","UrlParams","Cause","Config","Effect","pipe","Layer","Option","Runtime","Stream","Readable","BunContext","Platform","make","options","gen","_","handlerStack","_request","_server","Response","status","server","Bun","serve","fetch","addFinalizer","sync","stop","address","_tag","port","hostname","httpApp","middleware","app","scoped","withDefaultMiddleware","respond","runtime","flatMap","async","runFork","handler","request","Promise","resolve","reject","fiber","provideService","ServerRequestImpl","removeHost","url","signal","addEventListener","interruptAsFork","clientAbortFiberId","push","reload","pop","length","interruptible","forkScoped","asUnit","makeResponse","response","fields","headers","undefined","statusText","method","body","formData","toReadableStream","stream","onExit","preResponseHandler","f","exit","impl","value","isInterruptedOnly","cause","source","aborted","pretty","layerServer","layer","mergeAll","layerWeak","layerConfig","unwrap","headersOverride","remoteAddressOverride","TypeId","constructor","modify","remoteAddress","toUpperCase","originalUrl","some","none","fromInput","fromReadableStream","RequestError","reason","error","fail","textEffect","text","runSync","cached","tryPromise","try","catch","json","tryMap","JSON","parse","urlParamsBody","URLSearchParams","multipartEffect","multipart","persisted","fromWeb","multipartStream","arrayBufferEffect","arrayBuffer","index","indexOf","slice","requestSource","self"],"sources":["../../../../src/internal/http/server.ts"],"sourcesContent":[null],"mappings":"AAAA;AACA,OAAO,KAAKA,IAAI,MAAM,wCAAwC;AAC9D,OAAO,KAAKC,aAAa,MAAM,6CAA6C;AAE5E,OAAO,KAAKC,GAAG,MAAM,2BAA2B;AAChD,OAAO,KAAKC,OAAO,MAAM,+BAA+B;AACxD,OAAO,KAAKC,eAAe,MAAM,uCAAuC;AAExE,OAAO,KAAKC,UAAU,MAAM,kCAAkC;AAE9D,OAAO,KAAKC,MAAM,MAAM,8BAA8B;AACtD,OAAO,KAAKC,KAAK,MAAM,mCAAmC;AAC1D,OAAO,KAAKC,aAAa,MAAM,qCAAqC;AAEpE,OAAO,KAAKC,SAAS,MAAM,iCAAiC;AAG5D,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,IAAI,QAAQ,iBAAiB;AACtC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AAEzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,QAAQ,QAAQ,aAAa;AACtC,OAAO,KAAKC,UAAU,MAAM,qBAAqB;AACjD,OAAO,KAAKC,QAAQ,MAAM,wBAAwB;AAElD;AACA,OAAO,MAAMC,IAAI,GACfC,OAA8C,IAE9CV,MAAM,CAACW,GAAG,CAAC,WAAUC,CAAC;EACpB,MAAMC,YAAY,GAAiF,CACjG,UAASC,QAAQ,EAAEC,OAAO;IACxB,OAAO,IAAIC,QAAQ,CAAC,WAAW,EAAE;MAAEC,MAAM,EAAE;IAAG,CAAE,CAAC;EACnD,CAAC,CACF;EACD,MAAMC,MAAM,GAAGC,GAAG,CAACC,KAAK,CAAC;IACvB,GAAGV,OAAO;IACVW,KAAK,EAAER,YAAY,CAAC,CAAC;GACtB,CAAC;EAEF,OAAOD,CAAC,CAACZ,MAAM,CAACsB,YAAY,CAAC,MAC3BtB,MAAM,CAACuB,IAAI,CAAC,MAAK;IACfL,MAAM,CAACM,IAAI,EAAE;EACf,CAAC,CAAC,CACH,CAAC;EAEF,OAAO9B,MAAM,CAACe,IAAI,CAAC;IACjBgB,OAAO,EAAE;MAAEC,IAAI,EAAE,YAAY;MAAEC,IAAI,EAAET,MAAM,CAACS,IAAI;MAAEC,QAAQ,EAAEV,MAAM,CAACU;IAAQ,CAAE;IAC7ER,KAAKA,CAACS,OAAO,EAAEC,UAAU;MACvB,MAAMC,GAAG,GAAG/B,MAAM,CAACgC,MAAM,CACvBF,UAAU,GACNA,UAAU,CAACxC,GAAG,CAAC2C,qBAAqB,CAACC,OAAO,CAACL,OAAO,CAAC,CAAC,CAAC,GACvDvC,GAAG,CAAC2C,qBAAqB,CAACC,OAAO,CAACL,OAAO,CAAC,CAAC,CACjB;MAEhC,OAAO5B,IAAI,CACTD,MAAM,CAACmC,OAAO,EAAS,EACvBnC,MAAM,CAACoC,OAAO,CAAED,OAAO,IACrBnC,MAAM,CAACqC,KAAK,CAASzB,CAAC,IAAI;QACxB,MAAM0B,OAAO,GAAGlC,OAAO,CAACkC,OAAO,CAACH,OAAO,CAAC;QACxC,SAASI,OAAOA,CAACC,OAAgB,EAAEzB,OAAkB;UACnD,OAAO,IAAI0B,OAAO,CAAW,CAACC,OAAO,EAAEC,MAAM,KAAI;YAC/C,MAAMC,KAAK,GAAGN,OAAO,CAACtC,MAAM,CAAC6C,cAAc,CACzCd,GAAG,EACHnC,aAAa,CAACA,aAAa,EAC3B,IAAIkD,iBAAiB,CAACN,OAAO,EAAEE,OAAO,EAAEC,MAAM,EAAEI,UAAU,CAACP,OAAO,CAACQ,GAAG,CAAC,CAAC,CACzE,CAAC;YACFR,OAAO,CAACS,MAAM,CAACC,gBAAgB,CAAC,OAAO,EAAE,MAAK;cAC5CZ,OAAO,CAACM,KAAK,CAACO,eAAe,CAACxD,KAAK,CAACyD,kBAAkB,CAAC,CAAC;YAC1D,CAAC,CAAC;UACJ,CAAC,CAAC;QACJ;QACAvC,YAAY,CAACwC,IAAI,CAACd,OAAO,CAAC;QAC1BrB,MAAM,CAACoC,MAAM,CAAC;UAAEjC,KAAK,EAAEkB;QAAO,CAAkB,CAAC;QACjD,OAAOvC,MAAM,CAACuB,IAAI,CAAC,MAAK;UACtBV,YAAY,CAAC0C,GAAG,EAAE;UAClBrC,MAAM,CAACoC,MAAM,CAAC;YAAEjC,KAAK,EAAER,YAAY,CAACA,YAAY,CAAC2C,MAAM,GAAG,CAAC;UAAC,CAAkB,CAAC;QACjF,CAAC,CAAC;MACJ,CAAC,CAAC,CACH,EACDxD,MAAM,CAACyD,aAAa,EACpBzD,MAAM,CAAC0D,UAAU,EACjB1D,MAAM,CAAC2D,MAAM,CACd;IACH;GACD,CAAC;AACJ,CAAC,CAAC;AAEJ,MAAMC,YAAY,GAAGA,CAACpB,OAAoC,EAAEqB,QAAuC,KAAc;EAC/G,MAAMC,MAAM,GAIR,EAAE;EAEN,IAAID,QAAQ,CAACE,OAAO,KAAKC,SAAS,EAAE;IAClCF,MAAM,CAACC,OAAO,GAAGF,QAAQ,CAACE,OAAO;EACnC;EACA,IAAIF,QAAQ,CAAC5C,MAAM,KAAK+C,SAAS,EAAE;IACjCF,MAAM,CAAC7C,MAAM,GAAG4C,QAAQ,CAAC5C,MAAM;EACjC;EACA,IAAI4C,QAAQ,CAACI,UAAU,KAAKD,SAAS,EAAE;IACrCF,MAAM,CAACG,UAAU,GAAGJ,QAAQ,CAACI,UAAU;EACzC;EAEA,IAAIzB,OAAO,CAAC0B,MAAM,KAAK,MAAM,EAAE;IAC7B,OAAO,IAAIlD,QAAQ,CAACgD,SAAS,EAAEF,MAAM,CAAC;EACxC;EACA,MAAMK,IAAI,GAAGN,QAAQ,CAACM,IAAI;EAC1B,QAAQA,IAAI,CAACzC,IAAI;IACf,KAAK,OAAO;MAAE;QACZ,OAAO,IAAIV,QAAQ,CAACgD,SAAS,EAAEF,MAAM,CAAC;MACxC;IACA,KAAK,YAAY;IACjB,KAAK,KAAK;MAAE;QACV,OAAO,IAAI9C,QAAQ,CAACmD,IAAI,CAACA,IAAW,EAAEL,MAAM,CAAC;MAC/C;IACA,KAAK,UAAU;MAAE;QACf,OAAO,IAAI9C,QAAQ,CAACmD,IAAI,CAACC,QAAe,EAAEN,MAAM,CAAC;MACnD;IACA,KAAK,QAAQ;MAAE;QACb,OAAO,IAAI9C,QAAQ,CAACX,MAAM,CAACgE,gBAAgB,CAACF,IAAI,CAACG,MAAM,CAAC,EAAER,MAAM,CAAC;MACnE;EACF;AACF,CAAC;AAED,MAAM5B,OAAO,gBAAGzC,UAAU,CAACgB,IAAI,CAAEoB,OAAO,IACtC7B,MAAM,CAACoC,OAAO,CACZxC,aAAa,CAACA,aAAa,EAC1B4C,OAAO,IACNxC,MAAM,CAACuE,MAAM,CACXvE,MAAM,CAACoC,OAAO,CACZP,OAAO,EACNgC,QAAQ,IAAK7D,MAAM,CAACoC,OAAO,CAAC9C,GAAG,CAACkF,kBAAkB,EAAGC,CAAC,IAAKA,CAAC,CAACjC,OAAO,EAAEqB,QAAQ,CAAC,CAAC,CAClF,EACAa,IAAI,IACH1E,MAAM,CAACuB,IAAI,CAAC,MAAK;EACf,MAAMoD,IAAI,GAAGnC,OAA4B;EACzC,IAAIkC,IAAI,CAAChD,IAAI,KAAK,SAAS,EAAE;IAC3BiD,IAAI,CAACjC,OAAO,CAACkB,YAAY,CAACpB,OAAO,EAAEkC,IAAI,CAACE,KAAK,CAAC,CAAC;EACjD,CAAC,MAAM,IAAI9E,KAAK,CAAC+E,iBAAiB,CAACH,IAAI,CAACI,KAAK,CAAC,EAAE;IAC9CH,IAAI,CAACjC,OAAO,CACV,IAAI1B,QAAQ,CAACgD,SAAS,EAAE;MACtB/C,MAAM,EAAE0D,IAAI,CAACI,MAAM,CAAC9B,MAAM,CAAC+B,OAAO,GAAG,GAAG,GAAG;KAC5C,CAAC,CACH;EACH,CAAC,MAAM;IACLL,IAAI,CAAChC,MAAM,CAAC7C,KAAK,CAACmF,MAAM,CAACP,IAAI,CAACI,KAAK,CAAC,CAAC;EACvC;AACF,CAAC,CAAC,CACL,CACJ,CACF;AAED;AACA,OAAO,MAAMI,WAAW,GACtBxE,OAA8C,IAC3CR,KAAK,CAAC8B,MAAM,CAACtC,MAAM,CAACA,MAAM,EAAEe,IAAI,CAACC,OAAO,CAAC,CAAC;AAE/C;AACA,OAAO,MAAMyE,KAAK,GAChBzE,OAA8C,IAE9CR,KAAK,CAACkF,QAAQ,CACZlF,KAAK,CAAC8B,MAAM,CAACtC,MAAM,CAACA,MAAM,EAAEe,IAAI,CAACC,OAAO,CAAC,CAAC,EAC1CF,QAAQ,CAAC2E,KAAK,EACd/F,IAAI,CAACiG,SAAS,EACd9E,UAAU,CAAC4E,KAAK,CACjB;AAEH;AACA,OAAO,MAAMG,WAAW,GACtB5E,OAAkE,IAElER,KAAK,CAACkF,QAAQ,CACZlF,KAAK,CAAC8B,MAAM,CAACtC,MAAM,CAACA,MAAM,EAAEM,MAAM,CAACoC,OAAO,CAACrC,MAAM,CAACwF,MAAM,CAAC7E,OAAO,CAAC,EAAED,IAAI,CAAC,CAAC,EACzED,QAAQ,CAAC2E,KAAK,EACd/F,IAAI,CAACiG,SAAS,EACd9E,UAAU,CAAC4E,KAAK,CACjB;AAEH,MAAMrC,iBAAiB;EAIViC,MAAA;EACFrC,OAAA;EACAC,MAAA;EACEK,GAAA;EACFwC,eAAA;EACCC,qBAAA;EARD,CAAC7F,aAAa,CAAC8F,MAAM;EACrB,CAAClG,eAAe,CAACkG,MAAM;EAChCC,YACWZ,MAAe,EACjBrC,OAAqC,EACrCC,MAA6B,EAC3BK,GAAW,EACbwC,eAAiC,EAChCC,qBAA8B;IAL7B,KAAAV,MAAM,GAANA,MAAM;IACR,KAAArC,OAAO,GAAPA,OAAO;IACP,KAAAC,MAAM,GAANA,MAAM;IACJ,KAAAK,GAAG,GAAHA,GAAG;IACL,KAAAwC,eAAe,GAAfA,eAAe;IACd,KAAAC,qBAAqB,GAArBA,qBAAqB;IAE7B,IAAI,CAAC7F,aAAa,CAAC8F,MAAM,CAAC,GAAG9F,aAAa,CAAC8F,MAAM;IACjD,IAAI,CAAClG,eAAe,CAACkG,MAAM,CAAC,GAAGlG,eAAe,CAACkG,MAAM;EACvD;EACAE,MAAMA,CACJlF,OAIC;IAED,OAAO,IAAIoC,iBAAiB,CAC1B,IAAI,CAACiC,MAAM,EACX,IAAI,CAACrC,OAAO,EACZ,IAAI,CAACC,MAAM,EACXjC,OAAO,CAACsC,GAAG,IAAI,IAAI,CAACA,GAAG,EACvBtC,OAAO,CAACqD,OAAO,IAAI,IAAI,CAACyB,eAAe,EACvC9E,OAAO,CAACmF,aAAa,IAAI,IAAI,CAACJ,qBAAqB,CACpD;EACH;EACA,IAAIvB,MAAMA,CAAA;IACR,OAAO,IAAI,CAACa,MAAM,CAACb,MAAM,CAAC4B,WAAW,EAAY;EACnD;EACA,IAAIC,WAAWA,CAAA;IACb,OAAO,IAAI,CAAChB,MAAM,CAAC/B,GAAG;EACxB;EACA,IAAI6C,aAAaA,CAAA;IACf,OAAO,IAAI,CAACJ,qBAAqB,GAAGtF,MAAM,CAAC6F,IAAI,CAAC,IAAI,CAACP,qBAAqB,CAAC,GAAGtF,MAAM,CAAC8F,IAAI,EAAE;EAC7F;EACA,IAAIlC,OAAOA,CAAA;IACT,IAAI,CAACyB,eAAe,KAAKjG,OAAO,CAAC2G,SAAS,CAAC,IAAI,CAACnB,MAAM,CAAChB,OAAO,CAAC;IAC/D,OAAO,IAAI,CAACyB,eAAe;EAC7B;EAEA,IAAIlB,MAAMA,CAAA;IACR,OAAO,IAAI,CAACS,MAAM,CAACZ,IAAI,GACnB9D,MAAM,CAAC8F,kBAAkB,CAAC,MAAM,IAAI,CAACpB,MAAM,CAACZ,IAAW,EAAGvD,CAAC,IAC3DjB,KAAK,CAACyG,YAAY,CAAC;MACjB5D,OAAO,EAAE,IAAI;MACb6D,MAAM,EAAE,QAAQ;MAChBC,KAAK,EAAE1F;KACR,CAAC,CAAC,GACHP,MAAM,CAACkG,IAAI,CAAC5G,KAAK,CAACyG,YAAY,CAAC;MAC/B5D,OAAO,EAAE,IAAI;MACb6D,MAAM,EAAE,QAAQ;MAChBC,KAAK,EAAE;KACR,CAAC,CAAC;EACP;EAEQE,UAAU;EAClB,IAAIC,IAAIA,CAAA;IACN,IAAI,IAAI,CAACD,UAAU,EAAE;MACnB,OAAO,IAAI,CAACA,UAAU;IACxB;IACA,IAAI,CAACA,UAAU,GAAGxG,MAAM,CAAC0G,OAAO,CAAC1G,MAAM,CAAC2G,MAAM,CAC5C3G,MAAM,CAAC4G,UAAU,CAAC;MAChBC,GAAG,EAAEA,CAAA,KAAM,IAAI,CAAC9B,MAAM,CAAC0B,IAAI,EAAE;MAC7BK,KAAK,EAAGR,KAAK,IACX3G,KAAK,CAACyG,YAAY,CAAC;QACjB5D,OAAO,EAAE,IAAI;QACb6D,MAAM,EAAE,QAAQ;QAChBC;OACD;KACJ,CAAC,CACH,CAAC;IACF,OAAO,IAAI,CAACE,UAAU;EACxB;EAEA,IAAIO,IAAIA,CAAA;IACN,OAAO/G,MAAM,CAACgH,MAAM,CAAC,IAAI,CAACP,IAAI,EAAE;MAC9BI,GAAG,EAAGjG,CAAC,IAAKqG,IAAI,CAACC,KAAK,CAACtG,CAAC,CAAY;MACpCkG,KAAK,EAAGR,KAAK,IACX3G,KAAK,CAACyG,YAAY,CAAC;QACjB5D,OAAO,EAAE,IAAI;QACb6D,MAAM,EAAE,QAAQ;QAChBC;OACD;KACJ,CAAC;EACJ;EAEA,IAAIa,aAAaA,CAAA;IACf,OAAOnH,MAAM,CAACoC,OAAO,CAAC,IAAI,CAACqE,IAAI,EAAG7F,CAAC,IACjCZ,MAAM,CAAC6G,GAAG,CAAC;MACTA,GAAG,EAAEA,CAAA,KAAMhH,SAAS,CAACqG,SAAS,CAAC,IAAIkB,eAAe,CAACxG,CAAC,CAAC,CAAC;MACtDkG,KAAK,EAAGR,KAAK,IACX3G,KAAK,CAACyG,YAAY,CAAC;QACjB5D,OAAO,EAAE,IAAI;QACb6D,MAAM,EAAE,QAAQ;QAChBC;OACD;KACJ,CAAC,CAAC;EACP;EAEQe,eAAe;EAOvB,IAAIC,SAASA,CAAA;IAKX,IAAI,IAAI,CAACD,eAAe,EAAE;MACxB,OAAO,IAAI,CAACA,eAAe;IAC7B;IACA,IAAI,CAACA,eAAe,GAAGrH,MAAM,CAAC0G,OAAO,CAAC1G,MAAM,CAAC2G,MAAM,CACjDtH,aAAa,CAACkI,SAAS,CAACjH,QAAQ,CAACkH,OAAO,CAAC,IAAI,CAACzC,MAAM,CAACZ,IAAY,CAAC,EAAE,IAAI,CAACJ,OAAO,CAAC,CAClF,CAAC;IACF,OAAO,IAAI,CAACsD,eAAe;EAC7B;EAEA,IAAII,eAAeA,CAAA;IACjB,OAAOpI,aAAa,CAACiF,MAAM,CAAChE,QAAQ,CAACkH,OAAO,CAAC,IAAI,CAACzC,MAAM,CAACZ,IAAY,CAAC,EAAE,IAAI,CAACJ,OAAO,CAAC;EACvF;EAEQ2D,iBAAiB;EACzB,IAAIC,WAAWA,CAAA;IACb,IAAI,IAAI,CAACA,WAAW,EAAE;MACpB,OAAO,IAAI,CAACA,WAAW;IACzB;IACA,IAAI,CAACD,iBAAiB,GAAG1H,MAAM,CAAC0G,OAAO,CAAC1G,MAAM,CAAC2G,MAAM,CACnD3G,MAAM,CAAC4G,UAAU,CAAC;MAChBC,GAAG,EAAEA,CAAA,KAAM,IAAI,CAAC9B,MAAM,CAAC4C,WAAW,EAAE;MACpCb,KAAK,EAAGR,KAAK,IACX3G,KAAK,CAACyG,YAAY,CAAC;QACjB5D,OAAO,EAAE,IAAI;QACb6D,MAAM,EAAE,QAAQ;QAChBC;OACD;KACJ,CAAC,CACH,CAAC;IACF,OAAO,IAAI,CAACoB,iBAAiB;EAC/B;;AAGF,MAAM3E,UAAU,GAAIC,GAAW,IAAI;EACjC,IAAIA,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;IAClB,OAAOA,GAAG;EACZ;EACA,MAAM4E,KAAK,GAAG5E,GAAG,CAAC6E,OAAO,CAAC,GAAG,EAAE7E,GAAG,CAAC6E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;EACrD,OAAOD,KAAK,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG5E,GAAG,CAAC8E,KAAK,CAACF,KAAK,CAAC;AAC9C,CAAC;AAED;AACA,OAAO,MAAMG,aAAa,GAAIC,IAAiC,IAAMA,IAA0B,CAACjD,MAAM"}
|
|
1
|
+
{"version":3,"file":"server.js","names":["Etag","MultipartNode","App","Headers","IncomingMessage","Middleware","Server","Error","ServerRequest","UrlParams","Socket","Cause","Config","Deferred","Effect","Exit","FiberSet","pipe","Layer","Option","Runtime","Stream","Readable","BunContext","Platform","make","options","gen","_","handlerStack","_request","_server","Response","status","encoder","TextEncoder","server","Bun","serve","fetch","websocket","open","ws","unsafeDone","data","deferred","succeed","message","run","encode","close","code","reason","closeDeferred","defaultCloseCodeIsError","fail","SocketError","error","unit","addFinalizer","sync","stop","address","_tag","port","hostname","httpApp","middleware","app","scoped","withDefaultMiddleware","respond","runtime","flatMap","async","runFork","handler","request","Promise","resolve","reject","fiber","provideService","ServerRequestImpl","removeHost","url","signal","addEventListener","interruptAsFork","clientAbortFiberId","push","reload","pop","length","interruptible","forkScoped","asUnit","makeResponse","response","fields","headers","undefined","statusText","method","body","formData","toReadableStream","stream","onExit","preResponseHandler","f","exit","impl","value","isInterruptedOnly","cause","source","aborted","pretty","layerServer","layer","mergeAll","layerWeak","layerConfig","unwrap","wsDefaultRun","buffer","bunServer","headersOverride","remoteAddressOverride","TypeId","constructor","modify","remoteAddress","toUpperCase","originalUrl","some","none","fromInput","fromReadableStream","RequestError","textEffect","text","runSync","cached","tryPromise","try","catch","json","tryMap","JSON","parse","urlParamsBody","URLSearchParams","multipartEffect","multipart","persisted","fromWeb","multipartStream","arrayBufferEffect","arrayBuffer","upgrade","all","makeSemaphore","semaphore","resume","success","map","await","write","chunk","sendBinary","writer","set","forEach","join","raceFirst","withPermits","of","SocketTypeId","index","indexOf","slice","requestSource","self"],"sources":["../../../../src/internal/http/server.ts"],"sourcesContent":[null],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/platform-bun",
|
|
3
|
-
"version": "0.32.
|
|
3
|
+
"version": "0.32.11",
|
|
4
4
|
"description": "Unified interfaces for common platform-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
},
|
|
11
11
|
"sideEffects": [],
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@effect/platform-node-shared": "^0.2.
|
|
13
|
+
"@effect/platform-node-shared": "^0.2.4"
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"@effect/platform": "^0.
|
|
17
|
-
"effect": "^2.4.
|
|
16
|
+
"@effect/platform": "^0.47.0",
|
|
17
|
+
"effect": "^2.4.2"
|
|
18
18
|
},
|
|
19
19
|
"main": "./dist/cjs/index.js",
|
|
20
20
|
"module": "./dist/esm/index.js",
|
|
@@ -14,10 +14,14 @@ import * as ServerRequest from "@effect/platform/Http/ServerRequest"
|
|
|
14
14
|
import type * as ServerResponse from "@effect/platform/Http/ServerResponse"
|
|
15
15
|
import * as UrlParams from "@effect/platform/Http/UrlParams"
|
|
16
16
|
import type * as Path from "@effect/platform/Path"
|
|
17
|
-
import
|
|
17
|
+
import * as Socket from "@effect/platform/Socket"
|
|
18
|
+
import type { ServeOptions, Server as BunServer, ServerWebSocket } from "bun"
|
|
18
19
|
import * as Cause from "effect/Cause"
|
|
19
20
|
import * as Config from "effect/Config"
|
|
21
|
+
import * as Deferred from "effect/Deferred"
|
|
20
22
|
import * as Effect from "effect/Effect"
|
|
23
|
+
import * as Exit from "effect/Exit"
|
|
24
|
+
import * as FiberSet from "effect/FiberSet"
|
|
21
25
|
import { pipe } from "effect/Function"
|
|
22
26
|
import * as Layer from "effect/Layer"
|
|
23
27
|
import * as Option from "effect/Option"
|
|
@@ -38,9 +42,26 @@ export const make = (
|
|
|
38
42
|
return new Response("not found", { status: 404 })
|
|
39
43
|
}
|
|
40
44
|
]
|
|
41
|
-
const
|
|
45
|
+
const encoder = new TextEncoder()
|
|
46
|
+
const server = Bun.serve<WebSocketContext>({
|
|
42
47
|
...options,
|
|
43
|
-
fetch: handlerStack[0]
|
|
48
|
+
fetch: handlerStack[0],
|
|
49
|
+
websocket: {
|
|
50
|
+
open(ws) {
|
|
51
|
+
Deferred.unsafeDone(ws.data.deferred, Exit.succeed(ws))
|
|
52
|
+
},
|
|
53
|
+
message(ws, message) {
|
|
54
|
+
ws.data.run(typeof message === "string" ? encoder.encode(message) : message)
|
|
55
|
+
},
|
|
56
|
+
close(ws, code, reason) {
|
|
57
|
+
Deferred.unsafeDone(
|
|
58
|
+
ws.data.closeDeferred,
|
|
59
|
+
Socket.defaultCloseCodeIsError(code)
|
|
60
|
+
? Exit.fail(new Socket.SocketError({ reason: "Close", error: { code, reason } }))
|
|
61
|
+
: Exit.unit
|
|
62
|
+
)
|
|
63
|
+
}
|
|
64
|
+
}
|
|
44
65
|
})
|
|
45
66
|
|
|
46
67
|
yield* _(Effect.addFinalizer(() =>
|
|
@@ -63,12 +84,12 @@ export const make = (
|
|
|
63
84
|
Effect.flatMap((runtime) =>
|
|
64
85
|
Effect.async<never>((_) => {
|
|
65
86
|
const runFork = Runtime.runFork(runtime)
|
|
66
|
-
function handler(request: Request,
|
|
87
|
+
function handler(request: Request, server: BunServer) {
|
|
67
88
|
return new Promise<Response>((resolve, reject) => {
|
|
68
89
|
const fiber = runFork(Effect.provideService(
|
|
69
90
|
app,
|
|
70
91
|
ServerRequest.ServerRequest,
|
|
71
|
-
new ServerRequestImpl(request, resolve, reject, removeHost(request.url))
|
|
92
|
+
new ServerRequestImpl(request, resolve, reject, removeHost(request.url), server)
|
|
72
93
|
))
|
|
73
94
|
request.signal.addEventListener("abort", () => {
|
|
74
95
|
runFork(fiber.interruptAsFork(Error.clientAbortFiberId))
|
|
@@ -184,6 +205,17 @@ export const layerConfig = (
|
|
|
184
205
|
BunContext.layer
|
|
185
206
|
)
|
|
186
207
|
|
|
208
|
+
interface WebSocketContext {
|
|
209
|
+
readonly deferred: Deferred.Deferred<ServerWebSocket<WebSocketContext>>
|
|
210
|
+
readonly closeDeferred: Deferred.Deferred<void, Socket.SocketError>
|
|
211
|
+
readonly buffer: Array<Uint8Array>
|
|
212
|
+
run: (_: Uint8Array) => void
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
function wsDefaultRun(this: WebSocketContext, _: Uint8Array) {
|
|
216
|
+
this.buffer.push(_)
|
|
217
|
+
}
|
|
218
|
+
|
|
187
219
|
class ServerRequestImpl implements ServerRequest.ServerRequest {
|
|
188
220
|
readonly [ServerRequest.TypeId]: ServerRequest.TypeId
|
|
189
221
|
readonly [IncomingMessage.TypeId]: IncomingMessage.TypeId
|
|
@@ -192,6 +224,7 @@ class ServerRequestImpl implements ServerRequest.ServerRequest {
|
|
|
192
224
|
public resolve: (response: Response) => void,
|
|
193
225
|
public reject: (reason: any) => void,
|
|
194
226
|
readonly url: string,
|
|
227
|
+
private bunServer: BunServer,
|
|
195
228
|
public headersOverride?: Headers.Headers,
|
|
196
229
|
private remoteAddressOverride?: string
|
|
197
230
|
) {
|
|
@@ -210,6 +243,7 @@ class ServerRequestImpl implements ServerRequest.ServerRequest {
|
|
|
210
243
|
this.resolve,
|
|
211
244
|
this.reject,
|
|
212
245
|
options.url ?? this.url,
|
|
246
|
+
this.bunServer,
|
|
213
247
|
options.headers ?? this.headersOverride,
|
|
214
248
|
options.remoteAddress ?? this.remoteAddressOverride
|
|
215
249
|
)
|
|
@@ -330,6 +364,68 @@ class ServerRequestImpl implements ServerRequest.ServerRequest {
|
|
|
330
364
|
))
|
|
331
365
|
return this.arrayBufferEffect
|
|
332
366
|
}
|
|
367
|
+
|
|
368
|
+
get upgrade(): Effect.Effect<Socket.Socket, Error.RequestError> {
|
|
369
|
+
return Effect.flatMap(
|
|
370
|
+
Effect.all([
|
|
371
|
+
Deferred.make<ServerWebSocket<WebSocketContext>>(),
|
|
372
|
+
Deferred.make<void, Socket.SocketError>(),
|
|
373
|
+
Effect.makeSemaphore(1)
|
|
374
|
+
]),
|
|
375
|
+
([deferred, closeDeferred, semaphore]) =>
|
|
376
|
+
Effect.async<Socket.Socket, Error.RequestError>((resume) => {
|
|
377
|
+
const success = this.bunServer.upgrade<WebSocketContext>(this.source, {
|
|
378
|
+
data: {
|
|
379
|
+
deferred,
|
|
380
|
+
closeDeferred,
|
|
381
|
+
buffer: [],
|
|
382
|
+
run: wsDefaultRun
|
|
383
|
+
}
|
|
384
|
+
})
|
|
385
|
+
if (!success) {
|
|
386
|
+
resume(Effect.fail(
|
|
387
|
+
Error.RequestError({
|
|
388
|
+
request: this,
|
|
389
|
+
reason: "Decode",
|
|
390
|
+
error: "Not an upgradeable ServerRequest"
|
|
391
|
+
})
|
|
392
|
+
))
|
|
393
|
+
return
|
|
394
|
+
}
|
|
395
|
+
resume(Effect.map(Deferred.await(deferred), (ws) => {
|
|
396
|
+
const write = (chunk: Uint8Array) => Effect.sync(() => ws.sendBinary(chunk))
|
|
397
|
+
const writer = Effect.succeed(write)
|
|
398
|
+
const run = <R, E, _>(
|
|
399
|
+
handler: (_: Uint8Array) => Effect.Effect<_, E, R>
|
|
400
|
+
): Effect.Effect<void, Socket.SocketError | E, R> =>
|
|
401
|
+
FiberSet.make<any, E>().pipe(
|
|
402
|
+
Effect.flatMap((set) =>
|
|
403
|
+
FiberSet.runtime(set)<R>().pipe(
|
|
404
|
+
Effect.flatMap((run) => {
|
|
405
|
+
ws.data.run = function(data: Uint8Array) {
|
|
406
|
+
run(handler(data))
|
|
407
|
+
}
|
|
408
|
+
ws.data.buffer.forEach((data) => run(handler(data)))
|
|
409
|
+
ws.data.buffer.length = 0
|
|
410
|
+
return FiberSet.join(set)
|
|
411
|
+
})
|
|
412
|
+
)
|
|
413
|
+
),
|
|
414
|
+
Effect.scoped,
|
|
415
|
+
Effect.onExit((exit) => Effect.sync(() => ws.close(exit._tag === "Success" ? 1000 : 1011))),
|
|
416
|
+
Effect.raceFirst(Deferred.await(closeDeferred)),
|
|
417
|
+
semaphore.withPermits(1)
|
|
418
|
+
)
|
|
419
|
+
|
|
420
|
+
return Socket.Socket.of({
|
|
421
|
+
[Socket.SocketTypeId]: Socket.SocketTypeId,
|
|
422
|
+
run,
|
|
423
|
+
writer
|
|
424
|
+
})
|
|
425
|
+
}))
|
|
426
|
+
})
|
|
427
|
+
)
|
|
428
|
+
}
|
|
333
429
|
}
|
|
334
430
|
|
|
335
431
|
const removeHost = (url: string) => {
|