Skip to content

Commit

Permalink
fix: terminals view
Browse files Browse the repository at this point in the history
  • Loading branch information
antfu committed Oct 1, 2023
1 parent 91ae0bd commit df5dd76
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 11 deletions.
4 changes: 2 additions & 2 deletions packages/devtools-kit/src/_types/rpc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ export interface ServerFunctions {

// Terminal
getTerminals(): TerminalInfo[]
getTerminalDetail(token: string, id: string): TerminalInfo | undefined
runTerminalAction(id: string, action: TerminalAction): Promise<boolean>
getTerminalDetail(token: string, id: string): Promise<TerminalInfo | undefined>
runTerminalAction(token: string, id: string, action: TerminalAction): Promise<boolean>

// Storage
getStorageMounts(): Promise<StorageMounts>
Expand Down
4 changes: 2 additions & 2 deletions packages/devtools/client/components/TerminalPage.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ const terminals = useTerminals()
const terminalId = useCurrentTerminalId()
const selected = computed(() => terminals.value?.find(t => t.id === terminalId.value))
function remove(id: string) {
rpc.runTerminalAction(id, 'remove')
async function remove(id: string) {
rpc.runTerminalAction(await ensureDevAuthToken(), id, 'remove')
}
watchEffect(() => {
Expand Down
16 changes: 12 additions & 4 deletions packages/devtools/client/components/TerminalView.vue
Original file line number Diff line number Diff line change
Expand Up @@ -39,18 +39,26 @@ onMounted(async () => {
})
})
function clear() {
rpc.runTerminalAction(props.id, 'clear')
async function clear() {
rpc.runTerminalAction(await ensureDevAuthToken(), props.id, 'clear')
term?.clear()
}
async function restart() {
rpc.runTerminalAction(await ensureDevAuthToken(), props.id, 'restart')
}
async function terminate() {
rpc.runTerminalAction(await ensureDevAuthToken(), props.id, 'terminate')
}
</script>

<template>
<div ref="container" h-full w-full of-auto bg-black />
<div border="t base" flex="~ gap-2" items-center p2>
<NButton title="Clear" icon="i-carbon-clean" :border="false" @click="clear()" />
<NButton v-if="info?.restartable" title="Restart" icon="carbon-renew" :border="false" @click="rpc.runTerminalAction(id, 'restart')" />
<NButton v-if="info?.terminatable" title="Terminate" icon="carbon-delete" :border="false" @click="rpc.runTerminalAction(id, 'terminate')" />
<NButton v-if="info?.restartable" title="Restart" icon="carbon-renew" :border="false" @click="restart()" />
<NButton v-if="info?.terminatable" title="Terminate" icon="carbon-delete" :border="false" @click="terminate()" />
<span text-sm op50>{{ info?.description }}</span>
</div>
</template>
8 changes: 5 additions & 3 deletions packages/devtools/src/server-rpc/terminals.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { NuxtDevtoolsServerContext, ServerFunctions, TerminalAction, TerminalInfo, TerminalState } from '../types'

export function setupTerminalRPC({ nuxt, rpc, refresh }: NuxtDevtoolsServerContext) {
export function setupTerminalRPC({ nuxt, rpc, refresh, ensureDevAuthToken }: NuxtDevtoolsServerContext) {
const terminals = new Map<string, TerminalState>()

nuxt.hook('devtools:terminal:register', (terminal) => {
Expand Down Expand Up @@ -63,10 +63,12 @@ export function setupTerminalRPC({ nuxt, rpc, refresh }: NuxtDevtoolsServerConte
return Array.from(terminals.values())
.map(i => serializeTerminal(i))
},
getTerminalDetail(id: string) {
async getTerminalDetail(token: string, id: string) {
await ensureDevAuthToken(token)
return serializeTerminal(terminals.get(id), true)
},
async runTerminalAction(id: string, action: TerminalAction) {
async runTerminalAction(token: string, id: string, action: TerminalAction) {
await ensureDevAuthToken(token)
const terminal = terminals.get(id)
if (!terminal)
return false
Expand Down

0 comments on commit df5dd76

Please sign in to comment.