@eventcatalog/linter
Version:
A linter for EventCatalog to validate frontmatter and resource references
36 lines • 1.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateBestPractices = void 0;
const validateBestPractices = (parsedFiles) => {
const errors = [];
for (const parsedFile of parsedFiles) {
const { file, frontmatter } = parsedFile;
// Check for required summary
if (!frontmatter.summary || (typeof frontmatter.summary === 'string' && frontmatter.summary.trim() === '')) {
errors.push({
type: 'schema',
resource: `${file.resourceType}/${file.resourceId}`,
field: 'summary',
message: 'Summary is required for better documentation',
file: file.relativePath,
severity: 'error',
rule: 'best-practices/summary-required',
});
}
// Check for required owners
if (!frontmatter.owners || !Array.isArray(frontmatter.owners) || frontmatter.owners.length === 0) {
errors.push({
type: 'schema',
resource: `${file.resourceType}/${file.resourceId}`,
field: 'owners',
message: 'At least one owner is required',
file: file.relativePath,
severity: 'error',
rule: 'best-practices/owner-required',
});
}
}
return errors;
};
exports.validateBestPractices = validateBestPractices;
//# sourceMappingURL=best-practices-validator.js.map