wiki/examples/js/coinone-fetch-tickers.md
import { nice as ansi } from 'ansicolor';
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 ()
}) ()