Skip to content

Commit

Permalink
Merge pull request #859 from guardian/aa/lint-flatmap
Browse files Browse the repository at this point in the history
Add linting rule to prefer `.flatMap(...)` over `.map(...).flat()`
  • Loading branch information
akash1810 authored Mar 20, 2024
2 parents 6e06bfe + f9ed7e5 commit da55f3e
Show file tree
Hide file tree
Showing 5 changed files with 204 additions and 18 deletions.
205 changes: 195 additions & 10 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 5 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
"esbuild-jest": "^0.5.0",
"eslint": "^8.57.0",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-unicorn": "^51.0.1",
"jest": "^29.7.0",
"npm-run-all": "^4.1.5",
"tsx": "^4.7.1",
Expand All @@ -33,11 +34,13 @@
"eslintConfig": {
"extends": "@guardian/eslint-config-typescript",
"plugins": [
"prettier"
"prettier",
"unicorn"
],
"rules": {
"prettier/prettier": "error",
"@typescript-eslint/no-non-null-assertion": "error"
"@typescript-eslint/no-non-null-assertion": "error",
"unicorn/prefer-array-flat-map": "error"
}
},
"eslintIgnore": [
Expand Down
6 changes: 2 additions & 4 deletions packages/repocop/src/evaluation/repository.ts
Original file line number Diff line number Diff line change
Expand Up @@ -320,8 +320,7 @@ export function collectAndFormatUrgentSnykAlerts(
.map((project) => project.id);

const snykIssuesForRepo: SnykIssue[] = snykProjectIdsForRepo
.map((projectId) => getIssuesForProject(projectId, snykIssues))
.flat()
.flatMap((projectId) => getIssuesForProject(projectId, snykIssues))
.filter((i) => !i.attributes.ignored);

const processedVulns = snykIssuesForRepo.map((v) =>
Expand Down Expand Up @@ -470,8 +469,7 @@ export function snykAlertToRepocopVulnerability(
projects: SnykProject[],
): RepocopVulnerability {
const packages = (issue.attributes.coordinates ?? [])
.map((c) => c.representations)
.flat()
.flatMap((c) => c.representations)
.filter((r) => r !== null) as Dependency[];

const projectIdFromIssue = issue.relationships.scan_item.data.id;
Expand Down
2 changes: 1 addition & 1 deletion packages/repocop/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ export async function main() {
const repocopRules = evaluationResults.map((r) => r.repocopRules);
const severityPredicate = (x: RepocopVulnerability) => x.severity === 'high';
const [high, critical] = partition(
evaluationResults.map((r) => r.vulnerabilities).flat(),
evaluationResults.flatMap((r) => r.vulnerabilities),
severityPredicate,
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ export function createDigest(
results: EvaluationResult[],
): VulnerabilityDigest | undefined {
const resultsForTeam = getOwningRepos(team, repoOwners, results);
const vulns = resultsForTeam.map((r) => r.vulnerabilities).flat();
const vulns = resultsForTeam.flatMap((r) => r.vulnerabilities);

const totalVulnsCount = vulns.length;

Expand Down

0 comments on commit da55f3e

Please sign in to comment.