hyperdrive-duplicate

3.0.0 • Public • Published

hyperdrive-duplicate

Travis npm

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 and fs.stat first, then
  • Compare archive.createReadStream and fs.createReadStream (will fail as soon as stream differs).

Warning! Can be decrease performance to check duplicates of many large files.

Usage

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!')
  })
})

API

isDuplicate(archive, filePath, [entryName], cb)

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.

License

MIT

Readme

Keywords

none

Package Sidebar

Install

npm i hyperdrive-duplicate

Weekly Downloads

9

Version

3.0.0

License

MIT

Last publish

Collaborators

  • jhand