32 lines
931 B
JavaScript
32 lines
931 B
JavaScript
// super-agent with default json and csrf wrappers
|
|
// Also has a FRP api (using flyd) rather than the default '.end'
|
|
// Every call to .perform() returns a flyd stream
|
|
|
|
var request = require('superagent')
|
|
var flyd = require("flyd")
|
|
|
|
var wrapper = {
|
|
post: function() {
|
|
return injectFlyd(request.post.apply(this, arguments).set('X-CSRF-Token', window._csrf).type('json'))
|
|
}
|
|
, put: function() {
|
|
return injectFlyd(request.put.apply(this, arguments).set('X-CSRF-Token', window._csrf).type('json'))
|
|
}
|
|
, del: function() {
|
|
return injectFlyd(request.del.apply(this, arguments).set('X-CSRF-Token', window._csrf).type('json'))
|
|
}
|
|
, get: function() {
|
|
return injectFlyd(request.get.apply(this, arguments).accept('json'))
|
|
}
|
|
}
|
|
|
|
function injectFlyd(req) {
|
|
req.perform = function() {
|
|
var $stream = flyd.stream()
|
|
req.end(function(err, resp) { $stream(resp) })
|
|
return $stream
|
|
}
|
|
return req
|
|
}
|
|
|
|
module.exports = wrapper
|