From 73cf78a99457cacbbabcee83f49b9ed300b8bf17 Mon Sep 17 00:00:00 2001 From: Friedel Ziegelmayer Date: Fri, 9 Sep 2016 20:23:59 +0200 Subject: [PATCH] feat(exporter): return file sizes --- src/exporters/file.js | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/exporters/file.js b/src/exporters/file.js index c2993fcb..7dfb4bfb 100644 --- a/src/exporters/file.js +++ b/src/exporters/file.js @@ -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() }]) }