Files
speckle-server/packages/server/modules/cli/commands/bull/monitor.ts
T
Kristaps Fabians Geikins bde148f286 chore(server): migrating fully to ESM (#5042)
* wip

* some extra fixes

* stuff kinda works?

* need to figure out mocks

* need to figure out mocks

* fix db listener

* gqlgen fix

* minor gqlgen watch adjustment

* lint fixes

* delete old codegen file

* converting migrations to ESM

* getModuleDIrectory

* vitest sort of works

* added back ts-vitest

* resolve gql double load

* fixing test timeout configs

* TSC lint fix

* fix automate tests

* moar debugging

* debugging

* more debugging

* codegen update

* server works

* yargs migrated

* chore(server): getting rid of global mocks for Server ESM (#5046)

* got rid of email mock

* got rid of comment mocks

* got rid of multi region mocks

* got rid of stripe mock

* admin override mock updated

* removed final mock

* fixing import.meta.resolve calls

* another import.meta.resolve fix

* added requested test

* nyc ESM fix

* removed unneeded deps + linting

* yarn lock forgot to commit

* tryna fix flakyness

* email capture util fix

* sendEmail fix

* fix TSX check

* sender transporter fix + CR comments

* merge main fix

* test fixx

* circleci fix

* gqlgen bigint fix

* error formatter fix

* more error formatting improvements

* esmloader added to Dockerfile

* more dockerfile fixes

* bg jobs fix
2025-07-14 10:26:19 +03:00

60 lines
1.6 KiB
TypeScript

import { CommandModule } from 'yargs'
import express from 'express'
import { ExpressAdapter } from '@bull-board/express'
import { createBullBoard } from '@bull-board/api'
import { BullAdapter } from '@bull-board/api/bullAdapter'
import {
NOTIFICATIONS_QUEUE,
buildNotificationsQueue
} from '@/modules/notifications/services/queue'
import { noop } from 'lodash-es'
import { cliLogger } from '@/observability/logging'
const PORT = 3032
const command: CommandModule<unknown, { testQueueId: string }> = {
command: 'monitor [testQueueId]',
describe: 'Run bull-board monitoring web UI',
builder: {
testQueueId: {
describe:
'Optionally specify the ID of a test queue (from a test run) to load it as well',
type: 'string'
}
},
handler: async (argv) => {
const testQueueId = argv.testQueueId
cliLogger.info('Initializing bull queues...')
const queues = [await buildNotificationsQueue(NOTIFICATIONS_QUEUE)]
if (testQueueId) {
cliLogger.info('Also initializing queue %s...', testQueueId)
queues.push(await buildNotificationsQueue(testQueueId))
}
cliLogger.info('Initializing monitor...')
const app = express()
const serverAdapter = new ExpressAdapter()
createBullBoard({
serverAdapter,
queues: Object.values(queues).map((q) => new BullAdapter(q))
})
app.use(serverAdapter.getRouter())
app.listen(PORT, () => {
cliLogger.info(`Running on ${PORT}...`)
cliLogger.info(
`For the UI, open http://127.0.0.1:${PORT}/, and make sure Redis is running`
)
})
// Waiting forever
await new Promise(noop)
}
}
export = command