@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 +23 -0
- package/dist/BunAdapter.d.ts +43 -0
- package/dist/BunAdapter.js +203 -0
- package/dist/BunAdapter.js.map +1 -0
- package/package.json +45 -0
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
|
+

|
|
18
|
+

|
|
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
|
+
}
|