UNPKG

decentralized-internet

Version:

An NPM library of programs to create decentralized web and distributed computing projects

1 lines 1.01 kB
var request=require("request"),fs=require("fs"),Promise=require("bluebird"),path=require("path");module.exports=function(e,r){return(n=e,new Promise(function(e,r){request.put(n,function(i,o,t){if(i)r(i.message);else try{"not_found"===JSON.parse(t).error?request.put(n,function(r,n,i){e(JSON.parse(i))}):e(JSON.parse(t))}catch(e){console.error(n),console.error(e),r(e)}})})).then(function(n){return function(e,r){var n=fs.readdirSync(r);return Promise.map(n,function(n){return new Promise(function(i,o){try{-1===n.indexOf(".json")&&o(n),fs.readFile(path.join(r,n),function(t,s){if(t)throw t;var u=JSON.parse(s),c={uri:e+"/"+u._id};request(c,function(t,s,c){var f=JSON.parse(c);if(JSON.stringify(u.views)!==JSON.stringify(f.views)){console.info("Deploying design document: ",u);var a=e+"/"+u._id;f._rev&&(u._rev=f._rev,a+="?rev="+u._rev),request({uri:a,method:"PUT",json:u},function(e,r,n){e?o(e.message):i(n)})}else i({error:"No changes in document.",couchDB:e,view:r+n})})})}catch(e){o(e)}})})}(e,r)});var n};