apisurf
Version:
Analyze API surface changes between npm package versions to catch breaking changes
29 lines (28 loc) • 1.28 kB
JavaScript
import { Command } from 'commander';
import { formatValidationOutput } from '../analyzers/formatValidationOutput.js';
export const validateCommand = new Command('validate')
.description('Validate that dependency updates do not introduce semver violations')
.option('--lockfile <path>', 'Path to lockfile (yarn.lock, package-lock.json, pnpm-lock.yaml)')
.option('--base <branch>', 'Base branch to compare lockfile against', 'main')
.option('--packages <packages>', 'Comma-separated list of specific packages to validate')
.option('--format <format>', 'Output format: console, json, md, html', 'console')
.action(async (options) => {
try {
console.log('Validating dependency updates...');
// TODO: Implement actual validation logic
const mockResult = {
hasViolations: false,
violations: [],
summary: 'No semver violations detected'
};
const output = formatValidationOutput(mockResult, options.format);
console.log(output);
if (mockResult.hasViolations) {
process.exit(1);
}
}
catch (error) {
console.error('Error during validation:', error instanceof Error ? error.message : String(error));
process.exit(1);
}
});