1
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
node-bhttp/test-progress.coffee

39 lines
1.2 KiB
CoffeeScript

Promise = require "bluebird"
bhttp = require "./"
fs = require "fs"
devNull = require "dev-null"
formatLine = (line) -> line.toString().replace(/\n/g, "\\n").replace(/\r/g, "\\r")
Promise.try ->
# multipart POST upload
console.log "Starting upload..."
bhttp.post "http://posttestserver.com/post.php",
fieldOne: "value 1"
fieldTwo: "value 2"
fieldThree: ["value 3a", "value 3b"]
fieldFour: new Buffer "value 4"
testFile: fs.createReadStream("./lower.txt")
,
headers: {"user-agent": "bhttp/test POST multipart"}
onUploadProgress: (completedBytes, totalBytes, request) ->
console.log "#{completedBytes / totalBytes * 100}%", completedBytes, totalBytes
.then (response) ->
console.log "POST multipart", formatLine(response.body)
.then ->
# GET large file
console.log "Starting download..."
bhttp.get "http://posttestserver.com/files/2015/04/06/f_00.16.102133822615",
headers: {"user-agent": "bhttp/test GET large file"}
stream: true
.then (response) ->
#setTimeout (->), 10000
console.log "Got response"
response.on "progress", (completedBytes, totalBytes, request) ->
console.log "#{completedBytes / totalBytes * 100}%", completedBytes, totalBytes
response.pipe(devNull())
response.on "end", ->
console.log "Completed response download"