diff --git a/packages/devtools-vite/src/app/components/chart/ModuleFlamegraph.vue b/packages/devtools-vite/src/app/components/chart/ModuleFlamegraph.vue
index bed78059..35c27051 100644
--- a/packages/devtools-vite/src/app/components/chart/ModuleFlamegraph.vue
+++ b/packages/devtools-vite/src/app/components/chart/ModuleFlamegraph.vue
@@ -31,17 +31,17 @@ const tree = computed(() => {
const children = [
n({
id: '~resolves',
- text: 'resolve',
+ text: 'Resolve Id',
children: resolveIds,
}),
n({
id: '~loads',
- text: 'load',
+ text: 'Load',
children: loads,
}),
n({
id: '~transforms',
- text: 'transform',
+ text: 'Transform',
children: transforms,
}),
]
diff --git a/packages/devtools-vite/src/app/components/chart/PluginFlamegraph.vue b/packages/devtools-vite/src/app/components/chart/PluginFlamegraph.vue
new file mode 100644
index 00000000..acbfaf71
--- /dev/null
+++ b/packages/devtools-vite/src/app/components/chart/PluginFlamegraph.vue
@@ -0,0 +1,196 @@
+
+
+
+
+
+
+
+
+ {{ hoverNode.plugin_name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/devtools-vite/src/app/components/data/PluginDetailsLoader.vue b/packages/devtools-vite/src/app/components/data/PluginDetailsLoader.vue
index 3c4c6f52..ab146ddb 100644
--- a/packages/devtools-vite/src/app/components/data/PluginDetailsLoader.vue
+++ b/packages/devtools-vite/src/app/components/data/PluginDetailsLoader.vue
@@ -153,6 +153,11 @@ const totalDuration = computed(() => {
:session="session"
:build-metrics="state"
/>
+
diff --git a/packages/devtools-vite/src/app/components/data/PluginDetailsTable.vue b/packages/devtools-vite/src/app/components/data/PluginDetailsTable.vue
index f012e73a..d961859d 100644
--- a/packages/devtools-vite/src/app/components/data/PluginDetailsTable.vue
+++ b/packages/devtools-vite/src/app/components/data/PluginDetailsTable.vue
@@ -6,6 +6,7 @@ import { Menu as VMenu } from 'floating-vue'
import { computed, ref } from 'vue'
import { settings } from '~~/app/state/settings'
import { parseReadablePath } from '~/utils/filepath'
+import { normalizeTimestamp } from '~/utils/format'
import { getFileTypeFromModuleId, ModuleTypeRules } from '~/utils/icon'
const props = defineProps<{
@@ -63,19 +64,6 @@ function toggleModuleType(rule: FilterMatchRule) {
settings.value.pluginDetailsModuleTypes = filterModuleTypes.value
}
-function normalizeTimestamp(timestamp: number) {
- return new Date(timestamp).toLocaleString(undefined, {
- hour12: false,
- year: 'numeric',
- month: '2-digit',
- day: '2-digit',
- hour: '2-digit',
- minute: '2-digit',
- second: '2-digit',
- fractionalSecondDigits: 3,
- })
-}
-
function toggleDurationSortType() {
next()
settings.value.pluginDetailsDurationSortType = durationSortType.value
diff --git a/packages/devtools-vite/src/app/pages/session/[session]/plugins.vue b/packages/devtools-vite/src/app/pages/session/[session]/plugins.vue
index b135eea9..fab53069 100644
--- a/packages/devtools-vite/src/app/pages/session/[session]/plugins.vue
+++ b/packages/devtools-vite/src/app/pages/session/[session]/plugins.vue
@@ -90,10 +90,3 @@ debouncedWatch(
-
-
diff --git a/packages/devtools-vite/src/app/utils/format.ts b/packages/devtools-vite/src/app/utils/format.ts
index d43162c2..1e528fea 100644
--- a/packages/devtools-vite/src/app/utils/format.ts
+++ b/packages/devtools-vite/src/app/utils/format.ts
@@ -57,3 +57,16 @@ export function toTree(modules: ModuleDest[], name: string) {
return node
}
+
+export function normalizeTimestamp(timestamp: number) {
+ return new Date(timestamp).toLocaleString(undefined, {
+ hour12: false,
+ year: 'numeric',
+ month: '2-digit',
+ day: '2-digit',
+ hour: '2-digit',
+ minute: '2-digit',
+ second: '2-digit',
+ fractionalSecondDigits: 3,
+ })
+}