Skip to content
This repository was archived by the owner on Mar 10, 2020. It is now read-only.

Commit d2882a7

Browse files
committed
.getReadableStream
1 parent 70f0caa commit d2882a7

File tree

4 files changed

+38
-3
lines changed

4 files changed

+38
-3
lines changed

src/files/cat-readable-stream.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
const cleanCID = require('../utils/clean-cid')
44
const v = require('is-ipfs')
55
const Stream = require('readable-stream')
6+
const pump = require('pump')
67

78
module.exports = (send) => {
89
return (hash, opts) => {
@@ -21,7 +22,7 @@ module.exports = (send) => {
2122
send({ path: 'cat', args: hash, buffer: opts.buffer }, (err, stream) => {
2223
if (err) { return pt.destroy(err) }
2324

24-
stream.pipe(pt)
25+
pump(stream, pt)
2526
})
2627

2728
return pt

src/files/get-readable-stream.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
'use strict'
2+
3+
const cleanCID = require('../utils/clean-cid')
4+
const TarStreamToObjects = require('../utils/tar-stream-to-objects')
5+
const v = require('is-ipfs')
6+
const Stream = require('readable-stream')
7+
const pump = require('pump')
8+
9+
module.exports = (send) => {
10+
return (path, opts) => {
11+
opts = opts || {}
12+
13+
const pt = new Stream.PassThrough({objectMode: true})
14+
15+
try {
16+
path = cleanCID(path)
17+
} catch (err) {
18+
if (!v.ipfsPath(path)) {
19+
return pt.destroy(err)
20+
}
21+
}
22+
23+
const request = { path: 'get', args: path, qs: opts }
24+
25+
// Convert the response stream to TarStream objects
26+
send.andTransform(request, TarStreamToObjects, (err, stream) => {
27+
if (err) { return pt.destroy(err) }
28+
29+
pump(stream, pt)
30+
})
31+
32+
return pt
33+
}
34+
}

src/files/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module.exports = (arg) => {
1313
catReadableStream: require('./cat-readable-stream')(send),
1414
catPullStream: require('./cat-pull-stream')(send),
1515
get: require('./get')(send),
16-
// getReadableStream: require('./get-readable-stream')(send),
16+
getReadableStream: require('./get-readable-stream')(send),
1717
// getPullStream: require('./get-pull-stream')(send),
1818
cp: require('./cp')(send),
1919
ls: require('./ls')(send),

src/utils/load-commands.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ function requireCommands () {
1010
catReadableStream: require('../files/cat-readable-stream'),
1111
catPullStream: require('../files/cat-pull-stream'),
1212
get: require('../files/get'),
13-
// getReadableStream: require('../files/get-readable-stream'),
13+
getReadableStream: require('../files/get-readable-stream'),
1414
// getPullStream: require('../files/get-pull-stream'),
1515
bitswap: require('../bitswap'),
1616
block: require('../block'),

0 commit comments

Comments
 (0)