Skip to content

Commit

Permalink
Add metadata-download/upload and content-download/upload events (#319)
Browse files Browse the repository at this point in the history
  • Loading branch information
RangerMauve committed Aug 3, 2021
1 parent 4a10b38 commit 5957fa1
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 2 deletions.
16 changes: 16 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,22 @@ Emitted when a critical error during load happened.

Emitted when there is a new update to the drive. Not triggered unless you load the data. Use `drive.watch()` to start loading.

### `drive.on('metadata-download', index, data, feed)`

Emitted when data has been downloaded for the metadata feed.

### `drive.on('metadata-upload', index, data, feed)`

Emitted when data has been uploaded for the metadata feed.

### `drive.on('content-download', index, data, feed)`

Emitted when data has been downloaded for the content feed.

### `drive.on('content-upload', index, data, feed)`

Emitted when data has been uploaded for the content feed.

#### `drive.on('peer-add', peer)`

Emitted when a new peer has been added.
Expand Down
26 changes: 24 additions & 2 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,8 @@ class Hyperdrive extends Nanoresource {
self.metadata.on('peer-add', peeradd)
self.metadata.on('peer-open', peeropen)
self.metadata.on('peer-remove', peerremove)
self.metadata.on('download', ondownload)
self.metadata.on('upload', onupload)

this._unlistens.push(() => {
self.db.removeListener('error', onerror)
Expand Down Expand Up @@ -244,6 +246,14 @@ class Hyperdrive extends Nanoresource {
self.emit('metadata-feed', trie.feed)
self.emit('mount', trie)
}

function ondownload (index, data) {
self.emit('metadata-download', index, data, self.metadata)
}

function onupload (index, data) {
self.emit('metadata-upload', index, data, self.metadata)
}
}

_getContent (metadata, cb) {
Expand All @@ -263,7 +273,7 @@ class Hyperdrive extends Nanoresource {

_contentStateFromOpts (opts, cb) {
const contentOpts = { ...opts, ...contentOptions(this), cache: { data: false } }

try {
var feed = this.corestore.get(contentOpts)
} catch (err) {
Expand All @@ -272,7 +282,19 @@ class Hyperdrive extends Nanoresource {

const contentErrorListener = err => this.emit('error', err)
feed.on('error', contentErrorListener)
this._unlistens.push(() => feed.removeListener('error', contentErrorListener))

const contentDownloadListener = (index, data) => this.emit('content-download', index, data, feed)
feed.on('download', contentDownloadListener)

const contentUploadListener = (index, data) => this.emit('content-upload', index, data, feed)
feed.on('upload', contentUploadListener)

this._unlistens.push(() => {
feed.removeListener('error', contentErrorListener)
feed.removeListener('download', contentDownloadListener)
feed.removeListener('upload', contentUploadListener)
})

feed.ready(err => {
if (err) return cb(err)
this.emit('content-feed', feed)
Expand Down

0 comments on commit 5957fa1

Please sign in to comment.