diff --git a/src/dir-flat.js b/src/dir-flat.js index a035bd3..53161e4 100644 --- a/src/dir-flat.js +++ b/src/dir-flat.js @@ -9,7 +9,7 @@ const cat = require('pull-cat') // Logic to export a unixfs directory. module.exports = dirExporter -function dirExporter (cid, node, name, path, pathRest, resolve, size, dag, parent, depth, options) { +function dirExporter (cid, node, name, path, pathRest, resolve, dag, parent, depth, options) { const accepts = pathRest[0] const dir = { @@ -17,7 +17,7 @@ function dirExporter (cid, node, name, path, pathRest, resolve, size, dag, paren depth: depth, path: path, cid, - size: node.size, + size: 0, type: 'dir' } @@ -32,7 +32,7 @@ function dirExporter (cid, node, name, path, pathRest, resolve, size, dag, paren filter((item) => accepts === undefined || item.name === accepts), map((link) => ({ depth: depth + 1, - size: link.size, + size: 0, name: link.name, path: path + '/' + link.name, cid: link.cid, diff --git a/src/dir-hamt-sharded.js b/src/dir-hamt-sharded.js index 841c129..b9ade11 100644 --- a/src/dir-hamt-sharded.js +++ b/src/dir-hamt-sharded.js @@ -14,7 +14,7 @@ const waterfall = require('async/waterfall') // Logic to export a unixfs directory. module.exports = shardedDirExporter -function shardedDirExporter (cid, node, name, path, pathRest, resolve, size, dag, parent, depth, options) { +function shardedDirExporter (cid, node, name, path, pathRest, resolve, dag, parent, depth, options) { let dir if (!parent || (parent.path !== path)) { dir = { @@ -22,7 +22,7 @@ function shardedDirExporter (cid, node, name, path, pathRest, resolve, size, dag depth: depth, path: path, cid, - size: node.size, + size: 0, type: 'dir' } } diff --git a/src/file.js b/src/file.js index 02f9022..0078a9b 100644 --- a/src/file.js +++ b/src/file.js @@ -14,7 +14,7 @@ const paramap = require('pull-paramap') const extractDataFromBlock = require('./extract-data-from-block') // Logic to export a single (possibly chunked) unixfs file. -module.exports = (cid, node, name, path, pathRest, resolve, size, dag, parent, depth, options) => { +module.exports = (cid, node, name, path, pathRest, resolve, dag, parent, depth, options) => { const accepts = pathRest[0] if (accepts !== undefined && accepts !== path) { @@ -29,7 +29,7 @@ module.exports = (cid, node, name, path, pathRest, resolve, size, dag, parent, d return error(err) } - const fileSize = size || file.fileSize() + const fileSize = file.fileSize() let offset = options.offset let length = options.length diff --git a/src/object.js b/src/object.js index 3719701..eb11de1 100644 --- a/src/object.js +++ b/src/object.js @@ -5,7 +5,7 @@ const pull = require('pull-stream/pull') const values = require('pull-stream/sources/values') const error = require('pull-stream/sources/error') -module.exports = (cid, node, name, path, pathRest, resolve, size, dag, parent, depth) => { +module.exports = (cid, node, name, path, pathRest, resolve, dag, parent, depth) => { let newNode if (pathRest.length) { const pathElem = pathRest[0] diff --git a/src/raw.js b/src/raw.js index bfc8606..94b7462 100644 --- a/src/raw.js +++ b/src/raw.js @@ -6,14 +6,14 @@ const empty = require('pull-stream/sources/empty') const extractDataFromBlock = require('./extract-data-from-block') // Logic to export a single raw block -module.exports = (cid, node, name, path, pathRest, resolve, size, dag, parent, depth, options) => { +module.exports = (cid, node, name, path, pathRest, resolve, dag, parent, depth, options) => { const accepts = pathRest[0] if (accepts !== undefined && accepts !== path) { return empty() } - size = size || node.length + const size = node.length let offset = options.offset let length = options.length diff --git a/src/resolve.js b/src/resolve.js index e3a0a70..e0c10b5 100644 --- a/src/resolve.js +++ b/src/resolve.js @@ -58,7 +58,6 @@ function createResolver (dag, options, depth, parent) { name: item.name, path: item.path, pathRest: item.pathRest, - size: item.size, dag, parentNode: item.parent || parent, depth: item.depth, @@ -66,7 +65,7 @@ function createResolver (dag, options, depth, parent) { }) } - function resolve ({ cid, node, name, path, pathRest, size, dag, parentNode, depth, options }) { + function resolve ({ cid, node, name, path, pathRest, dag, parentNode, depth, options }) { let type try { @@ -83,7 +82,7 @@ function createResolver (dag, options, depth, parent) { const resolveDeep = createResolver(dag, options, depth, node) - return nodeResolver(cid, node, name, path, pathRest, resolveDeep, size, dag, parentNode, depth, options) + return nodeResolver(cid, node, name, path, pathRest, resolveDeep, dag, parentNode, depth, options) } } diff --git a/test/exporter.spec.js b/test/exporter.spec.js index e7f4fc2..124b709 100644 --- a/test/exporter.spec.js +++ b/test/exporter.spec.js @@ -382,6 +382,7 @@ describe('exporter', () => { ), ({ cid, files: [ file ] }, cb) => { expect(file).to.have.property('path', cid.toBaseEncodedString()) + expect(file).to.have.property('size', ONE_MEG * 6) fileEql(file, null, cb) } ], done) @@ -500,6 +501,12 @@ describe('exporter', () => { `${cid.toBaseEncodedString()}/level-1/level-2` ]) + files + .filter(file => file.type === 'dir') + .forEach(dir => { + expect(dir).to.has.property('size', 0) + }) + pull( pull.values(files), pull.map((file) => Boolean(file.content)),