UNPKG

stockfinder

Version:

Query IEX Cloud using an API key to get stock prices

58 lines (57 loc) 1.7 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")); const ats = (arr) => { let str = ''; for (let i = 0; i < arr.length; i += 1) { if (i !== 0) { str += `,${arr[i]}`; } else { str += arr[i]; } } return str; }; const tokenString = (accessKey) => { const token = `token=${accessKey}`; return token; }; const getStock = async ({ ticker, apiKey }) => { const url = `https://cloud.iexapis.com/stable/stock/${ticker}/batch?types=quote&range=1m&${tokenString(apiKey)}`; if (typeof apiKey !== 'string') throw new Error('API key not defined'); console.log(url); const stock = axios_1.default .get(url) .then(res => { const { data } = res; const { quote } = data; return quote; }) .catch(err => { throw new Error(err); }); return stock; }; exports.getStock = getStock; const getStocks = async ({ tickers, apiKey }) => { const stocks = ats(tickers); const url = `https://cloud.iexapis.com/stable/stock/market/batch?symbols=${stocks}&types=quote&range=1m&${tokenString(apiKey)}`; if (typeof apiKey !== 'string') throw new Error('API key is not defined'); const stock = axios_1.default .get(url) .then(res => { const { data } = res; return data; }) .catch(err => { throw new Error(err); }); return stock; }; exports.getStocks = getStocks;