@terzitech/reqtext
Version:
Reqtext is a Git-native, CLI first requirements and documentation framework meant to bring requirement management directly into your workflow. Human -and AI- readable.
40 lines (37 loc) • 1.36 kB
JavaScript
// CLI command to generate README.md from .reqt.json
import { getReadmeItems } from '../src/services/getReadmeItems.js';
import { generateReadmeMarkdown } from '../src/services/generateReadmeMarkdown.js';
import { getCurrentReqtFilePath } from '../src/utils/getCurrentReqtFilePath.js';
import fs from 'fs/promises';
import path from 'path';
async function main() {
let jsonPath;
try {
jsonPath = await getCurrentReqtFilePath();
} catch (err) {
console.error('Error: ' + err.message);
process.exit(1);
}
const outPath = path.resolve('README.md');
let meta = '';
try {
const items = await getReadmeItems(jsonPath);
// Optionally, add meta info (date, version, repo link)
let version = '';
try {
const getVersion = (await import('../src/utils/getVersion.js')).default;
version = await getVersion();
} catch {}
meta = `Generated by ReqText v${version || 'unknown'} on ${new Date().toISOString()}\n[GitHub](https://github.com/joseph-terzi/reqtext)`;
const md = generateReadmeMarkdown(items, { meta });
await fs.writeFile(outPath, md, 'utf8');
console.log(`README.md generated successfully.`);
} catch (err) {
console.error('Error generating README.md:', err.message);
process.exit(1);
}
}
if (import.meta.url === `file://${process.argv[1]}`) {
main();
}