"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.LCDClient = void 0;
const axios_1 = __importDefault(require("axios"));
class LCDClient {
restEndpoint;
instance;
constructor({ restEndpoint }) {
this.restEndpoint = restEndpoint.endsWith('/') ? restEndpoint : `${restEndpoint}/`;
this.instance = axios_1.default.create({
baseURL: this.restEndpoint,
timeout: 10000,
headers: {}
});
this.get = this.get.bind(this);
this.post = this.post.bind(this);
}
get(endpoint, opts = {}) {
return new Promise(async (resolve, reject) => {
try {
const response = await this.instance.get(endpoint, {
timeout: 10000,
...opts
});
if (response && response.data) {
resolve(response.data);
}
else {
reject('no response data');
}
}
catch (e) {
return reject(e);
}
});
}
post(endpoint, body = {}, opts = {}) {
return new Promise(async (resolve, reject) => {
try {
const response = await this.instance.post(endpoint, body, {
timeout: 10000,
...opts
});
if (response && response.data) {
resolve(response.data);
}
else {
reject('no response data');
}
}
catch (e) {
return reject(e);
}
});
}
}
exports.LCDClient = LCDClient;