UNPKG

@airnub/unusualwhales-api-client

Version:

A client library for interacting with the UnusualWhales API, written in TypeScript

37 lines (36 loc) 1.61 kB
"use strict"; // 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;