11import { describe , expect , it } from "vitest" ;
2- import { sourcemapMinify } from "../../src/build/plugins/sourcemap-min .ts" ;
2+ import { sourcemap } from "../../src/build/plugins/sourcemap.ts" ;
33
44type BundleAsset = { type : "asset" ; source : string } ;
55
@@ -20,8 +20,14 @@ function createSourcemapAsset(sourcemap: {
2020 } ;
2121}
2222
23- function runPlugin ( bundle : Record < string , BundleAsset > ) {
24- const plugin = sourcemapMinify ( ) ;
23+ function runPlugin (
24+ bundle : Record < string , BundleAsset > ,
25+ opts : { virtualIds ?: string [ ] ; minify ?: boolean } = { }
26+ ) {
27+ const plugin = sourcemap ( {
28+ virtualIds : opts . virtualIds || [ ] ,
29+ minify : opts . minify ?? true ,
30+ } ) ;
2531 ( plugin . generateBundle as Function ) . call ( null , { } , bundle ) ;
2632 const results : Record < string , ReturnType < typeof JSON . parse > > = { } ;
2733 for ( const [ key , asset ] of Object . entries ( bundle ) ) {
@@ -32,7 +38,7 @@ function runPlugin(bundle: Record<string, BundleAsset>) {
3238 return results ;
3339}
3440
35- describe ( "sourcemapMinify " , ( ) => {
41+ describe ( "sourcemap " , ( ) => {
3642 it ( "removes sourcesContent from all sourcemaps" , ( ) => {
3743 const bundle = {
3844 "index.mjs.map" : createSourcemapAsset ( {
@@ -109,4 +115,41 @@ describe("sourcemapMinify", () => {
109115 const results = runPlugin ( bundle ) ;
110116 expect ( results [ "chunk.mjs.map" ] . mappings ) . toBe ( "" ) ;
111117 } ) ;
118+
119+ it ( "namespaces virtual module sources" , ( ) => {
120+ const bundle = {
121+ "_chunks/app.mjs.map" : createSourcemapAsset ( {
122+ sources : [
123+ "../../../../workspace/app/#nitro/virtual/app" ,
124+ "../../../../workspace/app/#virtual-route" ,
125+ "../../../../workspace/app/virtual:nitro:raw:/workspace/app/server/files/test.txt.js" ,
126+ "../../src/routes/index.ts" ,
127+ ] ,
128+ } ) ,
129+ } ;
130+ const results = runPlugin ( bundle , {
131+ virtualIds : [ "#nitro/virtual/app" , "#virtual-route" ] ,
132+ } ) ;
133+ expect ( results [ "_chunks/app.mjs.map" ] . sources ) . toEqual ( [
134+ "virtual:#nitro/virtual/app" ,
135+ "virtual:#virtual-route" ,
136+ "virtual:nitro:raw:/workspace/app/server/files/test.txt.js" ,
137+ "../../src/routes/index.ts" ,
138+ ] ) ;
139+ } ) ;
140+
141+ it ( "keeps sourcesContent when minify is disabled" , ( ) => {
142+ const bundle = {
143+ "index.mjs.map" : createSourcemapAsset ( {
144+ sources : [ "../../workspace/app/#nitro/virtual/app" ] ,
145+ sourcesContent : [ "export default 42;" ] ,
146+ } ) ,
147+ } ;
148+ const results = runPlugin ( bundle , {
149+ virtualIds : [ "#nitro/virtual/app" ] ,
150+ minify : false ,
151+ } ) ;
152+ expect ( results [ "index.mjs.map" ] . sourcesContent ) . toEqual ( [ "export default 42;" ] ) ;
153+ expect ( results [ "index.mjs.map" ] . sources ) . toEqual ( [ "virtual:#nitro/virtual/app" ] ) ;
154+ } ) ;
112155} ) ;
0 commit comments