stockfinder
Version:
Query IEX Cloud using an API key to get stock prices
58 lines (57 loc) • 1.7 kB
JavaScript
;
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;