File tree Expand file tree Collapse file tree
packages/devtools-vite/src Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -23,18 +23,32 @@ const { state } = useAsyncState(
2323 async () => {
2424 if (! props .lazy )
2525 return
26+
2627 const res = await rpc .value ! [' vite:rolldown:get-asset-details' ]?.({
2728 session: props .session .id ,
2829 id: props .asset .filename ,
2930 })
30- return {
31- chunks: [{ ... res ?.chunk , type: ' chunk' }],
32- importers: res ?.importers ,
33- imports: res ?.imports ,
34- } satisfies {
35- chunks: RolldownChunkInfo []
36- importers: AssetInfo []
37- imports: AssetInfo []
31+ if (' chunk' in res ) {
32+ return {
33+ chunks: [{ ... res ?.chunk , type: ' chunk' }],
34+ importers: res ?.importers ,
35+ imports: res ?.imports ,
36+ } as {
37+ chunks: RolldownChunkInfo []
38+ importers: AssetInfo []
39+ imports: AssetInfo []
40+ }
41+ }
42+ else {
43+ return {
44+ chunks: [],
45+ importers: [],
46+ imports: [],
47+ } as {
48+ chunks: RolldownChunkInfo []
49+ importers: AssetInfo []
50+ imports: AssetInfo []
51+ }
3852 }
3953 },
4054 null ,
@@ -94,7 +108,7 @@ function openInEditor() {
94108 </div >
95109 </template >
96110
97- <div flex =" ~ col gap-4" >
111+ <div v-if = " assetChunks && assetChunks.length > 0 " flex =" ~ col gap-4" >
98112 <div flex =" ~ col gap-2" >
99113 <div op50 >
100114 Chunks
@@ -119,5 +133,14 @@ function openInEditor() {
119133 </div >
120134 </template >
121135 </div >
136+ <div v-else flex =" ~ col gap-1" >
137+ <!-- For other situation -->
138+ <div op50 >
139+ [Non-Module Asset]
140+ </div >
141+ <div v-if =" asset.filename.endsWith('.map')" flex =" ~ items-center gap-2" >
142+ <span op50 >Source Map for</span > <DisplayBadge :text =" JSON.parse(asset.content!).file" />
143+ </div >
144+ </div >
122145 </div >
123146</template >
Original file line number Diff line number Diff line change @@ -20,16 +20,31 @@ const { state } = useAsyncState(
2020 session: props .session .id ,
2121 id: props .asset ,
2222 })
23- return {
24- asset: { ... res ?.asset , type: ' asset' },
25- chunks: [{ ... res ?.chunk , type: ' chunk' }],
26- importers: res ?.importers ,
27- imports: res ?.imports ,
28- } satisfies {
29- asset: RolldownAssetInfo
30- chunks: RolldownChunkInfo []
31- importers: AssetInfo []
32- imports: AssetInfo []
23+ if (' chunk' in res ) {
24+ return {
25+ asset: { ... res ?.asset , type: ' asset' },
26+ chunks: [{ ... res ?.chunk , type: ' chunk' }],
27+ importers: res ?.importers ,
28+ imports: res ?.imports ,
29+ } as {
30+ asset: RolldownAssetInfo
31+ chunks: RolldownChunkInfo []
32+ importers: AssetInfo []
33+ imports: AssetInfo []
34+ }
35+ }
36+ else {
37+ return {
38+ asset: { ... res ?.asset , type: ' asset' },
39+ chunks: [],
40+ importers: [],
41+ imports: [],
42+ } satisfies {
43+ asset: RolldownAssetInfo
44+ chunks: RolldownChunkInfo []
45+ importers: AssetInfo []
46+ imports: AssetInfo []
47+ }
3348 }
3449 },
3550 null ,
Original file line number Diff line number Diff line change @@ -9,11 +9,19 @@ export const rolldownGetAssetDetails = defineRpcFunction({
99 return {
1010 handler : async ( { session, id } : { session : string , id : string } ) => {
1111 const reader = await manager . loadSession ( session )
12- const assets = await reader . manager . assets
13- const chunks = await reader . manager . chunks
12+ const assets = reader . manager . assets
13+ const chunks = reader . manager . chunks
1414 const asset = assets . get ( id ) !
1515 const assetList = Array . from ( assets . values ( ) )
1616 const chunkList = Array . from ( chunks . values ( ) )
17+
18+ if ( asset . chunk_id === null ) {
19+ // sourceMap or other
20+ return {
21+ asset,
22+ }
23+ }
24+
1725 const assetChunkId = asset . chunk_id !
1826 const chunk = chunks . get ( assetChunkId ) !
1927 const importers = chunkList . filter ( mod => mod . imports . some ( i => i . chunk_id === assetChunkId ) ) . map ( c => assetList . find ( a => a . chunk_id === c . chunk_id ) ! )
You can’t perform that action at this time.
0 commit comments