move setProviders to EmbarkJS

This commit is contained in:
Iuri Matias 2018-07-07 18:29:45 +03:00 committed by Pascal Precht
parent fdfa474588
commit 17640e51de
No known key found for this signature in database
GPG Key ID: 0EE28D8D6FD85D7D
1 changed files with 36 additions and 0 deletions

View File

@ -1,3 +1,5 @@
import {detectSeries} from 'async';
var EmbarkJS = {
onReady: function (cb) {
if (typeof (__embarkContext) === 'undefined') {
@ -300,6 +302,40 @@ EmbarkJS.Storage.isAvailable = function () {
return this.currentStorage.isAvailable();
};
let __embarkStorage = {};
EmbarkJS.Storage.setProviders = async function (dappConnOptions) {
try {
await detectSeries(dappConnOptions, async (dappConn, callback) => {
if(dappConn === '$BZZ' || dappConn.provider === 'swarm'){
let options = dappConn;
if(dappConn === '$BZZ') options = {"useOnlyGivenProvider": true};
try{
await EmbarkJS.Storage.setProvider('swarm', options);
let isAvailable = await EmbarkJS.Storage.isAvailable();
callback(null, isAvailable);
}catch(err){
callback(null, false); // catch errors for when bzz object not initialised but config has requested it to be used
}
}
else if(dappConn.provider === 'ipfs') {
// set the provider then check the connection, if true, use that provider, else, check next provider
try{
await EmbarkJS.Storage.setProvider('ipfs', dappConn);
let isAvailable = await EmbarkJS.Storage.isAvailable();
callback(null, isAvailable);
} catch(err) {
callback(null, false); // catch but keep looping by not passing err to callback
}
}
}, function(err, result){
if(!result) throw new Error('Could not connect to a storage provider using any of the dappConnections in the storage config');
});
} catch (err) {
throw new Error('Failed to connect to a storage provider: ' + err.message);
}
};
EmbarkJS.Messages = {};
EmbarkJS.Messages.Providers = {};