@@ -363,6 +363,109 @@ describe("inferEntries", () => {
363
363
} satisfies InferEntriesResult ) ;
364
364
} ) ;
365
365
366
+ it ( "should handle types only within exports`" , ( ) => {
367
+ expect . assertions ( 3 ) ;
368
+
369
+ createFiles ( [ "src/test.d.ts" ] , temporaryDirectoryPath ) ;
370
+
371
+ const result = inferEntries (
372
+ {
373
+ exports : {
374
+ import : {
375
+ types : "dist/test.d.mts" ,
376
+ } ,
377
+ require : {
378
+ types : "dist/test.d.cts" ,
379
+ } ,
380
+ } ,
381
+ } ,
382
+ [ "src/" , "src/test.d.ts" ] . map ( ( file ) => join ( temporaryDirectoryPath , file ) ) ,
383
+ {
384
+ environment : defaultContext . environment ,
385
+ options : { ...defaultContext . options , declaration : true } ,
386
+ pkg : defaultContext . pkg ,
387
+ } as unknown as BuildContext ,
388
+ ) ;
389
+ expect ( result ) . toStrictEqual ( {
390
+ entries : [
391
+ {
392
+ cjs : true ,
393
+ declaration : true ,
394
+ environment : "development" ,
395
+ esm : true ,
396
+ exportKey : new Set < string > ( [ "import" , "require" ] ) ,
397
+ input : join ( temporaryDirectoryPath , "src/test.d.ts" ) ,
398
+ runtime : "node" ,
399
+ } ,
400
+ ] ,
401
+ warnings : [ ] ,
402
+ } satisfies InferEntriesResult ) ;
403
+
404
+ const result2 = inferEntries (
405
+ {
406
+ exports : {
407
+ "./test" : {
408
+ import : {
409
+ types : "dist/test.d.mts" ,
410
+ } ,
411
+ require : {
412
+ types : "dist/test.d.cts" ,
413
+ } ,
414
+ } ,
415
+ } ,
416
+ } ,
417
+ [ "src/" , "src/test.d.ts" ] . map ( ( file ) => join ( temporaryDirectoryPath , file ) ) ,
418
+ {
419
+ environment : defaultContext . environment ,
420
+ options : { ...defaultContext . options , declaration : true } ,
421
+ pkg : defaultContext . pkg ,
422
+ } as unknown as BuildContext ,
423
+ ) ;
424
+ expect ( result2 ) . toStrictEqual ( {
425
+ entries : [
426
+ {
427
+ cjs : true ,
428
+ declaration : true ,
429
+ environment : "development" ,
430
+ esm : true ,
431
+ exportKey : new Set < string > ( [ "test" ] ) ,
432
+ input : join ( temporaryDirectoryPath , "src/test.d.ts" ) ,
433
+ runtime : "node" ,
434
+ } ,
435
+ ] ,
436
+ warnings : [ ] ,
437
+ } satisfies InferEntriesResult ) ;
438
+
439
+ const result3 = inferEntries (
440
+ {
441
+ exports : {
442
+ "./test" : {
443
+ types : "dist/test.d.ts" ,
444
+ } ,
445
+ } ,
446
+ } ,
447
+ [ "src/" , "src/test.d.ts" ] . map ( ( file ) => join ( temporaryDirectoryPath , file ) ) ,
448
+ {
449
+ environment : defaultContext . environment ,
450
+ options : { ...defaultContext . options , declaration : true } ,
451
+ pkg : defaultContext . pkg ,
452
+ } as unknown as BuildContext ,
453
+ ) ;
454
+ expect ( result3 ) . toStrictEqual ( {
455
+ entries : [
456
+ {
457
+ cjs : true ,
458
+ declaration : true ,
459
+ environment : "development" ,
460
+ exportKey : new Set < string > ( [ "test" ] ) ,
461
+ input : join ( temporaryDirectoryPath , "src/test.d.ts" ) ,
462
+ runtime : "node" ,
463
+ } ,
464
+ ] ,
465
+ warnings : [ ] ,
466
+ } satisfies InferEntriesResult ) ;
467
+ } ) ;
468
+
366
469
it ( "should gracefully handles unknown entries" , ( ) => {
367
470
expect . assertions ( 1 ) ;
368
471
0 commit comments