Awesome
More info on active projects and modules at dat-ecosystem.org <img src="https://i.imgur.com/qZWlO1y.jpg" width="30" height="30" />
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 === dest
so 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