@qrvey/fetch
@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:
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
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));