import { articles } from "../lib/tasks/articles.js"; import { css } from "../lib/tasks/css.js"; import { fonts } from "../lib/tasks/fonts.js"; import { images } from "../lib/tasks/images.js"; import { svg } from "../lib/tasks/svg.js"; import { argv, exit } from "node:process"; const wrapTask = (name: string, task: () => Promise) => async () => { console.log("[start]", name); await task(); console.log("[end]", name); }; const TASKS = { articles: wrapTask("articles", articles), css: wrapTask("css", css), fonts: wrapTask("fonts", fonts), images: wrapTask("images", images), svg: wrapTask("svg", svg), }; const ALL_TASKS = ["fonts", "images", "svg", "css", "articles"]; const args = argv.slice(2); await (args.length ? args : ALL_TASKS) .map((task) => { if (!TASKS.hasOwnProperty(task)) { console.error("Unknown task", task); exit(1); } return TASKS[task]; }) .reduce((prev, cur) => prev.then(cur), Promise.resolve());