Check if a file on the filesystem is the same as an entry in hyperdrive by comparing stat
objects and file contents.
- Compare
archive.stat
andfs.stat
first, then - Compare
archive.createReadStream
andfs.createReadStream
(will fail as soon as stream differs).
Warning! Can be decrease performance to check duplicates of many large files.
var isDuplicate = require('hyperdrive-duplicate')
var archive = hyperdrive(ram)
archive.writeFile('example.js', fs.readFileSync('example.js'), function (err) {
if (err) throw err
// example.js is now in the archive
// we can see if the fs file is duplicate
isDuplicate(archive, 'example.js', function (err, duplicate) {
if (err) throw err
if (duplicate) console.log('example.js is duplicate!')
})
isDuplicate(archive, 'index.js', 'example.js', function (err, duplicate) {
// index.js is a file on our fs
// example.js is the file in our archive
if (err) throw err
if (duplicate) console.log('index.js not a duplicate of example.js!')
})
})
Callback returns (err, isDuplicate)
where isDuplicate
is a boolean, true if the file is a duplicate.
If filePath
is different from the entry name in hyperdrive, specify both.
MIT