'a'
mh-two-thousand-and-two
2024-04-12 44d2c92345cd156a59fc327b3060292a282d2893
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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)
}