@bull-board/bun 6.16.1

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,23 @@
1
+ # <img alt="@bull-board" src="https://raw.githubusercontent.com/felixmosh/bull-board/master/packages/ui/src/static/images/logo.svg" width="35px" /> @bull-board/bun
2
+
3
+ [Bun](https://bun.sh/) server adapter for `bull-board`.
4
+
5
+ <p align="center">
6
+ <a href="https://www.npmjs.com/package/@bull-board/bun">
7
+ <img alt="npm version" src="https://img.shields.io/npm/v/@bull-board/bun">
8
+ </a>
9
+ <a href="https://www.npmjs.com/package/bull-board">
10
+ <img alt="npm downloads" src="https://img.shields.io/npm/dw/bull-board">
11
+ </a>
12
+ <a href="https://github.com/vcapretz/bull-board/blob/master/LICENSE">
13
+ <img alt="licence" src="https://img.shields.io/github/license/vcapretz/bull-board">
14
+ </a>
15
+ <p>
16
+
17
+ ![Overview](https://raw.githubusercontent.com/felixmosh/bull-board/master/screenshots/overview.png)
18
+ ![UI](https://raw.githubusercontent.com/felixmosh/bull-board/master/screenshots/dashboard.png)
19
+
20
+ # Usage examples
21
+ 1. [Simple bun setup](https://github.com/felixmosh/bull-board/tree/master/examples/with-bun)
22
+
23
+ For more info visit the main [README](https://github.com/felixmosh/bull-board#readme)
@@ -0,0 +1,43 @@
1
+ import type { AppControllerRoute, AppViewRoute, BullBoardQueues, ControllerHandlerReturnType, IServerAdapter, UIConfig } from '@bull-board/api/typings/app';
2
+ /**
3
+ * Bun route handler type
4
+ */
5
+ type BunHandler = (request: Request) => Response | Promise<Response>;
6
+ /**
7
+ * Bun routes object structure
8
+ * { [path: string]: { [method: string]: BunHandler } }
9
+ */
10
+ type BunRoutes = Record<string, Record<string, BunHandler>>;
11
+ export declare class BunAdapter implements IServerAdapter {
12
+ private basePath;
13
+ private bullBoardQueues;
14
+ private errorHandler;
15
+ private uiConfig;
16
+ private staticRoute?;
17
+ private staticPath?;
18
+ private viewPath?;
19
+ private entryRoute?;
20
+ private apiRoutes;
21
+ setBasePath(path: string): this;
22
+ setStaticPath(staticRoute: string, staticPath: string): this;
23
+ setViewsPath(viewPath: string): this;
24
+ setErrorHandler(handler: (error: Error) => ControllerHandlerReturnType): this;
25
+ setApiRoutes(routes: readonly AppControllerRoute[]): this;
26
+ setEntryRoute(routeDef: AppViewRoute): this;
27
+ setQueues(bullBoardQueues: BullBoardQueues): this;
28
+ setUIConfig(config?: UIConfig): this;
29
+ /**
30
+ * Builds and returns all routes as a Bun routes object
31
+ * Returns an object where keys are paths and values are { METHOD: handler }
32
+ */
33
+ getRoutes(): BunRoutes;
34
+ /**
35
+ * Alias for getRoutes() for backward compatibility
36
+ */
37
+ registerPlugin(): BunRoutes;
38
+ /**
39
+ * Join path segments properly
40
+ */
41
+ private joinPaths;
42
+ }
43
+ export {};
@@ -0,0 +1,203 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BunAdapter = void 0;
7
+ const ejs_1 = __importDefault(require("ejs"));
8
+ const bun_1 = require("bun");
9
+ const node_path_1 = require("node:path");
10
+ class BunAdapter {
11
+ constructor() {
12
+ this.basePath = '/';
13
+ this.uiConfig = {};
14
+ this.apiRoutes = [];
15
+ }
16
+ setBasePath(path) {
17
+ this.basePath = path;
18
+ return this;
19
+ }
20
+ setStaticPath(staticRoute, staticPath) {
21
+ this.staticRoute = staticRoute;
22
+ this.staticPath = staticPath;
23
+ return this;
24
+ }
25
+ setViewsPath(viewPath) {
26
+ this.viewPath = viewPath;
27
+ return this;
28
+ }
29
+ setErrorHandler(handler) {
30
+ this.errorHandler = handler;
31
+ return this;
32
+ }
33
+ setApiRoutes(routes) {
34
+ this.apiRoutes = [...routes];
35
+ return this;
36
+ }
37
+ setEntryRoute(routeDef) {
38
+ this.entryRoute = routeDef;
39
+ return this;
40
+ }
41
+ setQueues(bullBoardQueues) {
42
+ this.bullBoardQueues = bullBoardQueues;
43
+ return this;
44
+ }
45
+ setUIConfig(config = {}) {
46
+ this.uiConfig = config;
47
+ return this;
48
+ }
49
+ /**
50
+ * Builds and returns all routes as a Bun routes object
51
+ * Returns an object where keys are paths and values are { METHOD: handler }
52
+ */
53
+ getRoutes() {
54
+ if (!this.staticRoute || !this.staticPath) {
55
+ throw new Error(`Please call 'setStaticPath' before using 'getRoutes'`);
56
+ }
57
+ if (!this.entryRoute) {
58
+ throw new Error(`Please call 'setEntryRoute' before using 'getRoutes'`);
59
+ }
60
+ if (!this.viewPath) {
61
+ throw new Error(`Please call 'setViewsPath' before using 'getRoutes'`);
62
+ }
63
+ if (!this.uiConfig) {
64
+ throw new Error(`Please call 'setUIConfig' before using 'getRoutes'`);
65
+ }
66
+ if (!this.bullBoardQueues) {
67
+ throw new Error(`Please call 'setQueues' before using 'getRoutes'`);
68
+ }
69
+ const routes = {};
70
+ // Register static file routes with wildcard
71
+ const staticBasePath = this.joinPaths(this.basePath, this.staticRoute);
72
+ routes[`${staticBasePath}/*`] = {
73
+ GET: async (request) => {
74
+ const url = new URL(request.url);
75
+ const pathname = url.pathname;
76
+ const relativePath = pathname.replace(staticBasePath, '');
77
+ // Normalize and resolve the path to prevent directory traversal attacks
78
+ const resolvedStaticPath = (0, node_path_1.resolve)(this.staticPath);
79
+ const requestedPath = (0, node_path_1.resolve)((0, node_path_1.join)(this.staticPath, relativePath));
80
+ // Ensure the requested path is within the static directory
81
+ if (!requestedPath.startsWith(resolvedStaticPath)) {
82
+ return new Response('Forbidden', { status: 403 });
83
+ }
84
+ const bunFile = (0, bun_1.file)(requestedPath);
85
+ if (await bunFile.exists()) {
86
+ return new Response(bunFile);
87
+ }
88
+ return new Response('Not Found', { status: 404 });
89
+ },
90
+ };
91
+ // Register entry route (UI page)
92
+ if (this.entryRoute) {
93
+ const entryRoutes = Array.isArray(this.entryRoute.route)
94
+ ? this.entryRoute.route
95
+ : [this.entryRoute.route];
96
+ for (const route of entryRoutes) {
97
+ const fullPath = this.joinPaths(this.basePath, route);
98
+ const method = this.entryRoute.method.toUpperCase();
99
+ if (!routes[fullPath]) {
100
+ routes[fullPath] = {};
101
+ }
102
+ routes[fullPath][method] = async () => {
103
+ const { name: fileName, params } = this.entryRoute.handler({
104
+ basePath: this.basePath,
105
+ uiConfig: this.uiConfig,
106
+ });
107
+ const template = await ejs_1.default.renderFile(`${this.viewPath}/${fileName}`, params);
108
+ return new Response(template, {
109
+ headers: { 'Content-Type': 'text/html' },
110
+ });
111
+ };
112
+ }
113
+ }
114
+ // Register API routes
115
+ for (const route of this.apiRoutes) {
116
+ const methods = Array.isArray(route.method) ? route.method : [route.method];
117
+ const routePatterns = Array.isArray(route.route) ? route.route : [route.route];
118
+ for (const routePattern of routePatterns) {
119
+ const fullPath = this.joinPaths(this.basePath, routePattern);
120
+ if (!routes[fullPath]) {
121
+ routes[fullPath] = {};
122
+ }
123
+ for (const method of methods) {
124
+ const upperMethod = method.toUpperCase();
125
+ routes[fullPath][upperMethod] = async (request) => {
126
+ try {
127
+ const url = new URL(request.url);
128
+ let body = {};
129
+ // Parse request body for non-GET requests
130
+ if (request.method !== 'GET') {
131
+ try {
132
+ const text = await request.text();
133
+ if (text) {
134
+ body = JSON.parse(text);
135
+ }
136
+ }
137
+ catch (e) {
138
+ // Body parsing failed, use empty object
139
+ }
140
+ }
141
+ // Build query parameters using Object.fromEntries
142
+ const query = Object.fromEntries(url.searchParams.entries());
143
+ // Build headers using Object.fromEntries
144
+ const headers = Object.fromEntries(request.headers.entries());
145
+ // Use Bun's native params (available on request.params)
146
+ const params = request.params || {};
147
+ const response = await route.handler({
148
+ queues: this.bullBoardQueues,
149
+ params,
150
+ query,
151
+ body,
152
+ headers,
153
+ });
154
+ if (response.status === 204) {
155
+ return new Response(null, { status: 204 });
156
+ }
157
+ return new Response(JSON.stringify(response.body), {
158
+ status: response.status || 200,
159
+ headers: { 'Content-Type': 'application/json' },
160
+ });
161
+ }
162
+ catch (error) {
163
+ if (this.errorHandler && error instanceof Error) {
164
+ const response = this.errorHandler(error);
165
+ const body = typeof response.body === 'string'
166
+ ? response.body
167
+ : JSON.stringify(response.body);
168
+ return new Response(body, {
169
+ status: response.status || 500,
170
+ headers: {
171
+ 'Content-Type': typeof response.body === 'string'
172
+ ? 'text/plain'
173
+ : 'application/json'
174
+ },
175
+ });
176
+ }
177
+ return new Response('Internal Server Error', { status: 500 });
178
+ }
179
+ };
180
+ }
181
+ }
182
+ }
183
+ return routes;
184
+ }
185
+ /**
186
+ * Alias for getRoutes() for backward compatibility
187
+ */
188
+ registerPlugin() {
189
+ return this.getRoutes();
190
+ }
191
+ /**
192
+ * Join path segments properly
193
+ */
194
+ joinPaths(...segments) {
195
+ return segments
196
+ .map(segment => segment.replace(/^\/+|\/+$/g, ''))
197
+ .filter(Boolean)
198
+ .join('/')
199
+ .replace(/^/, '/');
200
+ }
201
+ }
202
+ exports.BunAdapter = BunAdapter;
203
+ //# sourceMappingURL=BunAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BunAdapter.js","sourceRoot":"","sources":["../src/BunAdapter.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "@bull-board/bun",
3
+ "version": "6.16.1",
4
+ "description": "A Bun server adapter for Bull-Board dashboard.",
5
+ "keywords": [
6
+ "bull",
7
+ "bullmq",
8
+ "redis",
9
+ "bun",
10
+ "adapter",
11
+ "queue",
12
+ "monitoring",
13
+ "dashboard"
14
+ ],
15
+ "repository": {
16
+ "type": "git",
17
+ "url": "git+https://github.com/felixmosh/bull-board.git",
18
+ "directory": "packages/bun"
19
+ },
20
+ "license": "MIT",
21
+ "author": "felixmosh",
22
+ "main": "dist/index.js",
23
+ "files": [
24
+ "dist"
25
+ ],
26
+ "scripts": {
27
+ "build": "yarn clean && tsc",
28
+ "clean": "rm -rf dist"
29
+ },
30
+ "dependencies": {
31
+ "@bull-board/api": "6.16.1",
32
+ "@bull-board/ui": "6.16.1",
33
+ "ejs": "^3.1.10"
34
+ },
35
+ "devDependencies": {
36
+ "@types/ejs": "^3.1.5",
37
+ "bun-types": "latest"
38
+ },
39
+ "peerDependencies": {
40
+ "bun-types": "*"
41
+ },
42
+ "publishConfig": {
43
+ "access": "public"
44
+ }
45
+ }