Skip to content

Commit 0e99a09

Browse files
CLOUDP-301224: Refactor
1 parent 0f8b302 commit 0e99a09

File tree

4 files changed

+30
-31
lines changed

4 files changed

+30
-31
lines changed

tools/spectral/ipa/metrics/metricCollection.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@ import {
33
extractTeamOwnership,
44
getSeverityPerRule,
55
loadCollectorResults,
6-
loadOpenAPIFile,
7-
loadRuleset,
86
merge,
97
} from './utils/metricCollectionUtils.js';
8+
import { loadJsonFile, loadRuleset } from '../utils.js';
109

1110
export async function runMetricCollectionJob(
1211
{
@@ -18,7 +17,7 @@ export async function runMetricCollectionJob(
1817
) {
1918
try {
2019
console.log(`Loading OpenAPI file: ${oasFilePath}`);
21-
const oasContent = loadOpenAPIFile(oasFilePath);
20+
const oasContent = loadJsonFile(oasFilePath);
2221

2322
console.log('Extracting team ownership data...');
2423
const ownershipData = extractTeamOwnership(oasContent);

tools/spectral/ipa/metrics/utils/metricCollectionUtils.js

Lines changed: 6 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,5 @@
1-
import fs from 'node:fs';
2-
import { bundleAndLoadRuleset } from '@stoplight/spectral-ruleset-bundler/with-loader';
31
import { EntryType } from '../collector.js';
4-
5-
export function loadOpenAPIFile(filePath) {
6-
try {
7-
const content = fs.readFileSync(filePath, 'utf8');
8-
return JSON.parse(content);
9-
} catch (error) {
10-
throw new Error(`Failed to load OpenAPI file: ${error.message}`);
11-
}
12-
}
2+
import { loadJsonFile } from '../../utils.js';
133

144
export function getSeverityPerRule(ruleset) {
155
const rules = ruleset.rules || {};
@@ -20,16 +10,6 @@ export function getSeverityPerRule(ruleset) {
2010
return map;
2111
}
2212

23-
export async function loadRuleset(rulesetPath, spectral) {
24-
try {
25-
const ruleset = await bundleAndLoadRuleset(rulesetPath, { fs, fetch });
26-
await spectral.setRuleset(ruleset);
27-
return ruleset;
28-
} catch (error) {
29-
throw new Error(`Failed to load ruleset: ${error.message}`);
30-
}
31-
}
32-
3313
export function extractTeamOwnership(oasContent) {
3414
const ownerTeams = {};
3515
const paths = oasContent.paths || {};
@@ -53,15 +33,14 @@ export function extractTeamOwnership(oasContent) {
5333

5434
export function loadCollectorResults(collectorResultsFilePath) {
5535
try {
56-
const content = fs.readFileSync(collectorResultsFilePath, 'utf8');
57-
const contentParsed = JSON.parse(content);
36+
const content = loadJsonFile(collectorResultsFilePath);
5837
return {
59-
[EntryType.VIOLATION]: contentParsed[EntryType.VIOLATION],
60-
[EntryType.ADOPTION]: contentParsed[EntryType.ADOPTION],
61-
[EntryType.EXCEPTION]: contentParsed[EntryType.EXCEPTION],
38+
[EntryType.VIOLATION]: content[EntryType.VIOLATION],
39+
[EntryType.ADOPTION]: content[EntryType.ADOPTION],
40+
[EntryType.EXCEPTION]: content[EntryType.EXCEPTION],
6241
};
6342
} catch (error) {
64-
throw new Error(`Failed to load Collector Results file: ${error.message}`);
43+
throw new Error(`Failed to parse Collector Results: ${error.message}`);
6544
}
6645
}
6746

tools/spectral/ipa/scripts/generateRulesetReadme.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import path from 'path';
33
import { fileURLToPath } from 'url';
44
import spectral from '@stoplight/spectral-core';
55
import { markdownTable } from 'markdown-table';
6-
import { loadRuleset } from '../metrics/utils/metricCollectionUtils.js';
6+
import { loadRuleset } from '../utils.js';
77

88
const dirname = path.dirname(fileURLToPath(import.meta.url));
99
const readmeFilePath = path.join(dirname, '../rulesets', 'README.md');

tools/spectral/ipa/utils.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { bundleAndLoadRuleset } from '@stoplight/spectral-ruleset-bundler/with-loader';
2+
import fs from 'node:fs';
3+
4+
export async function loadRuleset(rulesetPath, spectral) {
5+
try {
6+
const ruleset = await bundleAndLoadRuleset(rulesetPath, { fs, fetch });
7+
await spectral.setRuleset(ruleset);
8+
return ruleset;
9+
} catch (error) {
10+
throw new Error(`Failed to load ruleset: ${error.message}`);
11+
}
12+
}
13+
14+
export function loadJsonFile(filePath) {
15+
try {
16+
const content = fs.readFileSync(filePath, 'utf8');
17+
return JSON.parse(content);
18+
} catch (error) {
19+
throw new Error(`Failed to load file: ${error.message}`);
20+
}
21+
}

0 commit comments

Comments
 (0)