@kronodeus/nwz
Version:
Browse the top stories from Hacker News right in your terminal.
28 lines • 1.08 kB
JavaScript
import chalk from 'chalk';
import open from 'open';
import { fetchTopTenStories } from './api.js';
import { printCountdown, printTopTenStories } from './print.js';
import { promptForStorySelection } from './prompt.js';
import { sleep } from './util.js';
export async function main(args) {
const url = args.includes('--url') || args.includes('-u');
const prompt = !(args.includes('--no-prompt') || args.includes('-n'));
const stories = await fetchTopTenStories();
printTopTenStories(stories, { url });
if (prompt) {
await promptForStorySelection(stories, async (story) => {
await printCountdown(3, (seconds) => {
if (seconds > 0) {
return chalk.dim(` Opening in ${seconds}: ${story.url}`);
}
else {
return chalk.dim(` Opened: ${story.url}\n`);
}
});
await open(story.url);
await sleep(3000);
});
}
console.log(chalk.dim(` Have a nice day!\n`));
}
//# sourceMappingURL=main.js.map