asynquence-request
Advanced tools
Comparing version 1.0.0 to 1.0.2
@@ -34,3 +34,3 @@ // Generated by CoffeeScript 1.9.2 | ||
} | ||
if (response.statusCode >= 300) { | ||
if (response.statusCode >= 400) { | ||
e = new Error; | ||
@@ -37,0 +37,0 @@ e.name = response.statusCode + " Error"; |
{ | ||
"name": "asynquence-request", | ||
"version": "1.0.0", | ||
"version": "1.0.2", | ||
"description": "Provides 'request' as plugin for asynquence.", | ||
@@ -5,0 +5,0 @@ "main": "index", |
# asynquence-request | ||
Provides the popular Node library *request* as a plugin for *asynquence*. | ||
This is a Node.js wrapper / plugin that makes using [request][request] easier with the [*asynquence*][asynquence] library. | ||
If you haven't heard of the *asynquence* library, you should [check it out][asynquence2]. It's like Promises on steroids. | ||
[asynquence]: http://www.npmjs.org/package/asynquence | ||
[request]: http://www.npmjs.org/package/request | ||
[asynquence2]: http://davidwalsh.name/asynquence-part-1 | ||
## Example usage | ||
In order to avoid depending on any specific versions of *request* or *asyncquence*, this module does not directly depend on them. (To be technical, they are `peerDependencies`.) You require them yourself and pass them into the module function like so: | ||
```coffeescript | ||
ASQ = require 'asynquence' | ||
request = require 'request' | ||
require('asynquence-request')(ASQ, request) | ||
``` | ||
This extends `ASQ` with the following plugins which directly correspond to their *request* counterpart: `get`, `head`, `post`, `put`, `patch`, `del`. Here's a fictional example usage of a REST API: | ||
```coffeescript | ||
ASQ = require 'asynquence' | ||
request = require 'request' | ||
# We can pass in a modified version of 'request' such as the kind returned by 'request.defaults' | ||
req = request.defaults | ||
baseUrl: 'http://petstore.swagger.io/v2/' | ||
json: true | ||
headers: 'Authorization': 'Bearer special-key' | ||
require('asynquence-request')(ASQ, req) | ||
ASQ() | ||
# You can either pass in a request options literal... | ||
.post | ||
url: 'pet' | ||
json: | ||
id: 42 | ||
name: "doggie" | ||
.val (response, body) -> | ||
console.log "Created pet with id: #{body.id}" | ||
return body.id | ||
# Or you can pass in a function that will return a request options literal. | ||
.del (id) -> "pet/#{id}" | ||
# Every request returns two parameters: response and body | ||
.then (done, response, body) -> | ||
console.log "HTTP Status: #{response.statusCode}" | ||
setTimeout done, 1000 | ||
.get "pet/42" | ||
# HTTP Errors (status codes >= 400) conveniently throw an error for you | ||
.or (err) -> | ||
if err.name is "404 Error" | ||
console.log "Who deleted Fido?!?!" | ||
console.log err.stack | ||
``` | ||
## TODO | ||
- cookie jar | ||
- more unit tests |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
7158
7
58