http.min

2.1.0 • Public • Published

Minimal HTTP client library

NPM Build status Coverage Status js-standard-style Dependencies devDependencies Greenkeeper badge

Minimal simple HTTP client with promises.
Supports HTTP, HTTPS and common methods GET, POST, PUT, PATCH, DELETE.
Includes timeout, query string, form data, JSON helpers.
No dependencies, under 100 SLOC, 100% code coverage.

Install

npm install --save http.min

Examples

GET

var http = require('http.min')
http('https://httpbin.org/get').then(function (result) {
  console.log('Code: ' + result.response.statusCode)
  console.log('Response: ' + result.data)
})

POST

JSON

var http = require('http.min')
http.post('https://httpbin.org/post', {data: 'hello'}).then(function (result) {
  console.log('Code: ' + result.response.statusCode)
  console.log('Response: ' + result.data)
})

Form urlencoded

data parameter is a string.

var http = require('http.min')
http.post('https://httpbin.org/post', 'data=hello').then(function (result) {
  console.log('Code: ' + result.response.statusCode)
  console.log('Response: ' + result.data)
})

JSON

var http = require('http.min')
http.json('https://httpbin.org/get').then(function (data) {
  console.log('Response:', data.url)
})

Advanced

Functions also accept http.request options object.

var http = require('http.min')
var options = {
  protocol: 'https:',
  hostname: 'httpbin.org',
  path: '/get',
  headers: {
    'User-Agent': 'Node.js http.min'
  }
}
http.json(options).then(function (data) {
  console.log('Response:', data)
})

Helpers

var http = require('http.min')
var options = {
  uri: 'https://httpbin.org/post',
  // timeout in ms
  timeout: 1000,
  // query string helper
  query: {
    hello: 'test'
  },
  // form urlencoded
  form: {
    test: 'ok'
  },
  // handle JSON data
  json: true
  // send JSON data and expect JSON response
  json: {
    this: 'is data'
  },
  request: function (req) {
    // hook to manipulate request before being sent
    // instace of node http.ClientRequest
    req.setTimeout(2000)
    req.on('upgrade', ...)
  }
}
http.post(options).then(function (result) {
  console.log('Code: ' + result.response.statusCode)
  console.log('Response:', result.data)
})

License

ISC

Package Sidebar

Install

npm i http.min

Weekly Downloads

10

Version

2.1.0

License

ISC

Unpacked Size

7.42 kB

Total Files

3

Last publish

Collaborators

  • matjaz