Skip to content

Commit 8311628

Browse files
committed
feat(plugin-eslint): replace @poppinss/cliui with new logger
1 parent 0292c9f commit 8311628

File tree

8 files changed

+20
-22
lines changed

8 files changed

+20
-22
lines changed

packages/plugin-eslint/src/lib/meta/groups.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { Rule } from 'eslint';
22
import type { Group, GroupRef } from '@code-pushup/models';
3-
import { objectToKeys, slugify, ui } from '@code-pushup/utils';
3+
import { logger, objectToKeys, slugify } from '@code-pushup/utils';
44
import type { CustomGroup } from '../config.js';
55
import { ruleToSlug } from './hash.js';
66
import { type RuleData, parseRuleId } from './parse.js';
@@ -109,7 +109,7 @@ export function groupsFromCustomConfig(
109109
`Invalid rule configuration in group ${group.slug}. All rules are invalid.`,
110110
);
111111
}
112-
ui().logger.warning(
112+
logger.warn(
113113
`Some rules in group ${group.slug} are invalid: ${invalidRules.join(', ')}`,
114114
);
115115
}

packages/plugin-eslint/src/lib/meta/groups.unit.test.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { Group } from '@code-pushup/models';
2-
import { ui } from '@code-pushup/utils';
2+
import { logger } from '@code-pushup/utils';
33
import {
44
createRulesMap,
55
groupsFromCustomConfig,
@@ -306,8 +306,7 @@ describe('groupsFromCustomConfig', () => {
306306
refs: [{ slug: 'react-jsx-key', weight: 3 }],
307307
},
308308
]);
309-
expect(ui()).toHaveLogged(
310-
'warn',
309+
expect(logger.warn).toHaveBeenCalledWith(
311310
'Some rules in group custom-group are invalid: invalid-rule',
312311
);
313312
});

