prompt-helper
Version:
A CLI tool to help you create and manage prompts for AI models.
88 lines • 3.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.renderProjectInfo = renderProjectInfo;
/**
* Renders collected project information including package.json, tsconfig, and tool usage.
*
* @param projectInfo - The project metadata to display.
* @param log - A logging function to print output and optionally indicate errors.
*/
function renderProjectInfo(projectInfo, log) {
// Package.json
if (projectInfo.packageJson) {
log('\n## Package.json info:');
log(`### Type: ${projectInfo.packageJson.type || 'Not specified'}`);
log('### Dependencies:');
const deps = projectInfo.packageJson.dependencies || {};
if (Object.keys(deps).length) {
for (const [dep, ver] of Object.entries(deps)) {
log(`- ${dep}: ${ver}`);
}
}
else {
log('- None');
}
log('### DevDependencies:');
const devDeps = projectInfo.packageJson.devDependencies || {};
if (Object.keys(devDeps).length) {
for (const [dep, ver] of Object.entries(devDeps)) {
log(`- ${dep}: ${ver}`);
}
}
else {
log('- None');
}
}
else {
log('\n## No package.json found.');
}
// tsconfig.json
if (projectInfo.tsconfigJson) {
log('\n## tsconfig.json and referenced configs found:');
if (projectInfo.tsconfigJson.compilerOptions) {
log('### CompilerOptions:');
for (const [key, value] of Object.entries(projectInfo.tsconfigJson.compilerOptions)) {
log(`- ${key}: ${JSON.stringify(value)}`);
}
}
const { include, exclude, files, references } = projectInfo.tsconfigJson;
// build a little table of [heading, value]
const arrProps = [
['Include', include],
['Exclude', exclude],
['Files', files],
['References', references],
];
for (const [heading, arr] of arrProps) {
if (Array.isArray(arr)) {
log(`### TSConfig ${heading}:`);
for (const item of arr) {
log(`- ${typeof item === 'object' ? JSON.stringify(item) : item}`);
}
}
}
}
else {
log('\n## tsconfig.json not found.');
}
// Toolchain Summary
log('\n## Project Info:');
log(projectInfo.packageManager ? `- Package manager detected: ${projectInfo.packageManager}` : '- No package manager lock file detected.');
log(projectInfo.usesESLint ? '- Project uses ESLint.' : '- Project does not use ESLint.');
if (projectInfo.usesVite) {
log('- Project uses Vite.');
}
if (projectInfo.usesWebpack) {
log('- Project uses Webpack.');
}
if (projectInfo.usesBabel) {
log('- Project uses Babel.');
}
if (projectInfo.usesJest) {
log('- Project uses Jest.');
}
if (projectInfo.usesDocker) {
log('- Project uses Docker.');
}
}
//# sourceMappingURL=projectInfoRenderer.js.map