wiki/examples/js/coinone-fetch-tickers.md
// @NO_AUTO_TRANSPILE
import ololog from 'ololog';
import asTable from 'as-table';
import ccxt from '../../js/ccxt.js';
const { noLocate } = ololog;
const log = noLocate;
const table = asTable.configure({
delimiter: ' | '.dim,
right: true,
});
const exchange = new ccxt.coinone({
'verbose': process.argv.includes('--verbose'),
});
let printTickersAsTable = function (exchange, tickers) {
log(exchange.id.green, exchange.iso8601(exchange.milliseconds()));
log('Fetched', Object.values(tickers).length.toString().green, 'tickers:');
log(table(ccxt.sortBy(Object.values(tickers), 'symbol', false)));
};
async function fetchAllAndPrint() {
const tickers = await exchange.fetchTickers();
log('---------------------------------------- fetchTickers ----------------------------------------');
printTickersAsTable(exchange, tickers);
}
async function fetchOneByOneAndPrint() {
const markets = await exchange.loadMarkets();
const symbols = Object.keys(markets);
const tickers = [];
log('---------------------------------------- fetchTicker (one by one) ----------------------------------------');
for (let i = 0; i < symbols.length; i++) {
const ticker = await exchange.fetchTicker(symbols[i]);
tickers.push(ticker);
log(`${i + 1} / ${symbols.length}`);
log('\u001b[1A'.repeat(2)); // cursor up
}
printTickersAsTable(exchange, tickers);
}
(async () => {
await fetchAllAndPrint();
log('\n');
await fetchOneByOneAndPrint();
})();