Skip to content

Commit 88ad2de

Browse files
committed
Add debug logs
1 parent c6e8099 commit 88ad2de

File tree

3 files changed

+76
-20
lines changed

3 files changed

+76
-20
lines changed

src/linter/engine.mjs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,29 @@
66
* @param {import('./types').LintRule} rules Lint rules to validate the entries against
77
*/
88
const createLinterEngine = rules => {
9+
console.log('Initializing linter engine with rules:', rules);
10+
911
/**
1012
* Validates a ApiDocMetadataEntry entry against all defined rules
1113
*
1214
* @param {ApiDocMetadataEntry} entry
1315
* @returns {import('./types').LintIssue[]}
1416
*/
1517
const lint = entry => {
18+
console.log('Linting entry:', entry);
1619
const issues = [];
1720

1821
for (const rule of rules) {
22+
console.log('Applying rule:', rule);
1923
const ruleIssues = rule(entry);
24+
console.log('Issues found by rule:', ruleIssues);
2025

2126
if (ruleIssues.length > 0) {
2227
issues.push(...ruleIssues);
2328
}
2429
}
2530

31+
console.log('Final issues for entry:', issues);
2632
return issues;
2733
};
2834

@@ -33,12 +39,15 @@ const createLinterEngine = rules => {
3339
* @returns {import('./types').LintIssue[]}
3440
*/
3541
const lintAll = entries => {
42+
console.log('Linting all entries:', entries);
3643
const issues = [];
3744

3845
for (const entry of entries) {
46+
console.log('Linting individual entry:', entry);
3947
issues.push(...lint(entry));
4048
}
4149

50+
console.log('Final issues for all entries:', issues);
4251
return issues;
4352
};
4453

src/linter/index.mjs

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,31 @@ import rules from './rules/index.mjs';
1111
* @param {string[]} disabledRules List of disabled rules names
1212
*/
1313
const createLinter = (dryRun, disabledRules) => {
14+
console.log(
15+
'Initializing linter with dryRun:',
16+
dryRun,
17+
'and disabledRules:',
18+
disabledRules
19+
);
20+
1421
/**
1522
* Retrieves all enabled rules
1623
*
1724
* @returns {import('./types').LintRule[]}
1825
*/
1926
const getEnabledRules = () => {
27+
console.log('Filtering enabled rules from:', rules);
2028
return Object.entries(rules)
21-
.filter(([ruleName]) => !disabledRules.includes(ruleName))
29+
.filter(([ruleName]) => {
30+
const isEnabled = !disabledRules.includes(ruleName);
31+
console.log(`Rule: ${ruleName}, Enabled: ${isEnabled}`);
32+
return isEnabled;
33+
})
2234
.map(([, rule]) => rule);
2335
};
2436

2537
const engine = createLinterEngine(getEnabledRules(disabledRules));
38+
console.log('Linter engine created:', engine);
2639

2740
/**
2841
* Lint issues found during validations
@@ -37,7 +50,10 @@ const createLinter = (dryRun, disabledRules) => {
3750
* @param entries
3851
*/
3952
const lintAll = entries => {
40-
issues.push(...engine.lintAll(entries));
53+
console.log('Linting all entries:', entries);
54+
const foundIssues = engine.lintAll(entries);
55+
console.log('Issues found:', foundIssues);
56+
issues.push(...foundIssues);
4157
};
4258

4359
/**
@@ -47,13 +63,17 @@ const createLinter = (dryRun, disabledRules) => {
4763
* @returns {void}
4864
*/
4965
const report = reporterName => {
66+
console.log('Reporting issues with reporter:', reporterName);
5067
if (dryRun) {
68+
console.log('Dry run enabled, skipping reporting.');
5169
return;
5270
}
5371

5472
const reporter = reporters[reporterName];
73+
console.log('Using reporter:', reporter);
5574

5675
for (const issue of issues) {
76+
console.log('Reporting issue:', issue);
5777
reporter(issue);
5878
}
5979
};
@@ -64,7 +84,9 @@ const createLinter = (dryRun, disabledRules) => {
6484
* @returns {boolean}
6585
*/
6686
const hasError = () => {
67-
return issues.some(issue => issue.level === 'error');
87+
const hasError = issues.some(issue => issue.level === 'error');
88+
console.log('Checking for errors, found:', hasError);
89+
return hasError;
6890
};
6991

7092
return {

src/linter/rules/invalid-change-version.mjs

Lines changed: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,51 @@ import { valid } from 'semver';
88
* @returns {Array<import('../types').LintIssue>}
99
*/
1010
export const invalidChangeVersion = entry => {
11+
console.log('Received entry:', entry);
12+
1113
if (entry.changes.length === 0) {
14+
console.log('No changes found, returning empty array.');
1215
return [];
1316
}
1417

18+
console.log('Processing changes:', entry.changes);
19+
1520
const allVersions = entry.changes
16-
.filter(change => change.version)
17-
.flatMap(change =>
18-
Array.isArray(change.version) ? change.version : [change.version]
19-
);
20-
21-
const invalidVersions = allVersions.filter(
22-
version => valid(version) === null
23-
);
24-
25-
return invalidVersions.map(version => ({
26-
level: 'warn',
27-
message: LINT_MESSAGES.invalidChangeVersion.replace('{{version}}', version),
28-
location: {
29-
path: entry.api_doc_source,
30-
position: entry.yaml_position,
31-
},
32-
}));
21+
.filter(change => {
22+
console.log('Checking change:', change);
23+
return change.version;
24+
})
25+
.flatMap(change => {
26+
console.log('Extracting version from change:', change);
27+
return Array.isArray(change.version) ? change.version : [change.version];
28+
});
29+
30+
console.log('All extracted versions:', allVersions);
31+
32+
const invalidVersions = allVersions.filter(version => {
33+
const isValid = valid(version);
34+
console.log(`Checking version: ${version}, valid: ${isValid}`);
35+
return isValid === null;
36+
});
37+
38+
console.log('Invalid versions found:', invalidVersions);
39+
40+
const issues = invalidVersions.map(version => {
41+
const issue = {
42+
level: 'warn',
43+
message: LINT_MESSAGES.invalidChangeVersion.replace(
44+
'{{version}}',
45+
version
46+
),
47+
location: {
48+
path: entry.api_doc_source,
49+
position: entry.yaml_position,
50+
},
51+
};
52+
console.log('Generated issue:', issue);
53+
return issue;
54+
});
55+
56+
console.log('Final issues array:', issues);
57+
return issues;
3358
};

0 commit comments

Comments
 (0)