Skip to content

Commit

Permalink
Refactor aggregated provider; Fix export
Browse files Browse the repository at this point in the history
  • Loading branch information
maxima-net committed Aug 23, 2022
1 parent d27b245 commit 25e4282
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 2 deletions.
5 changes: 5 additions & 0 deletions src/exchange/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,8 @@ export { InMemoryOrderBookProvider } from './orderBookProvider/index';
export type { ExchangeSymbolsProvider, ManagedExchangeSymbolsProvider } from './exchangeSymbolsProvider/index';
export type { OrderBookProvider, ManagedOrderBookProvider } from './orderBookProvider/index';
export type { ExchangeService, ExchangeServiceEvents } from './exchangeService';

export {
type RatesProvider, type AggregatedRatesProvider,
BinanceRatesProvider, KrakenRatesProvider, MixedRatesProvider,
} from './ratesProvider/index';
1 change: 1 addition & 0 deletions src/exchange/ratesProvider/aggregatedRatesProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@ import type { Currency } from '../../common';

export interface AggregatedRatesProvider {
getPrice(quoteCurrency: Currency['id'], baseCurrency: Currency['id'], provider?: string): Promise<BigNumber | undefined>;
getAvailableProviders(): string[];
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export class MixedRatesProvider implements AggregatedRatesProvider {
) { }

async getPrice(quoteCurrency: Currency['id'], baseCurrency: Currency['id'], provider?: string): Promise<BigNumber | undefined> {
const providers = this.getAvailableProviders(provider);
const providers = this.getSelectedProviders(provider);
const pricePromises = providers.map(p => p.getPrice(quoteCurrency, baseCurrency));
const pricePromiseResults = await Promise.allSettled(pricePromises);

Expand All @@ -21,7 +21,11 @@ export class MixedRatesProvider implements AggregatedRatesProvider {
return undefined;
}

private getAvailableProviders(provider?: string): RatesProvider[] {
getAvailableProviders(): string[] {
return [...this.providersMap.keys()];
}

private getSelectedProviders(provider?: string): RatesProvider[] {
if (!provider)
return [...this.providersMap.values()];

Expand Down

0 comments on commit 25e4282

Please sign in to comment.