@@ -27,8 +27,25 @@ function getTsPkgs(subRoot) {
2727 return fs
2828 . readdirSync ( new URL ( subRoot , root ) )
2929 . filter ( name => name . startsWith ( "babel-" ) )
30- . map ( name => {
31- const relative = `./${ subRoot } /${ name } ` ;
30+ . map ( name => ( {
31+ name : name . replace ( / ^ b a b e l - / , "@babel/" ) ,
32+ relative : `./${ subRoot } /${ name } ` ,
33+ } ) )
34+ . filter ( ( { name, relative } ) => {
35+ const ret =
36+ // They are special-cased because them dose not have a index.ts
37+ name === "@babel/register" ||
38+ name === "@babel/cli" ||
39+ name === "@babel/node" ||
40+ // @babel /compat-data is used by preset-env
41+ name === "@babel/compat-data" ||
42+ fs . existsSync ( new URL ( relative + "/src/index.ts" , root ) ) ;
43+ if ( ! ret ) {
44+ console . log ( `Skipping ${ name } for tsconfig.json` ) ;
45+ }
46+ return ret ;
47+ } )
48+ . map ( ( { name, relative } ) => {
3249 const packageJSON = importJSON ( new URL ( relative + "/package.json" , root ) ) ;
3350 // Babel 8 exports > Babel 7 exports > {}
3451 const exports =
@@ -38,10 +55,10 @@ function getTsPkgs(subRoot) {
3855 const subExports = Object . entries ( exports ) . flatMap (
3956 ( [ _export , exportPath ] ) => {
4057 // The @babel /standalone has babel.js as exports, but we don't have src/babel.ts
41- if ( name === "babel- standalone" ) {
58+ if ( name === "@ babel/ standalone" ) {
4259 return [ [ "" , "/src" ] ] ;
4360 }
44- if ( name === "babel- compat-data" ) {
61+ if ( name === "@ babel/ compat-data" ) {
4562 // map ./plugins to ./data/plugins.json
4663 const subExport = _export . slice ( 1 ) ;
4764 const subExportPath = exportPath
@@ -68,25 +85,7 @@ function getTsPkgs(subRoot) {
6885 return [ ] ;
6986 }
7087 ) ;
71- return {
72- name : name . replace ( / ^ b a b e l - / , "@babel/" ) ,
73- relative,
74- subExports,
75- } ;
76- } )
77- . filter ( ( { name, relative } ) => {
78- const ret =
79- // They are special-cased because them dose not have a index.ts
80- name === "@babel/register" ||
81- name === "@babel/cli" ||
82- name === "@babel/node" ||
83- // @babel /compat-data is used by preset-env
84- name === "@babel/compat-data" ||
85- fs . existsSync ( new URL ( relative + "/src/index.ts" , root ) ) ;
86- if ( ! ret ) {
87- console . log ( `Skipping ${ name } for tsconfig.json` ) ;
88- }
89- return ret ;
88+ return { name, relative, subExports } ;
9089 } ) ;
9190}
9291
0 commit comments