Awesome
More info on active projects and modules at dat-ecosystem.org <img src="https://i.imgur.com/qZWlO1y.jpg" width="30" height="30" />
dat-walk
Recursive directory walker for dat
archives.
Supports both raw hyperdrive
instances and Beaker Browser's DatArchive
API. With scoped-fs
you can use it on your local file system as well.
Installation
In Beaker or Webrun you can import the module directly in your code:
import walk from 'dat://brecht.pamphlets.me/lib/dat-walk/v2.1.js'
Note that it's advised to always use the dat
protocol for this. HTTPS might be fine for testing, but I can't guarantee the required reliability and performance for production usage.
If you need dat-walk
in Node.js, you can get it from NPM:
npm install dat-walk
Usage
This package exports two modules. The default require('dat-walk')
works with async iteration, whereas require('dat-walk/stream')
uses standard Node streams. Both these examples log all file paths of a given dat
to the console.
// Async iteration
var walk = require('dat-walk')
async function main () {
var dat = DatArchive.load(key)
for await (var file of walk(dat)) {
console.log(file)
}
console.log('done!')
}
main()
// Node stream
var hyperdrive = require('hyperdrive')
var walk = require('dat-walk/stream')
var dat = hyperdrive(key)
var stream = walk(dat, 'subdir')
stream.on('data', console.log)
stream.on('end', () => console.log('done!'))
API
walk(dat [, base])
dat
Type: object
(required)
A DatArchive
, hyperdrive
, or scoped-fs
instance.
base
Type: string
Subdirectory to start walking from.
walk(dat [, opts])
dat
See above.
opts.base
See above.
opts.dir
Type: boolean
(default: false
)
Determines if walk
outputs directories as well as files.
License
Apache-2.0