Skip to content
This repository has been archived by the owner on Aug 12, 2020. It is now read-only.

Commit

Permalink
feat(exporter): return file sizes
Browse files Browse the repository at this point in the history
  • Loading branch information
dignifiedquire committed Sep 9, 2016
1 parent d8675cc commit 73cf78a
Showing 1 changed file with 13 additions and 8 deletions.
21 changes: 13 additions & 8 deletions src/exporters/file.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,33 @@
const UnixFS = require('ipfs-unixfs')
const pull = require('pull-stream')

function extractContent (node) {
return UnixFS.unmarshal(node.data).data
}

// Logic to export a single (possibly chunked) unixfs file.
module.exports = (node, name, ds) => {
const file = UnixFS.unmarshal(node.data)
let content

if (node.links.length === 0) {
const c = extractContent(node)
content = pull.values([c])
content = pull.values([file.data])
} else {
content = pull(
pull.values(node.links),
pull.map((link) => ds.getStream(link.hash)),
pull.flatten(),
pull.map(extractContent)
pull.map((node) => {
try {
const ex = UnixFS.unmarshal(node.data)
return ex.data
} catch (err) {
console.error(node)
throw new Error('Failed to unmarshal node')
}
})
)
}

return pull.values([{
content: content,
path: name
path: name,
size: file.fileSize()
}])
}

0 comments on commit 73cf78a

Please sign in to comment.