1.0.7 • Published 2 years ago

@bakerwebsolutions/hermes v1.0.7

Weekly downloads
-
License
BSD 3-Clause
Repository
github
Last release
2 years ago

Hermes v1.0.5

Node.js CI

Lightweight fetch wrapper built with typescript.

Node v17.5.0+ is recommended as this module uses fetch. If you are using < v18.0 you must use --experimental-fetch.

If you are using a Node version below v17.5.0+ Check the Using Options example for how to use a custom fetch which will allow you to use older versions of Node.

Installation

npm install @bakerwebsolutions/hermes

Examples

Get Request

import hermes from '@bakerwebsolutions/hermes'

const getRequestResponse = hermes.get('https://reqres.in/api/users?page=2)

console.log(getRequestResponse)

Post Request

import hermes from '@bakerwebsolutions/hermes'

const postRequestResponse = hermes.post('https://reqres.in/api/users', {
    data: {
        name: 'John',
        job: 'driver'
    }
})

console.log(postRequestResponse)

Using Options

import hermes from '@bakerwebsolutions/hermes'
import fetch from 'node-fetch'

const data = {
    name: 'John',
    job: 'driver'
}
const options = {
    headers: 'Content-Type': 'application/json', // Default Content-Type header is application/json
    fetch
}
const postRequestResponse = hermes.post('https://reqres.in/api/users', options, {data})

Global Configuration

To set options like headers or fetch globally you can create a file and import the Hermes class

import { Hermes } from '@bakerwebsolutions/hermes'

const options = {
  headers: [{ name: 'Content-Type', value: 'application/json' }, { name: 'Authorization', value: 'token'}]
}

const hermes = new Hermes(options)

export default hermes

Then use your custom hermes configuration just replace the path.

import hermes from '<path/to/custom/hermes>'

const getUsersResponse = hermes.get('https://reqres.in/api/users')

console.log(getUsersResponse)

Using With Typescript

Global Headers Configuration

import { Hermes, type Options } from '@bakerwebsolutions/hermes'

const options: Options = {
  headers: [
    { name: 'Content-Type', value: 'application/json' },
    { name: 'Authorization', value: 'token'}
  ]
}

const hermes = new Hermes(options)

export default hermes

Get Request

import hermes from '@bakerwebsolutions/hermes'
import type { GetUserResponse } from './types';

hermes.get<GetUserResponse>('https://reqres.in/api/users')

Post Request

import hermes from '@bakerwebsolutions/hermes'

type Data = {
  name: string;
  job: string;
};

const data = {
    name: 'mobius',
    job: 'secret',
};

const postResponse = await hermes.post<CreateUserResponse, Data>('https://reqres.in/api/users', { data });

console.log(postResponse)

Development

Clone the repository

git clone https://github.com/bakerweb/hermes.git

Install dependencies

npm install

Run Tests

npm run test

1.0.7

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago