@fluojs/platform-bun 1.0.0-beta.1 → 1.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ko.md CHANGED
@@ -11,6 +11,8 @@
11
11
  - [빠른 시작](#빠른-시작)
12
12
  - [주요 패턴](#주요-패턴)
13
13
  - [공개 API 개요](#공개-api-개요)
14
+ - [어댑터 계약](#어댑터-계약)
15
+ - [Conformance 커버리지](#conformance-커버리지)
14
16
  - [관련 패키지](#관련-패키지)
15
17
  - [예제 소스](#예제-소스)
16
18
 
@@ -76,6 +78,28 @@ export class MyGateway {}
76
78
  - `bootstrapBunApplication(module, options)`: 암시적 시작 로그 없이 애플리케이션을 부트스트랩하는 고급 헬퍼입니다.
77
79
  - `runBunApplication(module, options)`: 시그널 연결을 포함한 빠른 시작을 위한 호환 헬퍼입니다.
78
80
 
81
+ 어댑터는 realtime 패키지가 사용하는 타입 지정 Bun 통합 seam도 함께 내보냅니다.
82
+
83
+ - `BunHttpApplicationAdapter`: `Bun.serve()`를 기반으로 동작하는 `HttpApplicationAdapter` 구현체입니다.
84
+ - `BunAdapterOptions`: `createBunAdapter()`가 받는 host, port, TLS, raw-body, multipart, shutdown 옵션입니다.
85
+ - `BootstrapBunApplicationOptions` 및 `RunBunApplicationOptions`: Bun 호스팅 애플리케이션의 bootstrap/run 옵션입니다.
86
+ - `BunWebSocketBinding` 및 `BunRealtimeBindingHost`: 일반 HTTP dispatch 전에 `@fluojs/websockets/bun`이 사용하는 binding 계약입니다.
87
+
88
+ ## 어댑터 계약
89
+
90
+ - **런타임 host**: 이 패키지는 listen 시점에 `globalThis.Bun.serve()`가 필요합니다. 테스트에서는 Bun 호환 test double을 제공할 수 있지만, production 사용은 Bun 전용입니다.
91
+ - **요청 portability**: Fetch 요청은 shared web dispatcher를 통해 변환되며 malformed cookie 값, query 배열, `rawBody: true`일 때 JSON/text raw body, SSE framing을 보존합니다.
92
+ - **Multipart 동작**: Multipart 요청은 `rawBody`를 노출하지 않으며 multipart limit은 shared runtime parser를 통해 계속 적용됩니다.
93
+ - **시작 target**: `hostname`, `port`, `tls`는 `Bun.serve()`로 전달됩니다. 시작 로그는 설정된 HTTP 또는 HTTPS listen URL을 보고합니다.
94
+ - **종료 소유권**: `close()`는 새 유입을 중단하고, in-flight HTTP handler를 기다린 뒤, drain이 끝나면 adapter state를 정리하며 `runBunApplication()`이 등록한 signal listener를 제거합니다.
95
+ - **Realtime seam**: Bun websocket binding은 서버를 시작하는 `listen()` 전에 구성해야 합니다. Upgrade 요청은 HTTP dispatch로 넘어가기 전에 구성된 binding에 먼저 전달됩니다.
96
+
97
+ ## Conformance 커버리지
98
+
99
+ `packages/platform-bun/src/adapter.test.ts`는 문서화된 계약을 검증하는 package-local regression 대상입니다. 이 파일은 malformed cookie, JSON/text raw-body 보존, multipart raw-body 제외, SSE framing을 검증하는 Bun fetch-style portability assertion과 startup logging, shutdown listener cleanup, in-flight drain, timeout reporting, websocket binding delegation을 검증하는 집중 테스트를 포함합니다.
100
+
101
+ 저장소의 더 넓은 suite도 `packages/testing/src/portability/web-runtime-adapter-portability.test.ts`에서 `createWebRuntimeHttpAdapterPortabilityHarness(...)`로 Bun을 Deno 및 Cloudflare Workers와 함께 실행해 fetch-style platform 간 shared web-runtime portability baseline을 맞춥니다.
102
+
79
103
  ## 관련 패키지
80
104
 
81
105
  - `@fluojs/runtime`: 핵심 런타임입니다.
package/README.md CHANGED
@@ -11,6 +11,8 @@ Bun-backed HTTP adapter for the fluo runtime, built on native `Bun.serve()`.
11
11
  - [Quick Start](#quick-start)
12
12
  - [Common Patterns](#common-patterns)
13
13
  - [Public API Overview](#public-api-overview)
14
+ - [Adapter Contract](#adapter-contract)
15
+ - [Conformance Coverage](#conformance-coverage)
14
16
  - [Related Packages](#related-packages)
15
17
  - [Example Sources](#example-sources)
16
18
 
@@ -76,6 +78,28 @@ export class MyGateway {}
76
78
  - `bootstrapBunApplication(module, options)`: Advanced bootstrap without implicit startup logging.
77
79
  - `runBunApplication(module, options)`: Compatibility helper for quick startup with signal wiring.
78
80
 
81
+ The adapter also exports the typed Bun integration seams used by realtime packages:
82
+
83
+ - `BunHttpApplicationAdapter`: `HttpApplicationAdapter` implementation backed by `Bun.serve()`.
84
+ - `BunAdapterOptions`: host, port, TLS, raw-body, multipart, and shutdown options accepted by `createBunAdapter()`.
85
+ - `BootstrapBunApplicationOptions` and `RunBunApplicationOptions`: application bootstrap/run options for Bun-hosted apps.
86
+ - `BunWebSocketBinding` and `BunRealtimeBindingHost`: binding contracts used by `@fluojs/websockets/bun` before normal HTTP dispatch.
87
+
88
+ ## Adapter Contract
89
+
90
+ - **Runtime host**: This package requires `globalThis.Bun.serve()` at listen time. Tests may provide a Bun-compatible test double, but production use is Bun-only.
91
+ - **Request portability**: Fetch requests are translated through the shared web dispatcher, preserving malformed cookie values, query arrays, JSON/text raw bodies when `rawBody: true`, and SSE framing.
92
+ - **Multipart behavior**: Multipart requests never expose `rawBody`, and multipart limits continue to flow through the shared runtime parser.
93
+ - **Startup target**: `hostname`, `port`, and `tls` are forwarded to `Bun.serve()`. Startup logs report the configured HTTP or HTTPS listen URL.
94
+ - **Shutdown ownership**: `close()` stops new ingress, waits for in-flight HTTP handlers, clears adapter state after drain settles, and removes signal listeners registered by `runBunApplication()`.
95
+ - **Realtime seam**: Bun websocket bindings must be configured before `listen()` starts the server. Upgrade requests are offered to the configured binding before falling back to HTTP dispatch.
96
+
97
+ ## Conformance Coverage
98
+
99
+ `packages/platform-bun/src/adapter.test.ts` is the package-local regression target for the documented contract. It includes Bun fetch-style portability assertions for malformed cookies, JSON/text raw-body preservation, multipart raw-body exclusion, and SSE framing, plus focused tests for startup logging, shutdown listener cleanup, in-flight drain behavior, timeout reporting, and websocket binding delegation.
100
+
101
+ The broader repository suite also exercises Bun through `createWebRuntimeHttpAdapterPortabilityHarness(...)` alongside Deno and Cloudflare Workers in `packages/testing/src/portability/web-runtime-adapter-portability.test.ts`, keeping the shared web-runtime portability baseline aligned across fetch-style platforms.
102
+
79
103
  ## Related Packages
80
104
 
81
105
  - `@fluojs/runtime`: Core framework runtime.
package/dist/adapter.d.ts CHANGED
@@ -8,10 +8,15 @@ declare module '@fluojs/http' {
8
8
  }
9
9
  }
10
10
  type BunHostname = string;
11
+ /** Shutdown signal names that `runBunApplication()` can register. */
11
12
  export type BunApplicationSignal = 'SIGINT' | 'SIGTERM';
13
+ /** CORS input accepted by Bun application bootstrap helpers. */
12
14
  export type BunCorsInput = false | string | string[] | CorsOptions;
15
+ /** TLS options forwarded to `Bun.serve()` without adapter-level normalization. */
13
16
  export type BunTlsOptions = Record<string, unknown>;
17
+ /** Message payloads accepted by Bun server websocket bindings. */
14
18
  export type BunWebSocketMessage = string | ArrayBuffer | Uint8Array;
19
+ /** Minimal Bun server websocket shape used by the official websocket binding seam. */
15
20
  export interface BunServerWebSocket<TData = unknown> {
16
21
  readonly data: TData;
17
22
  readonly readyState: number;
@@ -25,6 +30,7 @@ export interface BunServerWebSocket<TData = unknown> {
25
30
  subscribe(topic: string): void;
26
31
  unsubscribe(topic: string): void;
27
32
  }
33
+ /** Callback contract forwarded to the `websocket` option of `Bun.serve()`. */
28
34
  export interface BunWebSocketHandler<TData = unknown> {
29
35
  backpressureLimit?: number;
30
36
  close?(socket: BunServerWebSocket<TData>, code: number, reason: string): void | Promise<void>;
@@ -43,18 +49,22 @@ export interface BunWebSocketHandler<TData = unknown> {
43
49
  publishToSelf?: boolean;
44
50
  sendPings?: boolean;
45
51
  }
52
+ /** Fetch-style websocket binding consumed before normal HTTP dispatch. */
46
53
  export interface BunWebSocketBinding<TData = unknown> {
47
54
  fetch(request: Request, server: BunServerLike): Response | Promise<Response> | undefined | Promise<Response | undefined>;
48
55
  idleTimeout?: number;
49
56
  maxRequestBodySize?: number;
50
57
  websocket: BunWebSocketHandler<TData>;
51
58
  }
59
+ /** Host contract exposed by Bun adapters that can install a realtime binding. */
52
60
  export interface BunRealtimeBindingHost {
53
61
  configureRealtimeBinding<TData>(binding: BunWebSocketBinding<TData> | undefined): void;
54
62
  }
63
+ /** Backward-compatible host contract for Bun websocket-specific bindings. */
55
64
  export interface BunWebSocketBindingHost extends BunRealtimeBindingHost {
56
65
  configureWebSocketBinding<TData>(binding: BunWebSocketBinding<TData> | undefined): void;
57
66
  }
67
+ /** Subset of `Bun.serve()` options used by the adapter and its tests. */
58
68
  export interface BunServeOptions {
59
69
  development?: boolean;
60
70
  error?: (error: Error) => Response | Promise<Response>;
@@ -66,6 +76,7 @@ export interface BunServeOptions {
66
76
  tls?: BunTlsOptions;
67
77
  websocket?: BunWebSocketHandler;
68
78
  }
79
+ /** Minimal Bun server handle used by fluo for fetch dispatch, upgrades, and shutdown. */
69
80
  export interface BunServerLike {
70
81
  fetch?(request: Request): Response | Promise<Response> | undefined | Promise<Response | undefined>;
71
82
  hostname?: BunHostname;
@@ -77,45 +88,81 @@ export interface BunServerLike {
77
88
  }): boolean;
78
89
  url?: URL;
79
90
  }
91
+ /** Options for `createBunAdapter()`. */
80
92
  export interface BunAdapterOptions {
93
+ /** Enables Bun development-mode behavior when supported by the host runtime. */
81
94
  development?: boolean;
95
+ /** Hostname passed through to `Bun.serve()`. */
82
96
  hostname?: BunHostname;
97
+ /** Idle timeout passed through to `Bun.serve()`. */
83
98
  idleTimeout?: number;
99
+ /** Maximum request body size forwarded as Bun's `maxRequestBodySize`. */
84
100
  maxBodySize?: number;
101
+ /** Multipart parsing limits used by the shared web request dispatcher. */
85
102
  multipart?: MultipartOptions;
103
+ /** Port passed through to `Bun.serve()`, defaulting to 3000. */
86
104
  port?: number;
105
+ /** Preserves raw bodies for non-multipart requests when enabled. */
87
106
  rawBody?: boolean;
107
+ /** Whether shutdown asks Bun to stop active connections immediately. */
88
108
  stopActiveConnections?: boolean;
109
+ /** TLS options forwarded to `Bun.serve()` for HTTPS startup. */
89
110
  tls?: BunTlsOptions;
90
111
  }
112
+ /** Options for creating a standalone Bun `fetch(request)` handler. */
91
113
  export interface CreateBunFetchHandlerOptions {
114
+ /** Dispatcher that receives translated fluo framework requests. */
92
115
  dispatcher: Dispatcher;
116
+ /** Error message used when a request arrives before dispatcher binding is ready. */
93
117
  dispatcherNotReadyMessage?: string;
118
+ /** Maximum request body size enforced by the shared web dispatcher. */
94
119
  maxBodySize?: number;
120
+ /** Multipart parsing limits used by the shared web dispatcher. */
95
121
  multipart?: MultipartOptions;
122
+ /** Preserves raw bodies for JSON and text requests when enabled. */
96
123
  rawBody?: boolean;
97
124
  }
125
+ /** Bootstrap options for Bun applications that do not install shutdown signal wiring. */
98
126
  export interface BootstrapBunApplicationOptions extends Omit<CreateApplicationOptions, 'adapter' | 'logger' | 'middleware'> {
127
+ /** CORS policy applied by the shared HTTP bootstrap path. */
99
128
  cors?: BunCorsInput;
129
+ /** Enables Bun development-mode behavior when supported by the host runtime. */
100
130
  development?: boolean;
131
+ /** Global route prefix applied by the shared HTTP bootstrap path. */
101
132
  globalPrefix?: string;
133
+ /** Routes excluded from the global prefix. */
102
134
  globalPrefixExclude?: readonly string[];
135
+ /** Hostname passed through to `Bun.serve()`. */
103
136
  hostname?: BunHostname;
137
+ /** Idle timeout passed through to `Bun.serve()`. */
104
138
  idleTimeout?: number;
139
+ /** Application logger used for startup, shutdown, and failure reporting. */
105
140
  logger?: ApplicationLogger;
141
+ /** Maximum request body size forwarded as Bun's `maxRequestBodySize`. */
106
142
  maxBodySize?: number;
143
+ /** Middleware applied by the shared HTTP bootstrap path. */
107
144
  middleware?: MiddlewareLike[];
145
+ /** Multipart parsing limits used by the shared web request dispatcher. */
108
146
  multipart?: MultipartOptions;
147
+ /** Port passed through to `Bun.serve()`, defaulting to 3000. */
109
148
  port?: number;
149
+ /** Preserves raw bodies for non-multipart requests when enabled. */
110
150
  rawBody?: boolean;
151
+ /** Security header policy applied by the shared HTTP bootstrap path. */
111
152
  securityHeaders?: false | SecurityHeadersOptions;
153
+ /** Whether shutdown asks Bun to stop active connections immediately. */
112
154
  stopActiveConnections?: boolean;
155
+ /** TLS options forwarded to `Bun.serve()` for HTTPS startup. */
113
156
  tls?: BunTlsOptions;
114
157
  }
158
+ /** Run options for Bun applications with optional shutdown signal wiring. */
115
159
  export interface RunBunApplicationOptions extends BootstrapBunApplicationOptions {
160
+ /** Maximum signal-driven shutdown duration before fluo reports timeout via `process.exitCode`. */
116
161
  forceExitTimeoutMs?: number;
162
+ /** Shutdown signals to register, or `false` to disable signal wiring. */
117
163
  shutdownSignals?: false | readonly BunApplicationSignal[];
118
164
  }
165
+ /** HTTP application adapter backed by native `Bun.serve()`. */
119
166
  export declare class BunHttpApplicationAdapter implements HttpApplicationAdapter, BunWebSocketBindingHost {
120
167
  private readonly options;
121
168
  private closeInFlight?;
@@ -125,20 +172,53 @@ export declare class BunHttpApplicationAdapter implements HttpApplicationAdapter
125
172
  private server?;
126
173
  private realtimeBinding?;
127
174
  constructor(options?: BunAdapterOptions);
175
+ /** Returns the active Bun server handle after `listen()` starts. */
128
176
  getServer(): BunServerLike | undefined;
177
+ /** Returns the bind target and externally logged URL for the current Bun server. */
129
178
  getListenTarget(): HttpAdapterListenTarget;
179
+ /** Reports Bun's fetch-style websocket capability for realtime package integration. */
130
180
  getRealtimeCapability(): import("@fluojs/http").FetchStyleHttpAdapterRealtimeCapability;
181
+ /** Configures the official realtime binding before the Bun server starts. */
131
182
  configureRealtimeBinding<TData>(binding: BunWebSocketBinding<TData> | undefined): void;
183
+ /** Configures a Bun websocket binding through the legacy websocket host name. */
132
184
  configureWebSocketBinding<TData>(binding: BunWebSocketBinding<TData> | undefined): void;
185
+ /** Starts the Bun server and binds framework dispatch to native fetch requests. */
133
186
  listen(dispatcher: Dispatcher): Promise<void>;
187
+ /** Stops ingress, waits for in-flight HTTP handlers, and releases adapter state. */
134
188
  close(): Promise<void>;
135
189
  private dispatchHttpRequest;
136
190
  private trackInFlightRequest;
137
191
  private waitForInFlightRequests;
138
192
  }
193
+ /**
194
+ * Creates a standalone Bun-compatible fetch handler.
195
+ *
196
+ * @param options - Dispatcher and request parsing options for translating native requests.
197
+ * @returns A `fetch(request)` handler suitable for custom `Bun.serve()` calls.
198
+ */
139
199
  export declare function createBunFetchHandler({ dispatcher, dispatcherNotReadyMessage, maxBodySize, multipart, rawBody, }: CreateBunFetchHandlerOptions): (request: Request) => Promise<Response>;
200
+ /**
201
+ * Creates the recommended Bun HTTP adapter instance.
202
+ *
203
+ * @param options - Bun server and request parsing options.
204
+ * @returns A fluo HTTP application adapter backed by `Bun.serve()`.
205
+ */
140
206
  export declare function createBunAdapter(options?: BunAdapterOptions): HttpApplicationAdapter;
207
+ /**
208
+ * Bootstraps a fluo application with the Bun adapter without starting signal wiring.
209
+ *
210
+ * @param rootModule - Root fluo module to compile.
211
+ * @param options - Bun adapter and application bootstrap options.
212
+ * @returns The bootstrapped application; call `listen()` to start serving.
213
+ */
141
214
  export declare function bootstrapBunApplication(rootModule: ModuleType, options: BootstrapBunApplicationOptions): Promise<Application>;
215
+ /**
216
+ * Bootstraps, starts, and wires shutdown handling for a Bun-hosted fluo application.
217
+ *
218
+ * @param rootModule - Root fluo module to compile.
219
+ * @param options - Bun adapter, application, and shutdown options.
220
+ * @returns The running application instance.
221
+ */
142
222
  export declare function runBunApplication(rootModule: ModuleType, options: RunBunApplicationOptions): Promise<Application>;
143
223
  export {};
144
224
  //# sourceMappingURL=adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
package/dist/adapter.js CHANGED
@@ -2,10 +2,43 @@ import { createFetchStyleHttpAdapterRealtimeCapability } from '@fluojs/http';
2
2
  import { createNodeShutdownSignalRegistration, defaultNodeShutdownSignals } from '@fluojs/runtime/node';
3
3
  import { dispatchWebRequest } from '@fluojs/runtime/web';
4
4
  import { bootstrapHttpAdapterApplication, runHttpAdapterApplication } from '@fluojs/runtime/internal/http-adapter';
5
+
6
+ /** Shutdown signal names that `runBunApplication()` can register. */
7
+
8
+ /** CORS input accepted by Bun application bootstrap helpers. */
9
+
10
+ /** TLS options forwarded to `Bun.serve()` without adapter-level normalization. */
11
+
12
+ /** Message payloads accepted by Bun server websocket bindings. */
13
+
14
+ /** Minimal Bun server websocket shape used by the official websocket binding seam. */
15
+
16
+ /** Callback contract forwarded to the `websocket` option of `Bun.serve()`. */
17
+
18
+ /** Fetch-style websocket binding consumed before normal HTTP dispatch. */
19
+
20
+ /** Host contract exposed by Bun adapters that can install a realtime binding. */
21
+
22
+ /** Backward-compatible host contract for Bun websocket-specific bindings. */
23
+
24
+ /** Subset of `Bun.serve()` options used by the adapter and its tests. */
25
+
26
+ /** Minimal Bun server handle used by fluo for fetch dispatch, upgrades, and shutdown. */
27
+
28
+ /** Options for `createBunAdapter()`. */
29
+
30
+ /** Options for creating a standalone Bun `fetch(request)` handler. */
31
+
32
+ /** Bootstrap options for Bun applications that do not install shutdown signal wiring. */
33
+
34
+ /** Run options for Bun applications with optional shutdown signal wiring. */
35
+
5
36
  const DEFAULT_PORT = 3000;
6
37
  const DEFAULT_DISPATCHER_NOT_READY_MESSAGE = 'Bun adapter received a request before dispatcher binding completed.';
7
38
  const DEFAULT_SHUTDOWN_TIMEOUT_MS = 10_000;
8
39
  const BUN_WEBSOCKET_SUPPORT_REASON = 'Bun exposes Bun.serve() + server.upgrade() request-upgrade hosting. Use @fluojs/websockets/bun for the official raw websocket binding.';
40
+
41
+ /** HTTP application adapter backed by native `Bun.serve()`. */
9
42
  export class BunHttpApplicationAdapter {
10
43
  closeInFlight;
11
44
  dispatcher;
@@ -16,9 +49,13 @@ export class BunHttpApplicationAdapter {
16
49
  constructor(options = {}) {
17
50
  this.options = options;
18
51
  }
52
+
53
+ /** Returns the active Bun server handle after `listen()` starts. */
19
54
  getServer() {
20
55
  return this.server;
21
56
  }
57
+
58
+ /** Returns the bind target and externally logged URL for the current Bun server. */
22
59
  getListenTarget() {
23
60
  const protocol = this.options.tls ? 'https' : 'http';
24
61
  const configuredHostname = this.options.hostname ?? 'localhost';
@@ -30,20 +67,28 @@ export class BunHttpApplicationAdapter {
30
67
  url
31
68
  };
32
69
  }
70
+
71
+ /** Reports Bun's fetch-style websocket capability for realtime package integration. */
33
72
  getRealtimeCapability() {
34
73
  return createFetchStyleHttpAdapterRealtimeCapability(BUN_WEBSOCKET_SUPPORT_REASON, {
35
74
  support: 'supported'
36
75
  });
37
76
  }
77
+
78
+ /** Configures the official realtime binding before the Bun server starts. */
38
79
  configureRealtimeBinding(binding) {
39
80
  if (this.server && binding !== undefined) {
40
81
  throw new Error('Bun websocket binding must be configured before Bun adapter listen() starts the server.');
41
82
  }
42
83
  this.realtimeBinding = binding;
43
84
  }
85
+
86
+ /** Configures a Bun websocket binding through the legacy websocket host name. */
44
87
  configureWebSocketBinding(binding) {
45
88
  this.configureRealtimeBinding(binding);
46
89
  }
90
+
91
+ /** Starts the Bun server and binds framework dispatch to native fetch requests. */
47
92
  async listen(dispatcher) {
48
93
  this.dispatcher = dispatcher;
49
94
  if (this.server) {
@@ -73,6 +118,8 @@ export class BunHttpApplicationAdapter {
73
118
  websocket: realtimeBinding?.websocket
74
119
  });
75
120
  }
121
+
122
+ /** Stops ingress, waits for in-flight HTTP handlers, and releases adapter state. */
76
123
  async close() {
77
124
  if (this.closeInFlight) {
78
125
  await waitForCloseWithTimeout(this.closeInFlight, DEFAULT_SHUTDOWN_TIMEOUT_MS);
@@ -136,6 +183,13 @@ export class BunHttpApplicationAdapter {
136
183
  await this.inFlightDrain?.promise;
137
184
  }
138
185
  }
186
+
187
+ /**
188
+ * Creates a standalone Bun-compatible fetch handler.
189
+ *
190
+ * @param options - Dispatcher and request parsing options for translating native requests.
191
+ * @returns A `fetch(request)` handler suitable for custom `Bun.serve()` calls.
192
+ */
139
193
  export function createBunFetchHandler({
140
194
  dispatcher,
141
195
  dispatcherNotReadyMessage = DEFAULT_DISPATCHER_NOT_READY_MESSAGE,
@@ -154,9 +208,24 @@ export function createBunFetchHandler({
154
208
  });
155
209
  };
156
210
  }
211
+
212
+ /**
213
+ * Creates the recommended Bun HTTP adapter instance.
214
+ *
215
+ * @param options - Bun server and request parsing options.
216
+ * @returns A fluo HTTP application adapter backed by `Bun.serve()`.
217
+ */
157
218
  export function createBunAdapter(options = {}) {
158
219
  return new BunHttpApplicationAdapter(options);
159
220
  }
221
+
222
+ /**
223
+ * Bootstraps a fluo application with the Bun adapter without starting signal wiring.
224
+ *
225
+ * @param rootModule - Root fluo module to compile.
226
+ * @param options - Bun adapter and application bootstrap options.
227
+ * @returns The bootstrapped application; call `listen()` to start serving.
228
+ */
160
229
  export async function bootstrapBunApplication(rootModule, options) {
161
230
  return bootstrapHttpAdapterApplication(rootModule, options, createBunAdapter({
162
231
  development: options.development,
@@ -170,6 +239,14 @@ export async function bootstrapBunApplication(rootModule, options) {
170
239
  tls: options.tls
171
240
  }));
172
241
  }
242
+
243
+ /**
244
+ * Bootstraps, starts, and wires shutdown handling for a Bun-hosted fluo application.
245
+ *
246
+ * @param rootModule - Root fluo module to compile.
247
+ * @param options - Bun adapter, application, and shutdown options.
248
+ * @returns The running application instance.
249
+ */
173
250
  export async function runBunApplication(rootModule, options) {
174
251
  const adapter = createBunAdapter({
175
252
  development: options.development,
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "platform",
9
9
  "server"
10
10
  ],
11
- "version": "1.0.0-beta.1",
11
+ "version": "1.0.0-beta.2",
12
12
  "private": false,
13
13
  "license": "MIT",
14
14
  "repository": {
@@ -33,7 +33,7 @@
33
33
  ],
34
34
  "dependencies": {
35
35
  "@fluojs/http": "^1.0.0-beta.1",
36
- "@fluojs/runtime": "^1.0.0-beta.1"
36
+ "@fluojs/runtime": "^1.0.0-beta.2"
37
37
  },
38
38
  "devDependencies": {
39
39
  "vitest": "^3.2.4"