More info on active projects and modules at dat-ecosystem.org
Manage multiple dat instances in multiple locations.
var Multidat = require('multidat')
var toilet = require('toiletdb')
var db = toilet('/tmp/dat')
Multidat(db, function (err, multidat) {
if (err) throw err
multidat.create(opts, function (err, dat) {
if (err) throw err
var dats = multidat.list()
console.log(dats)
multidat.close(dat.archive.key, function (err) {
if (err) throw err
console.log()
})
})
})
If there is an error initializing a dat, instead of the whole process failing, an error object with attached .dir
property will be pushed into the list of dats instead. That means when consuming multidat.list()
, you should check for errors:
var dats = multidat.list()
dats.forEach(function (dat) {
if (dat instanceof Error) {
var err = dat
console.log('failed to initialize dat in %s: %s', err.dir, err.message)
}
})
This way you can decide for yourself whether an individual initialization failure should cause the whole process to fail or not.
Creat a new Multidat instance. Takes a toiletdb
instance and a callback.
Options:
Dat
: Use provided dat factory instead of dat-nodeCreate a new dat
archive.
List all available dat
archives.
Close and remove a dat
archive.
Read the dat.json
file from the dat
archive. This method is expected to be
deprecated once dat
archives provide a built-in method to return archives.
This package exists to manage multiple dat
archives in different directories.
The dat-node package is mostly stateless; all state is persisted
into the archives themselves. This package acts as a layer on top to keep track
of where archives are located and manage them between sessions.
If you're running a server, it's usually enough to run mafintosh/hypercore-archiver which is more consistent and simpler. If you're building a tool that only needs to manage a single dat archive at the time it's recommended to use datproject/dat-node instead.