const fetch = require("node-fetch"); // implemented from: https://github.com/HackerNews/API const HN_PREFIX = "https://hacker-news.firebaseio.com/v0/"; const TOP_STORIES = "topstories"; const ITEM = "item"; function hnFetch(type, id = "") { const url = id ? `${HN_PREFIX}${type}/${id}.json` : `${HN_PREFIX}${type}.json`; return fetch(url, { method: "GET", headers: { "Content-Type": "application/json" } }) .then(res => { if (!isStatusOk(res.status)) { throw res; } return res.json(); }) .then(res => res) .catch(error => console.error(error)); } function isStatusOk(statusCode) { return statusCode === 200 || statusCode === 304; } async function main() { const storyIds = await hnFetch(TOP_STORIES); const stories = await Promise.all( storyIds.slice(0, 20).map(storyId => hnFetch(ITEM, storyId)) ); console.log(stories.map(story => { delete story.kids; return story; })); } main();