@@ -5,6 +5,7 @@ import type { SourceMap } from 'rollup'
5
5
import { TraceMap , originalPositionFor } from '@jridgewell/trace-mapping'
6
6
import { transformWithEsbuild } from '../../plugins/esbuild'
7
7
import { ssrTransform } from '../ssrTransform'
8
+ import { createServer } from '../..'
8
9
9
10
const ssrTransformSimple = async ( code : string , url = '' ) =>
10
11
ssrTransform ( code , null , url , code )
@@ -1385,3 +1386,76 @@ const c = () => {
1385
1386
` ,
1386
1387
)
1387
1388
} )
1389
+
1390
+ test ( 'combine mappings' , async ( ) => {
1391
+ const server = await createServer ( {
1392
+ configFile : false ,
1393
+ envFile : false ,
1394
+ logLevel : 'error' ,
1395
+ plugins : [
1396
+ {
1397
+ name : 'test-mappings' ,
1398
+ resolveId ( source ) {
1399
+ if ( source . startsWith ( 'virtual:test-mappings' ) ) {
1400
+ return '\0' + source
1401
+ }
1402
+ } ,
1403
+ load ( id ) {
1404
+ if ( id . startsWith ( '\0virtual:test-mappings' ) ) {
1405
+ const code = `export default "test";\n`
1406
+ if ( id === '\0virtual:test-mappings:empty' ) {
1407
+ return { code, map : { mappings : '' } }
1408
+ }
1409
+ if ( id === '\0virtual:test-mappings:null' ) {
1410
+ return { code, map : null }
1411
+ }
1412
+ }
1413
+ } ,
1414
+ } ,
1415
+ ] ,
1416
+ } )
1417
+
1418
+ {
1419
+ const result = await server . environments . ssr . transformRequest (
1420
+ 'virtual:test-mappings:empty' ,
1421
+ )
1422
+ expect ( result ?. map ) . toMatchInlineSnapshot ( `
1423
+ {
1424
+ "mappings": "",
1425
+ }
1426
+ ` )
1427
+ const mod = await server . ssrLoadModule ( 'virtual:test-mappings:empty' )
1428
+ expect ( mod ) . toMatchInlineSnapshot ( `
1429
+ {
1430
+ "default": "test",
1431
+ }
1432
+ ` )
1433
+ }
1434
+
1435
+ {
1436
+ const result = await server . environments . ssr . transformRequest (
1437
+ 'virtual:test-mappings:null' ,
1438
+ )
1439
+ expect ( result ?. map ) . toMatchInlineSnapshot ( `
1440
+ SourceMap {
1441
+ "file": undefined,
1442
+ "mappings": "AAAA,8BAAc,CAAC,CAAC,IAAI,CAAC;",
1443
+ "names": [],
1444
+ "sources": [
1445
+ "virtual:test-mappings:null",
1446
+ ],
1447
+ "sourcesContent": [
1448
+ "export default "test";
1449
+ ",
1450
+ ],
1451
+ "version": 3,
1452
+ }
1453
+ ` )
1454
+ const mod = await server . ssrLoadModule ( 'virtual:test-mappings:null' )
1455
+ expect ( mod ) . toMatchInlineSnapshot ( `
1456
+ {
1457
+ "default": "test",
1458
+ }
1459
+ ` )
1460
+ }
1461
+ } )
0 commit comments