UNPKG

ruins

Version:

> [!IMPORTANT] > This is in beta. Not everything is ironed out and some modules might misbehave

45 lines 1.48 kB
import { exec } from "child_process"; import { writeFile } from "node:fs/promises"; import { promisify } from "node:util"; import { getConfig } from "../config/getConfig.js"; import { resolve } from "node:path"; import consola from "consola"; const execPromise = promisify(exec); /** * Create a file collecting all TODOs in the project * * @param {string} ruinsPath - path to Ruins project directory * @returns {Promise<void>} */ export const createTodoFile = async () => { const settings = await getConfig(); const outputFile = resolve(settings.dir, settings.files.todos); const searchString = "// TODO"; try { const grepOutput = await execPromise(`cd ${process.cwd()} && git grep -rn "${searchString}" *`); const formattedOutput = grepOutput.stdout .split(/\r?\n/) .map((line) => { if (!line) return; const file = line.split(":")[0]; const todo = line.split("//")[1]; return { file: file, todo: `//${todo}`, }; }) .filter((line) => line !== undefined); const output = { meta: { timestamp: Date.now(), }, data: formattedOutput, }; await writeFile(outputFile, JSON.stringify(output, null, 2)); } catch { consola.error("Something went wrong!"); } }; //# sourceMappingURL=create-todo-file.js.map