24

GitHub - vaheqelyan/karin: An elegant promise based HTTP client for the browser...

 5 years ago
source link: https://github.com/vaheqelyan/karin
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md

Karin

68747470733a2f2f7472617669732d63692e6f72672f7661686571656c79616e2f6b6172696e2e7376673f6272616e63683d6d6173746572 68747470733a2f2f696d672e736869656c64732e696f2f6e706d2f762f6b6172696e2e737667 68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6e6f64652d3e3d342e392e312d627269676874677265656e2e737667 68747470733a2f2f696d672e736869656c64732e696f2f62756e646c6570686f6269612f6d696e7a69702f6b6172696e2e7376673f7374796c653d666c61742d737175617265

68747470733a2f2f7265732e636c6f7564696e6172792e636f6d2f646d74726b33796e732f696d6167652f75706c6f61642f715f6175746f2f76313534363639363838362f636172626f6e5f345f77306a6471722e706e67

About

Template literals are very useful. A more advanced form of template literals are tagged templates. Karin works in all major browsers (Chrome, Firefox, IE, Edge, Safari, and Opera). Modern browsers and JavaScript engines support tag templates. It is also compatible with Node.js.Package uses node-fetch for node.js and whatwg-fetch for client javascript

Note Http Request not yet made (node.js)

Installataion

via NPM

npm i karin

via CDN (unpkg)

https://unpkg.com/karin@latest/build/browser/index.umd.js

UMD library exposed as Karin

const { get, post } = Karin;

Import paths

import { get, post, karin } from "karin/build/node";
import { get, post, karin } from "karin/build/browser/index.umd.js";

Make a get request

The response data - By default, if the response data type is Application/JSON, the response will be parsed into JSON

import { get } from "karin";

get`https://api.github.com/repos/vaheqelyan/karin`
  .then(res => console.log(res))
  .catch(err => console.error(err));

Samples

const user = "vahe";
const count = 123;
const filter = true;

get`http://domain.com/user${user}`;
// http://domain.com/user/vahe
get`http://domain.com/user${user}filter${filter}count${count}`;
// http://domain.com/user/vahe/filter/true/count/123
get`http://domain.com/path${{
  user,
  filter,
  count
}}`;
// http://domain.com/path/user/vaheqelyan/filter/true/count/123

const sub = "api.";
get`http://${sub}domain/${{ foo: "bar" }}`;
// Also works http://api.domain.com/foo/bar

get`htpp://domain.com/search/?${{ text: "a", lr: 10262 }}`;
// http://domain.com/search/?text=your%20query&lr=10262

Make a post request

The post data - If the data is an object, it will be stringified

The response data - By default, if the response data type is application/json, the response will be parsed into JSON

Note that the data to be sent is the last item.

import { post } from "karin";

const user = {
  username: "vaheqelyan",
  password: "XXXX"
};

post`http://localhost:3000/register ${user}`
  .then(res => console.log(res))
  .catch(err => console.log(err));

Options and Parameters

--json --blob --arrbuf --text

get`<URL> --text`;
// •> ▶︎ Promise {<pending>}

--content-json ― application/json

--content-x - application/x-www-form-urlencoded

WIP...

Set Request Header

post({ headers: { XXX: "xxx" } })`<URL> ${{}}`;

Set URL origin

const github = get({ origin: "https://api.github.com" });
github`/users/vaheqelyan`;
// •> ▶︎ Promise {<pending>}

Instance

import { karin } from "karin";

const domain = karin.create({
  origin: "...",
  headers: {
    /**/
  }
});

domain.post``;
domain.get``;

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK