@colyseus/monitor
Version:
Web Monitoring Panel for Colyseus
35 lines (29 loc) • 835 B
text/typescript
import express from 'express';
import path from 'path';
// required for ESM support. (esbuild uses it)
import { fileURLToPath } from 'url';
import { getAPI } from './api.js';
import './ext/Room.js';
const frontendDirectory = path.resolve(__dirname, "..", "build", "static");
export interface MonitorOptions {
columns: Array<
'roomId' |
'name' |
'clients' |
'maxClients' |
'locked' |
'elapsedTime' |
{ metadata: string } |
'processId' |
"publicAddress"
>
}
/**
* TODO: expose the `router` instead on next major version.
*/
export function monitor (opts: Partial<MonitorOptions> = {}): express.Router {
const router = express.Router();
router.use(express.static(frontendDirectory));
router.use('/api', getAPI(opts));
return router;
}