UNPKG

@vectry/node

Version:

Node.js SDK for the Vectry Analytics, providing transport and context integration.

55 lines (54 loc) 1.59 kB
"use strict"; 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;