diff --git a/packages/devtools/src/app/components/data/AssetDetails.vue b/packages/devtools/src/app/components/data/AssetDetails.vue index 5088fff3..af8cd144 100644 --- a/packages/devtools/src/app/components/data/AssetDetails.vue +++ b/packages/devtools/src/app/components/data/AssetDetails.vue @@ -10,6 +10,7 @@ const props = defineProps<{ session: SessionContext asset: RolldownAssetInfo importers: AssetInfo[] + imports: AssetInfo[] }>() const rpc = useRpc() @@ -42,6 +43,7 @@ function openInEditor() { + @@ -65,27 +67,31 @@ function openInEditor() { /> - - Chunks - - - - - - - Importers - + + - + + Chunks + + + + - + + + + Asset Relationships + + + + + diff --git a/packages/devtools/src/app/components/data/AssetDetailsLoader.vue b/packages/devtools/src/app/components/data/AssetDetailsLoader.vue index a0485eec..75724e7c 100644 --- a/packages/devtools/src/app/components/data/AssetDetailsLoader.vue +++ b/packages/devtools/src/app/components/data/AssetDetailsLoader.vue @@ -24,10 +24,12 @@ const { state } = useAsyncState( asset: { ...res?.asset, type: 'asset' }, chunks: [{ ...res?.chunk, type: 'chunk' }], importers: res?.importers, + imports: res?.imports, } satisfies { asset: RolldownAssetInfo chunks: RolldownChunkInfo[] importers: AssetInfo[] + imports: AssetInfo[] } }, null, @@ -40,6 +42,6 @@ const { state } = useAsyncState( absolute right-2 top-1.5 @click="emit('close')" /> - + diff --git a/packages/devtools/src/app/components/data/AssetRelationships.vue b/packages/devtools/src/app/components/data/AssetRelationships.vue new file mode 100644 index 00000000..4e37416b --- /dev/null +++ b/packages/devtools/src/app/components/data/AssetRelationships.vue @@ -0,0 +1,265 @@ + + + + + + + + + + + + + {{ importer.filename }} + + + + + + + + + + + + + + + {{ _import.filename }} + + + + + + + + + + + + + + diff --git a/packages/devtools/src/node/rpc/functions/rolldown-get-asset-details.ts b/packages/devtools/src/node/rpc/functions/rolldown-get-asset-details.ts index 800767b6..f7e68265 100644 --- a/packages/devtools/src/node/rpc/functions/rolldown-get-asset-details.ts +++ b/packages/devtools/src/node/rpc/functions/rolldown-get-asset-details.ts @@ -11,13 +11,16 @@ export const rolldownGetAssetDetails = defineRpcFunction({ const chunks = await reader.manager.chunks const asset = assets.get(id)! const assetList = Array.from(assets.values()) + const chunkList = Array.from(chunks.values()) const assetChunkId = asset.chunk_id! const chunk = chunks.get(assetChunkId)! - const importers = Array.from(chunks.values()).filter(mod => mod.imports.some(i => i.chunk_id === assetChunkId)).map(c => assetList.find(a => a.chunk_id === c.chunk_id)!) + const importers = chunkList.filter(mod => mod.imports.some(i => i.chunk_id === assetChunkId)).map(c => assetList.find(a => a.chunk_id === c.chunk_id)!) + const imports = chunk.imports.map(c => assetList.find(a => a.chunk_id === c.chunk_id)!) return { asset, chunk, importers, + imports, } }, }