watchtower-node-sdk
Version:
A TypeScript Node.js SDK for the Watchtower API, providing API key management, connection string generation, and more
31 lines (25 loc) • 1.24 kB
text/typescript
import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
export abstract class BaseEndpoint {
protected client: AxiosInstance;
protected basePath: string;
constructor(client: AxiosInstance, basePath: string) {
this.client = client;
this.basePath = basePath;
}
protected async get<T = any>(path: string, config?: AxiosRequestConfig): Promise<T> {
const response: AxiosResponse<T> = await this.client.get(`${this.basePath}${path}`, config);
return response.data;
}
protected async post<T = any>(path: string, data?: any, config?: AxiosRequestConfig): Promise<T> {
const response: AxiosResponse<T> = await this.client.post(`${this.basePath}${path}`, data, config);
return response.data;
}
protected async put<T = any>(path: string, data?: any, config?: AxiosRequestConfig): Promise<T> {
const response: AxiosResponse<T> = await this.client.put(`${this.basePath}${path}`, data, config);
return response.data;
}
protected async delete<T = any>(path: string, config?: AxiosRequestConfig): Promise<T> {
const response: AxiosResponse<T> = await this.client.delete(`${this.basePath}${path}`, config);
return response.data;
}
}