UNPKG

perf-audit-cli

Version:

CLI tool for continuous performance monitoring and analysis

45 lines 2.04 kB
import fs from 'fs'; import path from 'path'; import { generateConfigFile } from "../utils/config.js"; import { Logger } from "../utils/logger.js"; export async function initCommand() { Logger.section('Initializing Performance Audit CLI...'); const configPath = path.join(process.cwd(), 'perf-audit.config.js'); if (fs.existsSync(configPath)) { Logger.warn(`Configuration file already exists: ${configPath}`); return; } try { generateConfigFile(configPath); Logger.success('Configuration file created successfully'); const gitignorePath = path.join(process.cwd(), '.gitignore'); if (fs.existsSync(gitignorePath)) { const gitignoreContent = fs.readFileSync(gitignorePath, 'utf-8'); if (!gitignoreContent.includes('.perf-audit/')) { fs.appendFileSync(gitignorePath, '\n# Performance Audit data\n.perf-audit/\nperformance-reports/\n'); Logger.success('Added entries to .gitignore'); } } const reportsDir = path.join(process.cwd(), 'performance-reports'); if (!fs.existsSync(reportsDir)) { fs.mkdirSync(reportsDir, { recursive: true }); Logger.success('Created reports directory'); } const dataDir = path.join(process.cwd(), '.perf-audit'); if (!fs.existsSync(dataDir)) { fs.mkdirSync(dataDir, { recursive: true }); Logger.success('Created data directory'); } Logger.complete('Performance Audit CLI initialized successfully!'); Logger.nextSteps('Next steps:', [ 'Edit perf-audit.config.js to match your project setup', 'Run perf-audit analyze to start analyzing your bundle', 'Run perf-audit budget to check performance budgets', ]); } catch (error) { Logger.error('Failed to initialize', { error: error instanceof Error ? error.message : 'Unknown error' }); process.exit(1); } } //# sourceMappingURL=init.js.map