@accounter/server
Version:
34 lines (33 loc) • 1.37 kB
TypeScript
import DataLoader from 'dataloader';
import { CoinMarketCapProvider } from '../../app-providers/coinmarketcap.js';
import { DBProvider } from '../../app-providers/db.provider.js';
import { Currency } from '../../../__generated__/types.js';
import { IGetRateByCurrencyAndDateResult } from '../types.js';
export declare class CryptoExchangeProvider {
private context;
private dbProvider;
private coinMarketCap;
cache: {
get: <T>(key: import("node-cache").Key) => T | undefined;
set: {
<T>(key: import("node-cache").Key, value: T, ttl: number | string): boolean;
<T>(key: import("node-cache").Key, value: T): boolean;
};
delete: (keys: import("node-cache").Key | import("node-cache").Key[]) => number;
clear: () => void;
};
fiatCurrency: Currency;
constructor(context: GraphQLModules.Context, dbProvider: DBProvider, coinMarketCap: CoinMarketCapProvider);
private getCryptoExchangeRatesFromDB;
private addRates;
private addCryptoRateLoader;
private getCryptoCurrenciesBySymbol;
private getCryptoCurrenciesBySymbolLoader;
private getCryptoExchangeRatesFromAPI;
getCryptoExchangeRateLoader: DataLoader<{
cryptoCurrency: string;
date: Date;
against?: Currency;
}, IGetRateByCurrencyAndDateResult, string>;
clearCache(): void;
}