Skip to content

Commit

Permalink
feat(cli): add shortcut for restarting server (#2403)
Browse files Browse the repository at this point in the history
Co-authored-by: Divyansh Singh <40380293+brc-dd@users.noreply.github.com>
  • Loading branch information
alexzhang1030 and brc-dd committed May 27, 2023
1 parent 93f8a05 commit 64b06db
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 13 deletions.
2 changes: 1 addition & 1 deletion src/node/cli.ts
Expand Up @@ -34,7 +34,7 @@ if (!command || command === 'dev') {
await server.listen()
logVersion(server.config.logger)
server.printUrls()
bindShortcuts(server)
bindShortcuts(server, createDevServer)
}
createDevServer().catch((err) => {
createLogger().error(
Expand Down
46 changes: 34 additions & 12 deletions src/node/shortcuts.ts
@@ -1,22 +1,31 @@
import colors from 'picocolors'
import type { ViteDevServer } from 'vite'
import c from 'picocolors'
import { clearCache } from './markdownToVue'

type CreateDevServer = () => Promise<void>

export type CLIShortcut = {
key: string
description: string
action(server: ViteDevServer): void | Promise<void>
action(
server: ViteDevServer,
createDevServer: CreateDevServer
): void | Promise<void>
}

export function bindShortcuts(server: ViteDevServer): void {
export function bindShortcuts(
server: ViteDevServer,
createDevServer: CreateDevServer
): void {
if (!server.httpServer || !process.stdin.isTTY || process.env.CI) {
return
}

server.config.logger.info(
colors.dim(colors.green(' ➜')) +
colors.dim(' press ') +
colors.bold('h') +
colors.dim(' to show help')
c.dim(c.green(' ➜')) +
c.dim(' press ') +
c.bold('h') +
c.dim(' to show help')
)

let actionRunning = false
Expand All @@ -34,12 +43,12 @@ export function bindShortcuts(server: ViteDevServer): void {
server.config.logger.info(
[
'',
colors.bold(' Shortcuts'),
c.bold(' Shortcuts'),
...SHORTCUTS.map(
(shortcut) =>
colors.dim(' press ') +
colors.bold(shortcut.key) +
colors.dim(` to ${shortcut.description}`)
c.dim(' press ') +
c.bold(shortcut.key) +
c.dim(` to ${shortcut.description}`)
)
].join('\n')
)
Expand All @@ -49,7 +58,7 @@ export function bindShortcuts(server: ViteDevServer): void {
if (!shortcut) return

actionRunning = true
await shortcut.action(server)
await shortcut.action(server, createDevServer)
actionRunning = false
}

Expand All @@ -63,6 +72,19 @@ export function bindShortcuts(server: ViteDevServer): void {
}

const SHORTCUTS: CLIShortcut[] = [
{
key: 'r',
description: 'restart the server',
async action(server, createDevServer) {
server.config.logger.info(c.green(`restarting server...\n`), {
clear: true,
timestamp: true
})
clearCache()
await server.close()
await createDevServer()
}
},
{
key: 'u',
description: 'show server url',
Expand Down

0 comments on commit 64b06db

Please sign in to comment.