2.0.5 • Published 5 years ago

dat-archive-web v2.0.5

Weekly downloads
6
License
MIT
Repository
github
Last release
5 years ago

dat-archive-web

DatArchive implementation for browsers using dat-js

npm install --save dat-archive-web

Or

<script src="//unpkg.com/dat-archive-web/bundle.js"></script>

Example

// After including the bundle in a script tag, or requiring it

const archive = new DatArchive('dat://87ed2e3b160f261a032af03921a3bd09227d0a4cde73466c17114816cae43336')

// Subscribe to network events
archive.addEventListener("download", ({bytes}) => console.log(`Downloaded ${bytes} bytes`))

// Subscribe to file events
const emitter = archive.watch("/path/to/watch")
emitter.addEventListener("change", ({path}) => console.log(`file at path: ${path} changed!`))

archive.readFile('/index.html')
  .then((html) => console.log(html))

API

Implements the same interface as DatArchive in Beaker with the following exceptions:

  • archive.diff(), archive.commit(), and archive.revert() are not supported
  • DatArchive.selectArchive() doesn't do filtering and looks crappy. Uses window.prompt API
  • DatArchive.resolveName() doesn't work and DNS based urls aren't supported. Waiting for dat-js support

Features

  • Support most DatArchive methods
  • Public bridges used to replicate with non-browser network
  • Detect HTTP/HTTPS in gateway URL
  • Data stored in memory by default, unless it was created locally.
  • [] Functional DatDNS support (via gateway)
  • Full support for versions (Needs testing, but code is there)
  • Forking (without preserving change feed)
  • DatArchive.selectArchive() Really rudimentary

Development

  • This project uses the standard code style
  • Run the example in node with npm install && npm run example
  • Build the browserify bundle with npm run build