'use strict'; const blessed = require('neo-blessed'); const argv = require('./argv'); const { renderReleases, renderScene } = require('./tui/render'); const fetchReleases = require('./fetch-releases'); const fetchScene = require('./fetch-scene'); function initScreen() { const screen = blessed.screen({ title: `traxxx ${new Date().getTime()}`, smartCSR: true, mouse: false, }); screen.enableInput(); screen.key(['escape', 'q', 'C-c'], () => { screen.render(); screen.destroy(); }); return screen; } function getMethod() { if (argv.scene) { return { fetch: () => fetchScene(argv.scene), render: renderScene, }; } return { fetch: () => fetchReleases(), render: renderReleases, }; } async function init() { const screen = argv.render && initScreen(); try { const method = getMethod(); const result = await method.fetch(); if (argv.render) { method.render(result, screen); } } catch (error) { console.error(error.message); } } init();