@@ -10,7 +10,7 @@ export const packages = [
10
10
readme : "./readmes/web.md" ,
11
11
files : [
12
12
{ 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 } ,
14
14
] ,
15
15
} ,
16
16
{
@@ -19,7 +19,7 @@ export const packages = [
19
19
readme : "./readmes/serviceworker.md" ,
20
20
files : [
21
21
{ 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 } ,
23
23
] ,
24
24
} ,
25
25
{
@@ -28,7 +28,7 @@ export const packages = [
28
28
readme : "./readmes/audioworklet.md" ,
29
29
files : [
30
30
{ 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 } ,
32
32
] ,
33
33
} ,
34
34
{
@@ -37,7 +37,7 @@ export const packages = [
37
37
readme : "./readmes/sharedworker.md" ,
38
38
files : [
39
39
{ 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 } ,
41
41
] ,
42
42
} ,
43
43
] ;
@@ -85,16 +85,18 @@ const go = async () => {
85
85
) ;
86
86
} ) ;
87
87
88
+ prependAutoImports ( pkg , packagePath ) ;
89
+
88
90
// Setup the files in the repo
89
- const newPkgJSON = await updatePackageJSON ( packagePath , pkg , gitSha ) ;
91
+ const newPkgJSON = await updatePackageJSON ( pkg , packagePath , gitSha ) ;
90
92
copyREADME ( pkg , newPkgJSON , new URL ( "README.md" , packagePath ) ) ;
91
93
92
94
// Done
93
95
console . log ( "Built:" , pkg . name ) ;
94
96
}
95
97
} ;
96
98
97
- async function updatePackageJSON ( packagePath , pkg , gitSha ) {
99
+ async function updatePackageJSON ( pkg , packagePath , gitSha ) {
98
100
const pkgJSONPath = new URL ( "package.json" , packagePath ) ;
99
101
const packageText = fs . readFileSync ( pkgJSONPath , "utf8" ) ;
100
102
const packageJSON = JSON . parse ( packageText ) ;
@@ -155,6 +157,20 @@ function copyREADME(pkg, pkgJSON, writePath) {
155
157
fs . writeFileSync ( writePath , readme ) ;
156
158
}
157
159
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
+
158
174
if ( process . argv [ 1 ] === fileURLToPath ( import . meta. url ) ) {
159
175
await go ( ) ;
160
176
}
0 commit comments