MCPcopy Index your code
hub / github.com/cameri/nostream / runDevMenu

Function runDevMenu

src/cli/tui/menus/dev.ts:19–98  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

17}
18
19export const runDevMenu = async (): Promise<number> => {
20 const action = await tuiPrompts.select({
21 message: 'Development utilities',
22 options: [
23 { value: 'db:clean', label: 'Clean DB (events)' },
24 { value: 'db:reset', label: 'Reset DB (rollback+migrate)' },
25 { value: 'seed:relay', label: 'Seed relay data' },
26 { value: 'docker:clean', label: 'Docker system/volume clean' },
27 { value: 'back', label: 'Back' },
28 ],
29 })
30
31 if (tuiPrompts.isCancel(action)) {
32 tuiPrompts.cancel('Cancelled')
33 return 1
34 }
35 if (action === 'back') {
36 return 0
37 }
38
39 switch (action) {
40 case 'db:clean': {
41 const confirmed = await confirmDanger('delete events from the database')
42 if (!confirmed) {
43 return 1
44 }
45
46 const spinner = ora('Cleaning database...').start()
47 const code = await runDevDbClean(['--all', '--force'])
48 if (code === 0) {
49 spinner.succeed('Database clean completed')
50 } else {
51 spinner.fail('Database clean failed')
52 }
53 return code
54 }
55 case 'db:reset': {
56 const confirmed = await confirmDanger('reset database and rerun migrations')
57 if (!confirmed) {
58 return 1
59 }
60
61 const spinner = ora('Resetting database...').start()
62 const code = await runDevDbReset({ yes: true })
63 if (code === 0) {
64 spinner.succeed('Database reset completed')
65 } else {
66 spinner.fail('Database reset failed')
67 }
68 return code
69 }
70 case 'seed:relay': {
71 const spinner = ora('Seeding relay...').start()
72 const code = await runDevSeedRelay()
73 if (code === 0) {
74 spinner.succeed('Relay seed completed')
75 } else {
76 spinner.fail('Relay seed failed')

Callers 1

runTuiFunction · 0.90

Calls 5

runDevDbCleanFunction · 0.90
runDevDbResetFunction · 0.90
runDevSeedRelayFunction · 0.90
runDevDockerCleanFunction · 0.90
confirmDangerFunction · 0.85

Tested by

no test coverage detected