Copiar arquivos com Node

Este módulo exporta uma função que copia arquivos do sistema.
Ele retorna uma promessa.

const fs = require('fs');

module
.exports = function (source, target) {
const rd = fs.createReadStream(source);
const wr = fs.createWriteStream(target);

return new Promise((resolve, reject) => {
rd
.on('error', reject);
wr
.on('error', reject);
wr
.on('finish', resolve);
rd
.pipe(wr);
}).catch(error => {
rd
.destroy();
wr
.end();
throw error;
});
}