mirror of
https://github.com/orbitdb/orbitdb.git
synced 2025-10-07 22:57:07 +00:00
Make pubsub connect work with js-ipfs and js-ipfs-api, test with both
This commit is contained in:
@@ -109,33 +109,58 @@ class OrbitDB {
|
||||
_connect(hash, username, password, allowOffline) {
|
||||
if(allowOffline === undefined) allowOffline = false;
|
||||
|
||||
const catFromJsIpfsApi = (hash) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
if(this._ipfs.cat) {
|
||||
logger.debug(".cat with js-ipfs-api");
|
||||
this._ipfs.cat(hash, (err, res) => {
|
||||
if(err) return reject(err)
|
||||
let buf = '';
|
||||
res
|
||||
.on('error', (err) => reject(err))
|
||||
.on('data', (data) => buf += data)
|
||||
.on('end', () => resolve(buf.toString()))
|
||||
});
|
||||
} else {
|
||||
reject("not using js-ipfs-api");
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const catFromJsIpfs = (hash) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
if(this._ipfs.files.cat) {
|
||||
logger.debug(".cat with js-ipfs");
|
||||
this._ipfs.files.cat(hash, (err, res) => {
|
||||
if(err) return reject(err);
|
||||
let buf = '';
|
||||
res.on('data', (res) => {
|
||||
res.stream
|
||||
.on('error', (err) => reject(err))
|
||||
.on('data', (data) => buf += data)
|
||||
.on('end', () => resolve(buf.toString()))
|
||||
})
|
||||
});
|
||||
} else {
|
||||
reject("not using js-ipfs");
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const readNetworkInfo = (hash) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
// js-ipfs-api
|
||||
this._ipfs.cat(hash, (err, res) => {
|
||||
if(err) return reject(err)
|
||||
let buf = '';
|
||||
res
|
||||
.on('error', (err) => reject(err))
|
||||
.on('data', (data) => buf += data)
|
||||
.on('end', () => resolve(buf.toString()))
|
||||
});
|
||||
// js-ipfs
|
||||
// this._ipfs.files.cat(hash, (err, res) => {
|
||||
// if(err) return reject(err)
|
||||
// let buf = '';
|
||||
// res.on('data', (res) => {
|
||||
// res.stream
|
||||
// .on('error', (err) => reject(err))
|
||||
// .on('data', (data) => buf += data)
|
||||
// .on('end', () => resolve(buf.toString()))
|
||||
// })
|
||||
// });
|
||||
// mock
|
||||
// resolve(JSON.stringify({
|
||||
// name: 'localhost dev network',
|
||||
// publishers: ['localhost:3333']
|
||||
// }))
|
||||
catFromJsIpfsApi(hash).then(resolve)
|
||||
.catch((e) => {
|
||||
catFromJsIpfs(hash).then(resolve)
|
||||
.catch((e) => {
|
||||
logger.warn(".cat - no api or content found, using mock")
|
||||
resolve(JSON.stringify({
|
||||
name: 'localhost dev network',
|
||||
publishers: ['localhost:3333']
|
||||
}))
|
||||
})
|
||||
|
||||
})
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -21,21 +21,22 @@ const password = '';
|
||||
|
||||
let ipfs, ipfsDaemon;
|
||||
const IpfsApis = [
|
||||
// {
|
||||
// // js-ipfs
|
||||
// start: () => {
|
||||
// return new Promise((resolve, reject) => {
|
||||
// const IPFS = require('ipfs')
|
||||
// const ipfs = new IPFS();
|
||||
// ipfs.goOnline((err) => {
|
||||
// if(err) reject(err)
|
||||
// resolve(ipfs)
|
||||
// });
|
||||
// });
|
||||
// },
|
||||
// // stop: () => Promise.resolve()
|
||||
// stop: () => new Promise((resolve, reject) => ipfs.goOffline(resolve))
|
||||
// },
|
||||
{
|
||||
// js-ipfs
|
||||
start: () => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const IPFS = require('ipfs')
|
||||
const ipfs = new IPFS();
|
||||
// resolve(ipfs);
|
||||
ipfs.goOnline((err) => {
|
||||
if(err) reject(err)
|
||||
resolve(ipfs)
|
||||
});
|
||||
});
|
||||
},
|
||||
// stop: () => Promise.resolve()
|
||||
stop: () => new Promise((resolve, reject) => ipfs.goOffline(resolve))
|
||||
},
|
||||
{
|
||||
// js-ipfs-api via local daemon
|
||||
start: () => {
|
||||
|
||||
@@ -20,18 +20,22 @@ const ipfsPath = '/tmp/orbittests';
|
||||
|
||||
let ipfs, ipfsDaemon;
|
||||
const IpfsApis = [
|
||||
// {
|
||||
// // js-ipfs
|
||||
// start: () => {
|
||||
// return new Promise((resolve, reject) => {
|
||||
// const IPFS = require('ipfs')
|
||||
// const ipfs = new IPFS();
|
||||
// ipfs.goOnline(() => resolve(ipfs));
|
||||
// // resolve(ipfs);
|
||||
// });
|
||||
// },
|
||||
// stop: () => new Promise((resolve, reject) => ipfs.goOffline(resolve))
|
||||
// },
|
||||
{
|
||||
// js-ipfs
|
||||
start: () => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const IPFS = require('ipfs')
|
||||
const ipfs = new IPFS();
|
||||
// resolve(ipfs);
|
||||
ipfs.goOnline((err) => {
|
||||
if(err) reject(err)
|
||||
resolve(ipfs)
|
||||
});
|
||||
});
|
||||
},
|
||||
// stop: () => Promise.resolve()
|
||||
stop: () => new Promise((resolve, reject) => ipfs.goOffline(resolve))
|
||||
},
|
||||
{
|
||||
// js-ipfs-api via local daemon
|
||||
start: () => {
|
||||
|
||||
Reference in New Issue
Block a user