UNPKG

@qrvey/fetch

Version:

![install size](https://packagephobia.now.sh/badge?p=%40qrvey%2Ffetch) ![coverage](https://img.shields.io/badge/unit_test_coverage-93%25-brightgreen)

59 lines (40 loc) 2.65 kB
# @qrvey/fetch ![install size](https://packagephobia.now.sh/badge?p=%40qrvey%2Ffetch) ![coverage](https://img.shields.io/badge/unit_test_coverage-93%25-brightgreen) **@qrvey/fetch** is a lightweight and reliable library for making RESTful requests in Node.js applications. It uses the native `fetch` library (Node.js 18+), avoiding the need for external dependencies. ## Installation You can install the **@qrvey/fetch** package via npm. Run the following command in your terminal: ```bash npm install @qrvey/fetch ``` ## API Documentation ### Available Methods - `get(endpoint: string, options: IHttpActionOptions): Promise<any>`: Performs an HTTP GET request. - `post(endpoint: string, body: unknown, options: IHttpActionOptions): Promise<any>`: Performs an HTTP POST request. - `put(endpoint: string, body: unknown, options: IHttpActionOptions): Promise<any>`: Performs an HTTP PUT request. - `patch(endpoint: string, body: unknown, options: IHttpActionOptions): Promise<any>`: Performs an HTTP PATCH request. - `delete(endpoint: string, body: unknown, options: IHttpActionOptions): Promise<any>`: Performs an HTTP DELETE request. ### IHttpActionOptions - `headers` (object): An optional object containing custom headers to include in the request. It allows you to set specific HTTP headers like Authorization, Content-Type, etc. - `useApiKey` (boolean): If set to true, the request will include an API key in the headers. The API key is retrieved from the **process.env.API_KEY** environment variable. - `baseDomain` (string): An optional base domain to override the default domain used in the request URL. If not provided, the value from the **process.env.DOMAIN** environment variable will be used as base domain. - `privateDomain` (boolean): If set to true, the request will use the private domain specified in the **process.env.PRIVATE_DOMAIN** environment variable instead of the base domain. - `queryParameters` (Record<string, string | string[]>): An optional object representing query parameters to include in the request URL. It allows you to pass multiple query parameters as key-value pairs, with support for arrays to represent multiple values for a single key. ## Example Usage ```js const options: IHttpActionOptions = { headers: { 'Authorization': 'Bearer BEARER_TOKEN_VALUE', }, useApiKey: true, baseDomain: 'https://api.example.com', privateDomain: false, queryParameters: { filter: 'active', page: '1' } }; FetchService.get('/endpoint', options) .then(response => console.log(response)) .catch(error => console.error('Error:', error)); ```