utils.js
703 Bytes
const { promises: fs } = require( 'fs' );
const path = require( 'path' );
module.exports.copyDir = async function copyDir( src, dest, ignore ) {
await fs.mkdir( dest, { recursive: true } );
let entries = await fs.readdir( src, { withFileTypes: true } );
// Exclude all dot files and directories.
entries = entries.filter( dirent => ! dirent.name.startsWith('.') );
ignore = ignore || [];
for ( const entry of entries ) {
if ( ignore.indexOf( entry.name ) != -1 ) {
continue;
}
const srcPath = path.join( src, entry.name );
const destPath = path.join( dest, entry.name );
entry.isDirectory()
? await copyDir( srcPath, destPath )
: await fs.copyFile( srcPath, destPath );
}
}