Skip to content

Commit ac53eb7

Browse files
committed
feat: get root dir from server
1 parent 8503777 commit ac53eb7

10 files changed

Lines changed: 38 additions & 60 deletions

File tree

packages/devtools/src/app/components/data/RawEventsTable.vue

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<script setup lang="ts">
22
import type { RolldownEvent } from '../../../node/rolldown/events-manager'
3+
import type { SessionContext } from '../../types/data'
34
import { Dropdown as VDropdown } from 'floating-vue'
45
import { defineProps, withDefaults } from 'vue'
56
@@ -9,6 +10,7 @@ const props = withDefaults(
910
defineProps<{
1011
events: RolldownEvent[]
1112
fields?: FIELDS[]
13+
session: SessionContext
1214
}>(),
1315
{
1416
fields: () => [
@@ -57,7 +59,11 @@ function getSource(event: RolldownEvent) {
5759
<tr v-for="event of props.events" :key="event.event_id">
5860
<template v-for="field of props.fields" :key="field">
5961
<td px2>
60-
<DisplayModuleId v-if="field === 'module_id'" :id="'module_id' in event ? event.module_id : ''" />
62+
<DisplayModuleId
63+
v-if="field === 'module_id'"
64+
:id="'module_id' in event ? event.module_id : ''"
65+
:session="session"
66+
/>
6167
<DisplayBadge v-else-if="field === 'action'" :text="event.action" />
6268
<div v-else-if="field === 'plugin_name' && 'plugin_name' in event">
6369
<DisplayPluginName font-mono :name="event.plugin_name" />

packages/devtools/src/app/components/display/FilepathItem.vue

Lines changed: 0 additions & 42 deletions
This file was deleted.

packages/devtools/src/app/components/display/ModuleId.vue

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,22 @@ import { computed } from 'vue'
77
88
const props = withDefaults(
99
defineProps<{
10-
id?: string
10+
id: string
1111
badges?: boolean
1212
icon?: boolean
1313
link?: boolean
14-
session?: SessionContext
14+
session: SessionContext
1515
}>(),
1616
{
1717
icon: true,
1818
},
1919
)
2020
21-
// const mod = computed(() => payload.modules.find(i => i.id === props.id))
22-
const root = '/Users/antfu/i/vite-devtools/' // TODO: get from cwd
23-
// const isVirtual = computed(() => mod.value?.virtual)
2421
const relativePath = computed(() => {
2522
if (!props.id)
2623
return ''
2724
const id = props.id.replace(/%2F/g, '/')
28-
let relate = relative(root, id)
25+
let relate = relative(props.session!.rootDir, id)
2926
if (!relate.startsWith('.'))
3027
relate = `./${relate}`
3128
if (relate.startsWith('./'))

packages/devtools/src/app/components/flowmap/ModuleFlow.vue

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,10 @@ const codeDisplay = computed(() => {
139139
>
140140
<template #content>
141141
<div p2>
142-
<DisplayModuleId :id="info.id" />
142+
<DisplayModuleId
143+
:id="info.id"
144+
:session="session"
145+
/>
143146
</div>
144147
</template>
145148
</FlowmapNode>

packages/devtools/src/app/components/flowmap/NodeModuleInfo.vue

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,10 @@ const importterModule = computed(() => {
122122
px2 py1 rounded
123123
/>
124124
</div>
125-
<DisplayModuleId :id="item.module_request" />
125+
<DisplayModuleId
126+
:id="item.module_request"
127+
:session="session"
128+
/>
126129
</div>
127130
</template>
128131
</FlowmapNode>

packages/devtools/src/app/pages/session/[session].vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,16 @@ const params = useRoute().params as {
1111
1212
const session = reactive({
1313
id: computed(() => params.session),
14+
rootDir: '',
1415
modulesList: shallowRef<ModuleListItem[]>([]),
1516
}) as SessionContext
1617
1718
onMounted(async () => {
18-
const modules = await backend.value!.functions['vite:rolldown:get-module-list']!({
19+
const summary = await backend.value!.functions['vite:rolldown:get-session-summary']!({
1920
session: params.session,
2021
})
21-
session.modulesList = modules.map(mod => ({
22+
session.rootDir = summary.rootDir
23+
session.modulesList = summary.modules.map(mod => ({
2224
id: mod.id,
2325
fileType: getFileTypeFromName(mod.id).name,
2426
}))

packages/devtools/src/app/pages/session/[session]/raw.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ const events = useAsyncState(
2424

2525
<template>
2626
<div>
27-
<DataRawEventsTable v-if="events.state.value" :events="events.state.value.events" />
27+
<DataRawEventsTable
28+
v-if="events.state.value"
29+
:events="events.state.value.events"
30+
:session="session"
31+
/>
2832
</div>
2933
</template>

packages/devtools/src/app/types/data.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,6 @@ export interface ModuleListItem {
55

66
export interface SessionContext {
77
id: string
8+
rootDir: string
89
modulesList: ModuleListItem[]
910
}

packages/devtools/src/node/rpc/functions/rolldown-get-module-list.ts renamed to packages/devtools/src/node/rpc/functions/rolldown-get-session-summary.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,20 @@ import { join } from 'pathe'
22
import { RolldownEventsReader } from '../../rolldown/events-reader'
33
import { defineRpcFunction } from '../utils'
44

5-
export const rolldownGetModuleList = defineRpcFunction({
6-
name: 'vite:rolldown:get-module-list',
5+
export const rolldownGetSessionSummary = defineRpcFunction({
6+
name: 'vite:rolldown:get-session-summary',
77
type: 'query',
88
setup: async ({ cwd }) => {
99
return {
1010
handler: async ({ session }: { session: string }) => {
1111
const reader = RolldownEventsReader.get(join(cwd, '.rolldown', session, 'logs.json'))
1212
await reader.read()
13-
return Array.from(reader.manager.modules.values())
14-
.sort((a, b) => a.id.localeCompare(b.id))
13+
return {
14+
id: session,
15+
rootDir: cwd,
16+
modules: Array.from(reader.manager.modules.values())
17+
.sort((a, b) => a.id.localeCompare(b.id)),
18+
}
1519
},
1620
}
1721
},

packages/devtools/src/node/rpc/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import { getPayload } from './functions/get-payload'
33
import { openInEditor } from './functions/open-in-editor'
44
import { openInFinder } from './functions/open-in-finder'
55
import { rolldownGetModuleInfo } from './functions/rolldown-get-module-info'
6-
import { rolldownGetModuleList } from './functions/rolldown-get-module-list'
76
import { rolldownGetModuleRawEvents } from './functions/rolldown-get-module-raw-events'
87
import { rolldownGetRawEvents } from './functions/rolldown-get-raw-events'
8+
import { rolldownGetSessionSummary } from './functions/rolldown-get-session-summary'
99
import { rolldownListSessions } from './functions/rolldown-list-sessions'
1010

1111
export const rpcFunctions = [
@@ -14,7 +14,7 @@ export const rpcFunctions = [
1414
getPayload,
1515
rolldownListSessions,
1616
rolldownGetRawEvents,
17-
rolldownGetModuleList,
17+
rolldownGetSessionSummary,
1818
rolldownGetModuleInfo,
1919
rolldownGetModuleRawEvents,
2020
] as const

0 commit comments

Comments
 (0)