@@ -8,50 +8,53 @@ import fromInside from '../fixtures/node_modules/pkgexports/lib/hole.js';
88[ requireFixture , importFixture ] . forEach ( ( loadFixture ) => {
99 const isRequire = loadFixture === requireFixture ;
1010
11+ const maybeWrapped = isRequire ? ( exports ) => exports :
12+ ( exports ) => ( { ...exports , 'module.exports' : exports . default } ) ;
13+
1114 const validSpecifiers = new Map ( [
1215 // A simple mapping of a path.
13- [ 'pkgexports/valid-cjs' , { default : 'asdf' } ] ,
16+ [ 'pkgexports/valid-cjs' , maybeWrapped ( { default : 'asdf' } ) ] ,
1417 // A mapping pointing to a file that needs special encoding (%20) in URLs.
15- [ 'pkgexports/space' , { default : 'encoded path' } ] ,
18+ [ 'pkgexports/space' , maybeWrapped ( { default : 'encoded path' } ) ] ,
1619 // Verifying that normal packages still work with exports turned on.
1720 isRequire ? [ 'baz/index' , { default : 'eye catcher' } ] : [ null ] ,
1821 // Fallbacks
19- [ 'pkgexports/fallbackdir/asdf.js' , { default : 'asdf' } ] ,
20- [ 'pkgexports/fallbackfile' , { default : 'asdf' } ] ,
22+ [ 'pkgexports/fallbackdir/asdf.js' , maybeWrapped ( { default : 'asdf' } ) ] ,
23+ [ 'pkgexports/fallbackfile' , maybeWrapped ( { default : 'asdf' } ) ] ,
2124 // Conditional split for require
2225 [ 'pkgexports/condition' , isRequire ? { default : 'encoded path' } :
23- { default : 'asdf' } ] ,
26+ maybeWrapped ( { default : 'asdf' } ) ] ,
2427 // String exports sugar
25- [ 'pkgexports-sugar' , { default : 'main' } ] ,
28+ [ 'pkgexports-sugar' , maybeWrapped ( { default : 'main' } ) ] ,
2629 // Conditional object exports sugar
2730 [ 'pkgexports-sugar2' , isRequire ? { default : 'not-exported' } :
28- { default : 'main' } ] ,
31+ maybeWrapped ( { default : 'main' } ) ] ,
2932 // Resolve self
3033 [ 'pkgexports/resolve-self' , isRequire ?
3134 { default : 'self-cjs' } : { default : 'self-mjs' } ] ,
3235 // Resolve self sugar
33- [ 'pkgexports-sugar' , { default : 'main' } ] ,
36+ [ 'pkgexports-sugar' , maybeWrapped ( { default : 'main' } ) ] ,
3437 // Path patterns
35- [ 'pkgexports/subpath/sub-dir1' , { default : 'main' } ] ,
36- [ 'pkgexports/subpath/sub-dir1.js' , { default : 'main' } ] ,
37- [ 'pkgexports/features/dir1' , { default : 'main' } ] ,
38- [ 'pkgexports/dir1/dir1/trailer' , { default : 'main' } ] ,
39- [ 'pkgexports/dir2/dir2/trailer' , { default : 'index' } ] ,
40- [ 'pkgexports/a/dir1/dir1' , { default : 'main' } ] ,
41- [ 'pkgexports/a/b/dir1/dir1' , { default : 'main' } ] ,
38+ [ 'pkgexports/subpath/sub-dir1' , maybeWrapped ( { default : 'main' } ) ] ,
39+ [ 'pkgexports/subpath/sub-dir1.js' , maybeWrapped ( { default : 'main' } ) ] ,
40+ [ 'pkgexports/features/dir1' , maybeWrapped ( { default : 'main' } ) ] ,
41+ [ 'pkgexports/dir1/dir1/trailer' , maybeWrapped ( { default : 'main' } ) ] ,
42+ [ 'pkgexports/dir2/dir2/trailer' , maybeWrapped ( { default : 'index' } ) ] ,
43+ [ 'pkgexports/a/dir1/dir1' , maybeWrapped ( { default : 'main' } ) ] ,
44+ [ 'pkgexports/a/b/dir1/dir1' , maybeWrapped ( { default : 'main' } ) ] ,
4245
4346 // Deprecated:
4447 // Double slashes:
45- [ 'pkgexports/a//dir1/dir1' , { default : 'main' } ] ,
48+ [ 'pkgexports/a//dir1/dir1' , maybeWrapped ( { default : 'main' } ) ] ,
4649 // double slash target
47- [ 'pkgexports/doubleslash' , { default : 'asdf' } ] ,
50+ [ 'pkgexports/doubleslash' , maybeWrapped ( { default : 'asdf' } ) ] ,
4851 // Null target with several slashes
49- [ 'pkgexports/sub//internal/test.js' , { default : 'internal only' } ] ,
50- [ 'pkgexports/sub//internal//test.js' , { default : 'internal only' } ] ,
51- [ 'pkgexports/sub/////internal/////test.js' , { default : 'internal only' } ] ,
52+ [ 'pkgexports/sub//internal/test.js' , maybeWrapped ( { default : 'internal only' } ) ] ,
53+ [ 'pkgexports/sub//internal//test.js' , maybeWrapped ( { default : 'internal only' } ) ] ,
54+ [ 'pkgexports/sub/////internal/////test.js' , maybeWrapped ( { default : 'internal only' } ) ] ,
5255 // trailing slash
5356 [ 'pkgexports/trailing-pattern-slash/' ,
54- { default : 'trailing-pattern-slash' } ] ,
57+ maybeWrapped ( { default : 'trailing-pattern-slash' } ) ] ,
5558 ] ) ;
5659
5760 if ( ! isRequire ) {
@@ -214,11 +217,15 @@ import fromInside from '../fixtures/node_modules/pkgexports/lib/hole.js';
214217
215218const { requireFromInside, importFromInside } = fromInside ;
216219[ importFromInside , requireFromInside ] . forEach ( ( loadFromInside ) => {
220+ const isRequire = loadFromInside === requireFromInside ;
221+ const maybeWrapped = isRequire ? ( exports ) => exports :
222+ ( exports ) => ( { ...exports , 'module.exports' : exports . default } ) ;
223+
217224 const validSpecifiers = new Map ( [
218225 // A file not visible from outside of the package
219- [ '../not-exported.js' , { default : 'not-exported' } ] ,
226+ [ '../not-exported.js' , maybeWrapped ( { default : 'not-exported' } ) ] ,
220227 // Part of the public interface
221- [ 'pkgexports/valid-cjs' , { default : 'asdf' } ] ,
228+ [ 'pkgexports/valid-cjs' , maybeWrapped ( { default : 'asdf' } ) ] ,
222229 ] ) ;
223230 for ( const [ validSpecifier , expected ] of validSpecifiers ) {
224231 if ( validSpecifier === null ) continue ;
0 commit comments