@qrvey/fetch
Version:
 
59 lines (40 loc) • 2.65 kB
Markdown


**@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.
You can install the **@qrvey/fetch** package via npm. Run the following command in your terminal:
```bash
npm install @qrvey/fetch
```
- `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.
- `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.
```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));
```