| 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 ) );
 |