@@ -10,7 +10,7 @@ export const packages = [
1010 readme : "./readmes/web.md" ,
1111 files : [
1212 { from : "../generated/dom.generated.d.ts" , to : "index.d.ts" } ,
13- { from : "../generated/dom.iterable.generated.d.ts" , to : "index.iterable.d.ts" } ,
13+ { from : "../generated/dom.iterable.generated.d.ts" , to : "index.iterable.d.ts" , autoImport : true } ,
1414 ] ,
1515 } ,
1616 {
@@ -19,7 +19,7 @@ export const packages = [
1919 readme : "./readmes/serviceworker.md" ,
2020 files : [
2121 { from : "../generated/serviceworker.generated.d.ts" , to : "index.d.ts" } ,
22- { from : "../generated/serviceworker.iterable.generated.d.ts" , to : "index.iterable.d.ts" } ,
22+ { from : "../generated/serviceworker.iterable.generated.d.ts" , to : "index.iterable.d.ts" , autoImport : true } ,
2323 ] ,
2424 } ,
2525 {
@@ -28,7 +28,7 @@ export const packages = [
2828 readme : "./readmes/audioworklet.md" ,
2929 files : [
3030 { from : "../generated/audioworklet.generated.d.ts" , to : "index.d.ts" } ,
31- { from : "../generated/audioworklet.iterable.generated.d.ts" , to : "index.iterable.d.ts" } ,
31+ { from : "../generated/audioworklet.iterable.generated.d.ts" , to : "index.iterable.d.ts" , autoImport : true } ,
3232 ] ,
3333 } ,
3434 {
@@ -37,7 +37,7 @@ export const packages = [
3737 readme : "./readmes/sharedworker.md" ,
3838 files : [
3939 { from : "../generated/sharedworker.generated.d.ts" , to : "index.d.ts" } ,
40- { from : "../generated/sharedworker.iterable.generated.d.ts" , to : "index.iterable.d.ts" } ,
40+ { from : "../generated/sharedworker.iterable.generated.d.ts" , to : "index.iterable.d.ts" , autoImport : true } ,
4141 ] ,
4242 } ,
4343] ;
@@ -85,16 +85,18 @@ const go = async () => {
8585 ) ;
8686 } ) ;
8787
88+ prependAutoImports ( pkg , packagePath ) ;
89+
8890 // Setup the files in the repo
89- const newPkgJSON = await updatePackageJSON ( packagePath , pkg , gitSha ) ;
91+ const newPkgJSON = await updatePackageJSON ( pkg , packagePath , gitSha ) ;
9092 copyREADME ( pkg , newPkgJSON , new URL ( "README.md" , packagePath ) ) ;
9193
9294 // Done
9395 console . log ( "Built:" , pkg . name ) ;
9496 }
9597} ;
9698
97- async function updatePackageJSON ( packagePath , pkg , gitSha ) {
99+ async function updatePackageJSON ( pkg , packagePath , gitSha ) {
98100 const pkgJSONPath = new URL ( "package.json" , packagePath ) ;
99101 const packageText = fs . readFileSync ( pkgJSONPath , "utf8" ) ;
100102 const packageJSON = JSON . parse ( packageText ) ;
@@ -155,6 +157,20 @@ function copyREADME(pkg, pkgJSON, writePath) {
155157 fs . writeFileSync ( writePath , readme ) ;
156158}
157159
160+ // Appends any files marked as autoImport in the metadata.
161+ function prependAutoImports ( pkg , packagePath ) {
162+ const index = new URL ( "index.d.ts" , packagePath ) ;
163+ if ( ! fs . existsSync ( index ) ) return ;
164+
165+ const toPrepend = pkg . files
166+ . filter ( ( f ) => ! ! f . autoImport )
167+ . map ( ( f ) => `/// <reference path="./${ f . to } " />` )
168+ . join ( "\n" ) ;
169+
170+ let indexText = fs . readFileSync ( index , "utf-8" ) ;
171+ fs . writeFileSync ( index , `${ toPrepend } \n\n${ indexText } ` ) ;
172+ }
173+
158174if ( process . argv [ 1 ] === fileURLToPath ( import . meta. url ) ) {
159175 await go ( ) ;
160176}
0 commit comments