UNPKG

usda-food-data-api-builder

Version:

USDA Food Data API database builder for self-hosted API access to the USDA Food Data database

52 lines (40 loc) 1.33 kB
#!/usr/bin/env node import "source-map-support/register.js"; import db from "usda-food-data-api-schema"; import ArchiveDownloader from "./ArchiveDownloader.js"; import DocumentManager from "./DocumentManager.js"; import downloads from "./downloads.js"; import formatTime from "./formatTime.js"; import logger from "./logger.js"; process.on("SIGINT", async () => { await db.shutdown(); process.exit(); }); /** * Entry point for the application. */ async function bootstrap() { logger.log("Starting usda-food-data-api-builder..."); const startDate = new Date(); await db.start(); try { const downloader = new ArchiveDownloader(); await downloader.init(); const download = downloader.entry.bind(downloader); await Promise.all(Object.entries(downloads).map(download)); for (let key in downloads) { const file = "./data/" + key + ".json"; const model = key.substring(0, key.length - 1) + "Item"; await new DocumentManager({ filepath: file, rootKey: key, rootSchema: model }).read(); } logger.log("Process completed in", formatTime(startDate, new Date())); } catch (e) { console.error(e); } await db.shutdown(); } bootstrap();