packages/plugin-eslint/src/lib/meta/versions/flat.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { Linter, Rule } from 'eslint';
22
import { builtinRules } from 'eslint/use-at-your-own-risk';
33
import path from 'node:path';
44
import { pathToFileURL } from 'node:url';
5-
import { exists, findNearestFile, toArray, ui } from '@code-pushup/utils';
5+
import { exists, findNearestFile, logger, toArray } from '@code-pushup/utils';
66
import type { ESLintTarget } from '../../config.js';
77
import { jsonHash } from '../hash.js';
88
import {
@@ -25,7 +25,7 @@ export async function loadRulesForFlatConfig({
2525
.map(rule => {
2626
const meta = findRuleMeta(rule.id, configs);
2727
if (!meta) {
28-
ui().logger.warning(`Cannot find metadata for rule ${rule.id}`);
28+
logger.warn(`Cannot find metadata for rule ${rule.id}`);
2929
return null;
3030
}
3131
return { ...rule, meta };
@@ -106,7 +106,7 @@ function findPluginRuleMeta(
106106
const rule = config?.plugins?.[plugin]?.rules?.[name];
107107

108108
if (typeof rule === 'function') {
109-
ui().logger.warning(
109+
logger.warn(
110110
`Cannot parse metadata for rule ${plugin}/${name}, plugin registers it as a function`,
111111
);
112112
return undefined;

packages/plugin-eslint/src/lib/meta/versions/legacy.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ import {
33
asyncSequential,
44
distinct,
55
exists,
6+
logger,
67
toArray,
7-
ui,
88
} from '@code-pushup/utils';
99
import type { ESLintTarget } from '../../config.js';
1010
import { setupESLint } from '../../setup.js';
@@ -41,7 +41,7 @@ export async function loadRulesForLegacyConfig({
4141
}
4242
const ruleMeta = rulesMeta[id];
4343
if (!ruleMeta) {
44-
ui().logger.warning(`Metadata not found for ESLint rule ${id}`);
44+
logger.warn(`Metadata not found for ESLint rule ${id}`);
4545
return null;
4646
}
4747
// ignoring meta.defaultOptions to match legacy config handling in calculateConfigForFile

packages/plugin-eslint/src/lib/nx/find-all-projects.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { stringifyError, ui } from '@code-pushup/utils';
1+
import { logger, stringifyError } from '@code-pushup/utils';
22
import type { ESLintTarget } from '../config.js';
33
import { filterProjectGraph } from './filter-project-graph.js';
44
import { nxProjectsToConfig } from './projects-to-config.js';
@@ -14,9 +14,8 @@ async function resolveCachedProjectGraph() {
1414
try {
1515
return readCachedProjectGraph();
1616
} catch (error) {
17-
ui().logger.info(
18-
`Could not read cached project graph, falling back to async creation.
19-
${stringifyError(error)}`,
17+
logger.info(
18+
`Could not read cached project graph, falling back to async creation.\n${stringifyError(error)}`,
2019
);
2120
return await createProjectGraphAsync({ exitOnError: false });
2221
}

packages/plugin-eslint/src/lib/runner/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import type {
55
PluginArtifactOptions,
66
RunnerFunction,
77
} from '@code-pushup/models';
8-
import { asyncSequential, ui } from '@code-pushup/utils';
8+
import { asyncSequential, logger } from '@code-pushup/utils';
99
import type { ESLintPluginRunnerConfig, ESLintTarget } from '../config.js';
1010
import { lint } from './lint.js';
1111
import { lintResultsToAudits, mergeLinterOutputs } from './transform.js';
@@ -23,7 +23,7 @@ export function createRunnerFunction(options: {
2323
};
2424

2525
return async (): Promise<AuditOutputs> => {
26-
ui().logger.log(`ESLint plugin executing ${targets.length} lint targets`);
26+
logger.info(`ESLint plugin executing ${targets.length} lint targets`);
2727

2828
const linterOutputs = artifacts
2929
? await loadArtifacts(artifacts)

packages/plugin-eslint/src/lib/runner/index.unit.test.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {
66
DEFAULT_PERSIST_CONFIG,
77
type pluginArtifactOptionsSchema,
88
} from '@code-pushup/models';
9-
import { ui } from '@code-pushup/utils';
9+
import { logger } from '@code-pushup/utils';
1010
import type { ESLintTarget } from '../config.js';
1111
import { createRunnerFunction } from './index.js';
1212
import * as lintModule from './lint.js';
@@ -130,7 +130,9 @@ describe('createRunnerFunction', () => {
130130

131131
expect(loadArtifactsSpy).toHaveBeenCalledWith(artifacts);
132132
expect(lintSpy).not.toHaveBeenCalled();
133-
expect(ui()).toHaveLogged('log', 'ESLint plugin executing 2 lint targets');
133+
expect(logger.info).toHaveBeenCalledWith(
134+
'ESLint plugin executing 2 lint targets',
135+
);
134136
});
135137

136138
it('should use internal linting logic when artifacts are not provided', async () => {

packages/plugin-eslint/src/lib/runner/transform.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ import type { AuditOutput, Issue, IssueSeverity } from '@code-pushup/models';
33
import {
44
compareIssueSeverity,
55
countOccurrences,
6+
logger,
67
objectToEntries,
78
pluralizeToken,
89
truncateIssueMessage,
9-
ui,
1010
} from '@code-pushup/utils';
1111
import { ruleIdToSlug } from '../meta/index.js';
1212
import type { LinterOutput } from './types.js';
@@ -36,9 +36,7 @@ export function lintResultsToAudits({
3636
.reduce<Record<string, LintIssue[]>>((acc, issue) => {
3737
const { ruleId, message, filePath } = issue;
3838
if (!ruleId) {
39-
ui().logger.warning(
40-
`ESLint core error - ${message} (file: ${filePath})`,
41-
);
39+
logger.warn(`ESLint core error - ${message} (file: ${filePath})`);
4240
return acc;
4341
}
4442
const options = ruleOptionsPerFile[filePath]?.[ruleId] ?? [];

0 commit comments

Comments
 (0)