| 123456789101112131415161718192021222324252627282930313233343536373839404142 | 
							- const { default: dts } = require( 'rollup-plugin-dts' );
 
- const { rollup }       = require( 'rollup' );
 
- const { promises: fs } = require( 'fs' );
 
- const path             = require( 'path' );
 
- const util             = require( 'util' );
 
- const exec             = util.promisify( require( 'child_process' ).exec );
 
- const dir              = './dist/types';
 
- async function clean() {
 
-   const files = await fs.readdir( dir );
 
-   await Promise.all( files.map( file => {
 
-     if ( file !== 'index.d.ts' ) {
 
-       return fs.rm( path.join( dir, file ), { recursive: true, force: true } );
 
-     }
 
-   } ) );
 
- }
 
- async function emit() {
 
-   await exec( 'tsc --emitDeclarationOnly' );
 
- }
 
- async function bundle() {
 
-   const file = path.join( dir, 'index.d.ts' )
 
-   const bundle = await rollup( {
 
-     input  : file,
 
-     plugins: [ dts( { respectExternal: true } ) ],
 
-   } );
 
-   await bundle.write( { file } );
 
- }
 
- async function build() {
 
-   await clean();
 
-   await emit();
 
-   await bundle();
 
-   await clean();
 
- }
 
- build().catch( e => console.error( e ) );
 
 
  |