UNPKG

polygon.io

Version:

Isomorphic Javascript client for Polygon.io Stocks, Forex, and Crypto APIs

96 lines (89 loc) 2.88 kB
import { auth } from "../transport/request"; import { lastQuoteForCurrencyPair, ILastQuoteForCurrencyPair } from "./lastQuoteForCurrencyPair"; import { historicForexTicks, IHistoricForexTicksQuery, IHistoricForexTicksFormatted } from "./historicForexTicks"; import { forexAggregates, forexGroupedDaily, forexPreviousClose } from "./aggregates"; import { forexSnapshotAllTickers, forexSnapshotGainersLosers, IForexSnapshotAllTickersResponseFormatted } from "./snapshots"; import { realTimeCurrencyConversion, IRealTimeConversionQuery, IRealTimeConversion } from "./realTimeCurrencyConversion"; import { IAggregateQuery, IAggResponseFormatted } from "../stocks/aggregates"; export { ILastQuoteForCurrencyPair } from "./lastQuoteForCurrencyPair"; export { IHistoricForexTicksQuery, IHistoricForexTicksFormatted } from "./historicForexTicks"; export { IRealTimeConversionQuery, IRealTimeConversion } from "./realTimeCurrencyConversion"; export { IAggregateQuery, IAggResponseFormatted } from "../stocks/aggregates"; export { IForexSnapshotAllTickersResponseFormatted } from "./snapshots"; export interface IForexClient { lastQuoteForCurrencyPair: ( from: string, to: string ) => Promise<ILastQuoteForCurrencyPair>; historicTicks: ( from: string, to: string, date: string, query: IHistoricForexTicksQuery ) => Promise<IHistoricForexTicksFormatted>; realTimeCurrencyConversion: ( from: string, to: string, query: IRealTimeConversionQuery ) => Promise<IRealTimeConversion>; previousClose: ( ticker: string, query?: IAggregateQuery ) => Promise<IAggResponseFormatted>; aggregates: ( ticker: string, multiplier: number, timespan: string, from: string, to: string, query?: IAggregateQuery ) => Promise<IAggResponseFormatted>; groupedDaily: ( locale: string, market: string, date: string, query?: IAggregateQuery ) => Promise<IAggResponseFormatted>; snapshotAllTickers: () => Promise<IForexSnapshotAllTickersResponseFormatted>; snapshotGainersLosers: ( direction?: string ) => Promise<IForexSnapshotAllTickersResponseFormatted>; } export const forexClient = (apiKey: string, apiBase = "https://api.polygon.io"): IForexClient => ({ lastQuoteForCurrencyPair: auth(apiKey, lastQuoteForCurrencyPair, apiBase), historicTicks: auth(apiKey, historicForexTicks, apiBase), realTimeCurrencyConversion: auth(apiKey, realTimeCurrencyConversion, apiBase), // aggregates previousClose: auth(apiKey, forexPreviousClose, apiBase), aggregates: auth(apiKey, forexAggregates, apiBase), groupedDaily: auth(apiKey, forexGroupedDaily, apiBase), // snapshots snapshotAllTickers: auth(apiKey, forexSnapshotAllTickers, apiBase), snapshotGainersLosers: auth(apiKey, forexSnapshotGainersLosers, apiBase) }); export default forexClient;