fs-safe-copy
Version:
Copy some files easily. Check your copy checksum.
35 lines (29 loc) • 938 B
JavaScript
const fs = require('fs')
const { SumCreator } = require('./sumCreator')
async function fileEqual (filePathA, filePathB, algorithm = 'md5') {
const resultFileA = await createSum(filePathA, algorithm)
const resultFileB = await createSum(filePathB, algorithm)
return resultFileA === resultFileB
}
const createSum = (filePath, algorithm) => {
const sumResult = {}
return new Promise((resolve, reject) => {
const sum = new SumCreator(algorithm)
fs.createReadStream(filePath).pipe(sum)
sum.on('readable', onReadData(sumResult, sum))
.on('end', () => resolve(sumResult.hex))
.on('error', () => reject(new Error('it is not possible to perform the check sum of the file')))
})
}
const onReadData = (sumResult, sumInstance) => {
return () => {
let data
while ((data = sumInstance.read()) !== null) {
sumResult.hex += data.toString()
}
}
}
module.exports = {
fileEqual
}