@vectry/node
Version:
Node.js SDK for the Vectry Analytics, providing transport and context integration.
55 lines (54 loc) • 1.59 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.HttpTransport = void 0;
const axios_1 = __importDefault(require("axios"));
/**
* HttpTransport
*
* Concrete transport for Node.js environments using Axios.
*/
class HttpTransport {
constructor(config) {
this.client = axios_1.default.create({
baseURL: config.baseUrl,
timeout: 10000,
headers: {
'Content-Type': 'application/json',
Accept: 'application/json',
},
});
}
async request(method, path, payload) {
const config = {
method,
url: path,
};
if (['GET', 'DELETE'].includes(method) && payload) {
config.params = payload;
}
else if (payload) {
config.data = payload;
}
const response = await this.client.request(config);
return response.data;
}
async get(path, payload) {
return this.request('GET', path, payload);
}
async post(path, payload) {
return this.request('POST', path, payload);
}
async put(path, payload) {
return this.request('PUT', path, payload);
}
async patch(path, payload) {
return this.request('PATCH', path, payload);
}
async delete(path, payload) {
return this.request('DELETE', path, payload);
}
}
exports.HttpTransport = HttpTransport;