hyperdrive-import-files
Import the contents of a folder into a hyperdrive, and optionally keep watching for changes.
Example
const hyperdrive = require('hyperdrive')
const memdb = require('memdb')
const hyperImport = require('hyperdrive-import-files')
const drive = hyperdrive(memdb())
const archive = drive.createArchive()
hyperImport(archive, 'a/directory/', err => {
// ...
})
Installation
$ npm install hyperdrive-import-files
API
hyperImport(archive, target, [, options][, cb])
Recursively import target, which is the path to a directory or file, into archive and call cb with the potential error. The import happens sequentually. Returns a status object.
Options
watch: watch files for changes & import on change (archive must be live)overwrite: allow files in the archive to be overwritten (defaults to true)compareFileContent: compare import-candidates to archive's internal copy. If false, will only compare mtime and file-size, which is faster but may reslt in false-positives. (defaults to false)basePath: where in the archive should the files import to? (defaults to '')ignore: anymatch expression to ignore filesdryRun: step through the import, but don't write any files to the archive (defaults to false)indexing: Useful iftarget === destso hyperdrive does not rewrite the files on import.
To enable watching, set watch: true, like this:
const status = hyperImport(archive, target, { watch: true }, err => {
console.log('initial import done')
})
status.on('error', err => {
// ...
})
// when you want to quit:
status.close()
If you want to import into a subfolder, set basePath:
hyperImport(archive, target, { basePath: '/some/subdir' }, err => {...})
status
Events:
error(err)file imported({path,mode=updated|created})file skipped({path})file watch event({path,mode=updated|created})
Properties:
fileCount: The count of currently known filestotalSize: Total file size in bytesbytesImported: Amount of bytes imported so far
License
MIT