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

Commit 6fc3b18

Browse files
committed
getPullStream
1 parent 3f9d59b commit 6fc3b18

File tree

3 files changed

+46
-2
lines changed

3 files changed

+46
-2
lines changed

src/files/get-pull-stream.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
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 through = require('through2')
7+
const pull = require('pull-stream')
8+
const toPull = require('stream-to-pull-stream')
9+
const deferred = require('pull-defer')
10+
11+
module.exports = (send) => {
12+
return (path, opts) => {
13+
opts = opts || {}
14+
15+
const p = deferred.source()
16+
17+
try {
18+
path = cleanCID(path)
19+
} catch (err) {
20+
if (!v.ipfsPath(path)) {
21+
return p.end(err)
22+
}
23+
}
24+
25+
const request = { path: 'get', args: path, qs: opts }
26+
27+
// Convert the response stream to TarStream objects
28+
send.andTransform(request, TarStreamToObjects, (err, stream) => {
29+
if (err) { return p.end(err) }
30+
31+
const files = []
32+
stream.pipe(through.obj((file, enc, next) => {
33+
if (file.content) {
34+
files.push({ path: file.path, content: toPull(file.content) })
35+
} else {
36+
files.push(file)
37+
}
38+
next()
39+
}, () => p.resolve(pull.values(files))))
40+
})
41+
42+
return p
43+
}
44+
}

src/files/index.js

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

src/utils/load-commands.js

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

0 commit comments

Comments
 (0)