let Fly = require("../../dist/npm/fly")
|
let EngineWrapper = require("../../dist/npm/engine-wrapper")
|
let adapter = require("../adapter/node")
|
let utils = require("../utils/utils")
|
let nodeEngine = EngineWrapper(adapter)
|
let fs = require("fs")
|
let path= require("path")
|
let request=require("request")
|
let rq = request.defaults({jar: true})
|
Object.assign(Fly.prototype,{
|
|
// Http plugin
|
"$http":rq ,
|
|
// File download API
|
download(url, savePath, params = null,options) {
|
return this.request(url, params,utils.merge({responseType: "stream"},options))
|
.then(d => {
|
return new Promise((resolve,reject)=> {
|
fs.writeFile(savePath, d.data,(err)=>{
|
if(!err) {
|
resolve({size:d.data.length,path:path.resolve(savePath)})
|
}else{
|
// Failed to save file
|
err.status=2
|
reject(err)
|
}
|
})
|
})
|
}).catch(e=>{
|
return Promise.reject(e)
|
})
|
},
|
|
// File upload API
|
upload(url,formData,options) {
|
return this.post(url,null,utils.merge({formData},options))
|
}
|
})
|
|
module.exports = function (engine) {
|
return new Fly(engine||nodeEngine)
|
}
|