UNPKG

ym-api

Version:

A Node.js wrapper for the Yandex.Music API (Unofficial) http://music.yandex.ru

48 lines (47 loc) 1.51 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const axios_1 = __importDefault(require("axios")); class HttpClient { async _sendRequestAxios(method, request) { const axiosRequest = { method, url: request.getURL(), headers: request.getHeaders(), data: {}, }; if (["PUT", "POST", "DELETE", "PATCH"].includes(method.toUpperCase())) { axiosRequest.data = request.getBodyDataString(); axiosRequest.headers = { ...axiosRequest.headers, ...{ "content-type": "application/x-www-form-urlencoded" }, }; } try { const { data } = await axios_1.default(axiosRequest); if (data.result) { return data.result; } else { return data; } } catch (e) { console.error({ status: e.response.status, headers: e.response.headers, data: e.response.data, }); throw new Error(`Request failed: ${e.message}`); } } get(request) { return this._sendRequestAxios("get", request); } post(request) { return this._sendRequestAxios("post", request); } } exports.default = HttpClient;