secure-scuttlebot classic
1var ref = require('ssb-ref')
2
3exports.name = 'blobs-size-fix'
4exports.version = '1.0.0'
5exports.manifest = {}
6
7exports.init = function (sbot, config) {
8 if (!sbot.blobs || typeof sbot.blobs.size !== 'function') return {}
9
10 var originalSize = sbot.blobs.size
11
12 sbot.blobs.size = function (id, cb) {
13 // Preserve legacy call style blobs.size(cb)
14 if (typeof id === 'function' && cb == null) {
15 return originalSize.call(this, id)
16 }
17
18 // Normal style: blobs.size(id, cb) with a single blob id
19 if (!ref.isBlob(id)) {
20 return cb(new Error('invalid id:' + id))
21 }
22
23 sbot.blobs.meta(id, function (err, meta) {
24 if (err) return cb(err)
25 cb(null, meta ? meta.size : null)
26 })
27 }
28
29 return {}
30}
31