@@ -28,9 +28,11 @@ for (const submodule of submodules) {
28
28
} ;
29
29
fs . writeFileSync ( path . join ( root , "package.json" ) , JSON . stringify ( pkgJson , null , 2 ) + "\n" ) ;
30
30
}
31
- if ( ! pkgJson . files . includes ( `./${ submodule } .js` ) ) {
31
+ if ( ! pkgJson . files . includes ( `./${ submodule } .js` ) || ! pkgJson . files . includes ( `./ ${ submodule } .d.ts` ) ) {
32
32
pkgJson . files . push ( `./${ submodule } .js` ) ;
33
+ pkgJson . files . push ( `./${ submodule } .d.ts` ) ;
33
34
errors . push ( `package.json files array missing ${ submodule } .js compatibility redirect file.` ) ;
35
+ pkgJson . files = [ ...new Set ( pkgJson . files ) ] . sort ( ) ;
34
36
fs . writeFileSync ( path . join ( root , "package.json" ) , JSON . stringify ( pkgJson , null , 2 ) + "\n" ) ;
35
37
}
36
38
// tsconfig metadata.
@@ -54,6 +56,23 @@ for (const submodule of submodules) {
54
56
* This is a compatibility redirect for contexts that do not understand package.json exports field.
55
57
*/
56
58
module.exports = require("./dist-cjs/submodules/${ submodule } /index.js");
59
+ `
60
+ ) ;
61
+ }
62
+ // compatibility types file.
63
+ const compatibilityTypesFile = path . join ( root , `${ submodule } .d.ts` ) ;
64
+ if ( ! fs . existsSync ( compatibilityTypesFile ) ) {
65
+ errors . push ( `${ submodule } is missing compatibility types file in the package root folder.` ) ;
66
+ fs . writeFileSync (
67
+ compatibilityTypesFile ,
68
+ `
69
+ /**
70
+ * Do not edit:
71
+ * This is a compatibility redirect for contexts that do not understand package.json exports field.
72
+ */
73
+ declare module "@aws-sdk/core/${ submodule } " {
74
+ export * from "@aws-sdk/core/dist-types/submodules/${ submodule } /index.d";
75
+ }
57
76
`
58
77
) ;
59
78
}
0 commit comments