@canmi/seam-adapter-bun 0.2.3

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.md ADDED
@@ -0,0 +1,22 @@
1
+ # @canmi/seam-adapter-bun
2
+
3
+ Standalone Bun server adapter that serves a seam router via `Bun.serve()`.
4
+
5
+ ## Usage
6
+
7
+ Exports `serveBun()` which starts a Bun HTTP server with seam routing, optional static file serving, and fallback handling.
8
+
9
+ ## Structure
10
+
11
+ - `src/index.ts` — `serveBun()` entry point
12
+
13
+ ## Development
14
+
15
+ - Build: `bun run --filter '@canmi/seam-adapter-bun' build`
16
+ - Test: `bun run --filter '@canmi/seam-adapter-bun' test`
17
+
18
+ ## Notes
19
+
20
+ - Peer dependency: `@canmi/seam-server`
21
+ - Tests use `bun:test`, not vitest
22
+ - Options: `staticDir` for static files, `fallback` for unmatched routes
@@ -0,0 +1,12 @@
1
+ import { DefinitionMap, HttpHandler, Router } from "@canmi/seam-server";
2
+
3
+ //#region src/index.d.ts
4
+ interface ServeBunOptions {
5
+ port?: number;
6
+ staticDir?: string;
7
+ fallback?: HttpHandler;
8
+ }
9
+ declare function serveBun<T extends DefinitionMap>(router: Router<T>, opts?: ServeBunOptions): Bun.Server<undefined>;
10
+ //#endregion
11
+ export { ServeBunOptions, serveBun };
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"mappings":";;;UAKiB,eAAA;EACf,IAAA;EACA,SAAA;EACA,QAAA,GAAW,WAAA;AAAA;AAAA,iBAGG,QAAA,WAAmB,aAAA,CAAA,CAAe,MAAA,EAAQ,MAAA,CAAO,CAAA,GAAI,IAAA,GAAO,eAAA,GAAe,GAAA,CAAA,MAAA"}
package/dist/index.js ADDED
@@ -0,0 +1,23 @@
1
+ import { createHttpHandler, toWebResponse } from "@canmi/seam-server";
2
+
3
+ //#region src/index.ts
4
+ function serveBun(router, opts) {
5
+ const handler = createHttpHandler(router, {
6
+ staticDir: opts?.staticDir,
7
+ fallback: opts?.fallback
8
+ });
9
+ return Bun.serve({
10
+ port: opts?.port ?? 3e3,
11
+ async fetch(req) {
12
+ return toWebResponse(await handler({
13
+ method: req.method,
14
+ url: req.url,
15
+ body: () => req.json()
16
+ }));
17
+ }
18
+ });
19
+ }
20
+
21
+ //#endregion
22
+ export { serveBun };
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["/* packages/server/adapter/bun/src/index.ts */\n\nimport { createHttpHandler, toWebResponse } from \"@canmi/seam-server\";\nimport type { DefinitionMap, Router, HttpHandler } from \"@canmi/seam-server\";\n\nexport interface ServeBunOptions {\n port?: number;\n staticDir?: string;\n fallback?: HttpHandler;\n}\n\nexport function serveBun<T extends DefinitionMap>(router: Router<T>, opts?: ServeBunOptions) {\n const handler = createHttpHandler(router, {\n staticDir: opts?.staticDir,\n fallback: opts?.fallback,\n });\n return Bun.serve({\n port: opts?.port ?? 3000,\n async fetch(req) {\n const result = await handler({ method: req.method, url: req.url, body: () => req.json() });\n return toWebResponse(result);\n },\n });\n}\n"],"mappings":";;;AAWA,SAAgB,SAAkC,QAAmB,MAAwB;CAC3F,MAAM,UAAU,kBAAkB,QAAQ;EACxC,WAAW,MAAM;EACjB,UAAU,MAAM;EACjB,CAAC;AACF,QAAO,IAAI,MAAM;EACf,MAAM,MAAM,QAAQ;EACpB,MAAM,MAAM,KAAK;AAEf,UAAO,cADQ,MAAM,QAAQ;IAAE,QAAQ,IAAI;IAAQ,KAAK,IAAI;IAAK,YAAY,IAAI,MAAM;IAAE,CAAC,CAC9D;;EAE/B,CAAC"}
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@canmi/seam-adapter-bun",
3
+ "version": "0.2.3",
4
+ "files": [
5
+ "dist"
6
+ ],
7
+ "type": "module",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "scripts": {
15
+ "build": "tsdown",
16
+ "test": "bun test"
17
+ },
18
+ "devDependencies": {
19
+ "@canmi/seam-server": "workspace:*",
20
+ "@types/bun": "^1.2.0",
21
+ "bun-types": "^1.3.9",
22
+ "tsdown": "^0.20.0",
23
+ "typescript": "^5.7.0"
24
+ },
25
+ "peerDependencies": {
26
+ "@canmi/seam-server": "workspace:*"
27
+ }
28
+ }