0.0.6 • Published 6 years ago

urequest v0.0.6

Weekly downloads
1
License
ISC
Repository
-
Last release
6 years ago

urequest

npm Travis

Install

$ npm install urequest

Basic Usage

const { URequest } = require("urequest");
const u = new URequest();

u.request("https://www.google.com")
   .then(result => {
   	  console.log(result);
   })
   .catch(error => {
   	  console.error(error.statusCode);
   	  console.error(error.body);
   });

Options

PropertyDescriptionExampleDefault
methodHTTP MethodPOSTGET
portDestination port on Server808080
headersHTTP Headers{"a-header": "value"}{}
qsQuery string parameters?a=b&b=1,2,3{}
uriStandard URIhttps://www.a.com:8080
bodyHTTP BodyBuffer, string or object
pathPath will be appended to the uri path/path/to/data

Examples

Catch Errors

const options = { uri: "http://localhost:8123/error", json: true };

u.request(options)
   .then(done)
   .catch(({ body, statusCode }) => {
      expect(statusCode).to.be.a("number");
      expect(body).to.be.an("object");
   })

Post JSON

const body = {
   message: "hi"
};

const options = {
   method: "POST",
   uri: "http://my-api/echo",
   body,
   json: true
};

u.request(options)
   .then(result => ...

Overwriting URI Components

const options = {
   uri: "http://my-api:8080/echo",
   port: 80,
   path: "/echo",
   qs: {
      utms: "abc123",
      arr: [1,2,3]
   }
   json: true
};

// Will resolve http://my-api:80/echo/echo?utms=abc123&arr=1,2,3

Neutron

Neutron is a compression wrapper library built around node zlib and streams API's. It provides a set of simple interface methods supporting both gzip and deflate.

Compress and Decompress

const { Neutron } = require("urequest");
const inputString = "compress me!"
const buffer = Buffer.from(inputString);
const encoding = "gzip";

const compressedStream = Neutron.compress(buffer, encoding);
const decompressedStream = Neutron.decompress(compressedStream, encoding);

Neutron.flattenStream(decompressedStream)
   .then(output => {
      expect(output.toString()).to.equal(inputString);
      done();
   })

URest Middleware and Interceptors

// server

const { Rest, JsonBodyParser } = require("urest");
const { Neutron } = require("urequest");
const app = new Rest();

app.pre(Neutron.middleware());
app.pre(JsonBodyParser.middleware());
app.post("/echo", (req, res) => res.send(req.body));
app.native().listen(1234);


// client

const { URequest } = require("urequest");
const u = new URequest();

const body = {
   message: "hi"
};

const options = {
   method: "POST",
   uri: "http://localhost:1234/echo",
   body,
   json: true,
   gzip: true
};

u.request(options)
   .then(result => {
   	  expect(result).to.deep.equal(body);
   })
0.0.6

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago

0.0.1

6 years ago

7.5.3

8 years ago