0.0.19 • Published 1 year ago

hattery v0.0.19

Weekly downloads
68
License
ISC
Repository
github
Last release
1 year ago

hatteryjs

Hattery (mad, of course) is a library for making HTTP requests. It provides a simple fluent interface based around immutable objects. This javascript version is adapted from the initial Java version.

// Requests are immutable, start with the base object
import {HTTP} from "hattery";

// A GET request
const thing1 = await HTTP
	.url("http://example.com/1")
	.param("foo", "bar")
	.fetch().json();

// A POST request as application/x-www-form-urlencoded 
const thing2 = await HTTP
	.url("http://example.com/2")
	.POST()
	.param("foo", "bar")
	.fetch().json();

// A POST request with a JSON body
const thing3 = await HTTP
	.url("http://example.com/3")
	.POST()
	.body({"foo":"bar"})
	.fetch().json();

// Some extra stuff you can set
const things4 = await HTTP
	.transport(new MyCustomTransport())
	.url("http://example.com")
	.path("/4")
	.path("andMore")	// adds '/' between path elements automatically
	.header("X-Whatever", "WHATEVER")
	.basicAuth("myname", "mypassword")
	.param("foo", "bar")
	.timeout(1000)
	.retries(3)
	.preflightAndThen(req => req.header("X-Auth-Signature", sign(req)))
	.fetch().json();

Install from npm:

$ npm install hattery

Some extra features:

  • path() calls append to the url; url() calls replace the whole url.
  • Content-Type determines what is to be done with the body() and param()s (if either are present).
  • Unspecified Content-Type is inferred:

    • If there is a body(), application/json is assumed. Any param()s will become query parameters.
    • If POST() and no body(), parameters will be submitted as application/x-www-form-urlencoded
      • ...unless params are submitted as queryParam(), which forces them onto the query string.
0.0.19

1 year ago

0.0.17

3 years ago

0.0.18

3 years ago

0.0.16

3 years ago

0.0.15

3 years ago

0.0.14

3 years ago

0.0.13

4 years ago

0.0.12

4 years ago

0.0.11

4 years ago

0.0.3

4 years ago

0.0.10

4 years ago

0.0.9

4 years ago

0.0.8

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago