@airnub/unusualwhales-api-client
Version:
A client library for interacting with the UnusualWhales API, written in TypeScript
37 lines (36 loc) • 1.61 kB
JavaScript
;
// Copyright (c) 2023 Airnub Technologies LTD. All rights reserved.
// Licensed under the MIT License. See LICENSE file in the project root for full license information.
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ApiClient = void 0;
const axios_1 = __importDefault(require("axios"));
const StockApi_1 = require("./StockApi");
const MarketApi_1 = require("./MarketApi");
const ScreenerApi_1 = require("./ScreenerApi");
class ApiClient {
constructor(config) {
if (!config.token) {
throw new Error('Authentication token is required to initialize ApiClient.');
}
const defaultHeaders = {
'Authority': 'api.unusualwhales.com',
'Accept': 'application/json',
'Accept-Language': 'en-GB,en-US;q=0.9,en;q=0.8',
'Authorization': `Bearer ${config.token}`,
'Sec-Fetch-Mode': 'cors',
'Accept-Encoding': 'gzip, deflate, br',
};
const headers = Object.assign(Object.assign({}, defaultHeaders), config.headers);
this.axiosInstance = axios_1.default.create({
baseURL: config.baseUrl || 'https://api.unusualwhales.com',
headers,
});
this.stock = new StockApi_1.StockApi(this.axiosInstance);
this.market = new MarketApi_1.MarketApi(this.axiosInstance);
this.screener = new ScreenerApi_1.ScreenerApi(this.axiosInstance);
}
}
exports.ApiClient = ApiClient;