@open-oracle-origami/origami-js-mill-coingecko
Version:
Open Oracle Origami Node JS CoinGecko Mill
31 lines (30 loc) • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const coingecko_api_v3_1 = require("coingecko-api-v3");
const origami_js_sdk_1 = require("@open-oracle-origami/origami-js-sdk");
exports.default = ({ press, interval = 5000, timeout = 10000, autoRetry = true, simplePriceParams, apiKey, }) => {
let stop = false;
const client = new coingecko_api_v3_1.CoinGeckoClient({
timeout,
autoRetry,
}, apiKey);
const params = {
...simplePriceParams,
ids: Array.isArray(simplePriceParams.ids)
? simplePriceParams.ids.join(',')
: simplePriceParams.ids,
vs_currencies: Array.isArray(simplePriceParams.vs_currencies)
? simplePriceParams.vs_currencies.join(',')
: simplePriceParams.vs_currencies,
};
const pressAllIds = async () => {
const res = await client.simplePrice(params);
Object.entries(res).forEach(([sku, data]) => {
press(sku, data);
});
};
void origami_js_sdk_1.utils.poll(pressAllIds, interval, () => stop);
return () => {
stop = true;
};
};