|
1 | 1 | 'use strict'
|
2 | 2 |
|
3 | 3 | const nodeify = require('promise-nodeify')
|
4 |
| -const moduleConfig = require('../utils/module-config') |
| 4 | +const callbackify = require('callbackify') |
| 5 | +const all = require('async-iterator-all') |
5 | 6 | const { concatify, collectify, pullify, streamify } = require('../lib/converters')
|
| 7 | +const toPullStream = require('async-iterator-to-pull-stream') |
| 8 | +const pull = require('pull-stream/pull') |
| 9 | +const map = require('pull-stream/throughs/map') |
6 | 10 |
|
7 |
| -module.exports = (arg) => { |
8 |
| - const send = moduleConfig(arg) |
9 |
| - const add = require('../add')(arg) |
10 |
| - const addFromFs = require('../add-from-fs')(arg) |
11 |
| - const addFromURL = require('../add-from-url')(arg) |
12 |
| - const cat = require('../cat')(arg) |
| 11 | +module.exports = (config) => { |
| 12 | + const add = require('../add')(config) |
| 13 | + const addFromFs = require('../add-from-fs')(config) |
| 14 | + const addFromURL = require('../add-from-url')(config) |
| 15 | + const cat = require('../cat')(config) |
| 16 | + const get = require('./get')(config) |
| 17 | + const ls = require('./ls')(config) |
| 18 | + const refs = require('./refs')(config) |
| 19 | + const refsLocal = require('./refs-local')(config) |
13 | 20 |
|
14 |
| - return { |
| 21 | + const api = { |
15 | 22 | add: (input, options, callback) => {
|
16 | 23 | if (typeof options === 'function') {
|
17 | 24 | callback = options
|
@@ -43,23 +50,51 @@ module.exports = (arg) => {
|
43 | 50 | return nodeify(collectify(add)(input, options), callback)
|
44 | 51 | },
|
45 | 52 | _addAsyncIterator: add,
|
46 |
| - cat: (path, options, callback) => { |
47 |
| - if (typeof options === 'function') { |
48 |
| - callback = options |
49 |
| - options = {} |
50 |
| - } |
51 |
| - return nodeify(concatify(cat)(path, options), callback) |
52 |
| - }, |
| 53 | + cat: callbackify.variadic((path, options) => concatify(cat)(path, options)), |
53 | 54 | catReadableStream: streamify.readable(cat),
|
54 | 55 | catPullStream: pullify.source(cat),
|
55 |
| - get: require('../files-regular/get')(send), |
56 |
| - getReadableStream: require('../files-regular/get-readable-stream')(send), |
57 |
| - getPullStream: require('../files-regular/get-pull-stream')(send), |
58 |
| - ls: require('../files-regular/ls')(send), |
59 |
| - lsReadableStream: require('../files-regular/ls-readable-stream')(send), |
60 |
| - lsPullStream: require('../files-regular/ls-pull-stream')(send), |
61 |
| - refs: require('../files-regular/refs')(send), |
62 |
| - refsReadableStream: require('../files-regular/refs-readable-stream')(send), |
63 |
| - refsPullStream: require('../files-regular/refs-pull-stream')(send) |
| 56 | + _catAsyncIterator: cat, |
| 57 | + get: callbackify.variadic(async (path, options) => { |
| 58 | + const output = [] |
| 59 | + |
| 60 | + for await (const entry of get(path, options)) { |
| 61 | + if (entry.content) { |
| 62 | + entry.content = Buffer.concat(await all(entry.content)) |
| 63 | + } |
| 64 | + |
| 65 | + output.push(entry) |
| 66 | + } |
| 67 | + |
| 68 | + return output |
| 69 | + }), |
| 70 | + getReadableStream: streamify.readable(get), |
| 71 | + getPullStream: (path, options) => { |
| 72 | + return pull( |
| 73 | + toPullStream(get(path, options)), |
| 74 | + map(file => { |
| 75 | + if (file.content) { |
| 76 | + file.content = toPullStream(file.content) |
| 77 | + } |
| 78 | + |
| 79 | + return file |
| 80 | + }) |
| 81 | + ) |
| 82 | + }, |
| 83 | + _getAsyncIterator: get, |
| 84 | + ls: callbackify.variadic((path, options) => collectify(ls)(path, options)), |
| 85 | + lsReadableStream: streamify.readable(ls), |
| 86 | + lsPullStream: pullify.source(ls), |
| 87 | + _lsAsyncIterator: ls, |
| 88 | + refs: callbackify.variadic((path, options) => collectify(refs)(path, options)), |
| 89 | + refsReadableStream: streamify.readable(refs), |
| 90 | + refsPullStream: pullify.source(refs), |
| 91 | + _refsAsyncIterator: refs |
64 | 92 | }
|
| 93 | + |
| 94 | + api.refs.local = callbackify.variadic((options) => collectify(refsLocal)(options)) |
| 95 | + api.refs.localReadableStream = streamify.readable(refsLocal) |
| 96 | + api.refs.localPullStream = pullify.source(refsLocal) |
| 97 | + api.refs._localAsyncIterator = refsLocal |
| 98 | + |
| 99 | + return api |
65 | 100 | }
|
0 commit comments