Skip to content

Commit 7683533

Browse files
committed
fix: adjust plugin options
1 parent e3c0d48 commit 7683533

File tree

10 files changed

+53
-25
lines changed

10 files changed

+53
-25
lines changed

code-pushup.config.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ import {
88
typescriptPluginConfigNx,
99
} from './code-pushup.preset.js';
1010
import type { CoreConfig } from './packages/models/src/index.js';
11-
import { BASIC_CHECKES } from './packages/plugin-typescript/src/lib/constants';
11+
import {
12+
BASIC_CHECKES,
13+
SUPPORTED_TS_ERROR_CODES,
14+
} from './packages/plugin-typescript/src/lib/constants';
1215
import { mergeConfigs } from './packages/utils/src/index.js';
1316

1417
// load upload configuration from environment
@@ -43,6 +46,6 @@ export default mergeConfigs(
4346
await eslintCoreConfigNx(),
4447
await typescriptPluginConfigNx({
4548
tsConfigPath: 'packages/plugin-typescript/tsconfig.lib.json',
46-
tsCodes: [...BASIC_CHECKES],
49+
tsAudits: ['stris'],
4750
}),
4851
);

code-pushup.preset.ts

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,14 @@ import jsPackagesPlugin from './packages/plugin-js-packages/src/index.js';
1313
import lighthousePlugin, {
1414
lighthouseGroupRef,
1515
} from './packages/plugin-lighthouse/src/index.js';
16-
import { typescriptPlugin } from './packages/plugin-typescript/src';
17-
import { AUDITS } from './packages/plugin-typescript/src/lib/generated/audits';
18-
import { TypescriptPluginOptions } from './packages/plugin-typescript/src/lib/typescript-plugin';
16+
import {
17+
type TypescriptPluginOptions,
18+
typescriptPlugin,
19+
} from './packages/plugin-typescript/src/index.js';
20+
import { SUPPORTED_TS_ERROR_CODES } from './packages/plugin-typescript/src/lib/constants.js';
21+
import { AUDITS } from './packages/plugin-typescript/src/lib/generated/audits.js';
22+
import { AuditSlug } from './packages/plugin-typescript/src/lib/types.js';
23+
import { filterAuditsBySlug } from './packages/plugin-typescript/src/lib/utils.js';
1924

2025
export const jsPackagesCategories: CategoryConfig[] = [
2126
{
@@ -135,18 +140,25 @@ export const eslintCoreConfigNx = async (
135140
export const typescriptPluginConfigNx = async (
136141
options: TypescriptPluginOptions,
137142
): Promise<CoreConfig> => {
143+
const opt: TypescriptPluginOptions = {
144+
tsAudits: Object.values(SUPPORTED_TS_ERROR_CODES) as AuditSlug[],
145+
...options,
146+
};
147+
138148
return {
139-
plugins: [await typescriptPlugin(options)],
149+
plugins: [await typescriptPlugin(opt)],
140150
categories: [
141151
{
142152
slug: 'typescript',
143153
title: 'Typescript',
144-
refs: AUDITS.map(({ slug }) => ({
145-
plugin: 'typescript',
146-
type: 'audit' as const,
147-
slug,
148-
weight: 1,
149-
})),
154+
refs: AUDITS.filter(filterAuditsBySlug(opt.tsAudits)).map(
155+
({ slug }) => ({
156+
plugin: 'typescript',
157+
type: 'audit' as const,
158+
slug,
159+
weight: 1,
160+
}),
161+
),
150162
},
151163
],
152164
};
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { typescriptPlugin } from './lib/typescript-plugin.js';
22

3+
export type { TypescriptPluginOptions } from './lib/config.js';
34
export { typescriptPlugin } from './lib/typescript-plugin.js';
45
export default typescriptPlugin;
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
import { z } from 'zod';
2+
import type { AuditSlug } from './types.js';
23

34
export const typescriptPluginConfigSchema = z.object({
45
tsConfigPath: z.string().describe('Path to the TsConfig'),
5-
tsCodes: z
6-
.array(z.number())
6+
tsAudits: z
7+
.array(z.string())
78
.optional()
89
.describe('Array with specific TsCodes to measure'),
910
});
1011

1112
export type TypescriptPluginOptions = z.infer<
1213
typeof typescriptPluginConfigSchema
13-
>;
14+
> & { tsAudits?: AuditSlug[] | undefined };

packages/plugin-typescript/src/lib/generated/audits.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { Audit } from '@code-pushup/models';
22

33
/* eslint-disable max-lines */
4-
export const AUDITS: Audit[] = [
4+
export const AUDITS = [
55
{
66
slug: 'unterminated-string-literal',
77
title: 'Unterminated String Literal',
@@ -7493,5 +7493,5 @@ export const AUDITS: Audit[] = [
74937493
description:
74947494
"String literal import and export names are not supported when the '--module' flag is set to 'es2015' or 'es2020'.",
74957495
},
7496-
];
7496+
] as const satisfies Audit[];
74977497
/* eslint-enable max-lines */

packages/plugin-typescript/src/lib/runner/runner.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import type {
99
import type { TypescriptPluginOptions } from '../config.js';
1010
import { AUDITS } from '../generated/audits.js';
1111
import type { AuditSlug } from '../types.js';
12+
import { filterAuditsBySlug } from '../utils.js';
1213
import { getDiagnostics } from './typescript-runner.js';
1314
import {
1415
getIssueFromDiagnostic,
@@ -36,7 +37,8 @@ export function createRunnerFunction(
3637
const issue = getIssueFromDiagnostic(diag);
3738

3839
const existingIssues: Issue[] =
39-
(acc[slug] && acc[slug].details?.issues) || ([] as Issue[]);
40+
((acc[slug] as Issue) && acc[slug].details?.issues) ||
41+
([] as Issue[]);
4042

4143
return {
4244
...acc,
@@ -63,6 +65,6 @@ export function createRunnerFunction(
6365
value: issues.length,
6466
...(issues.length > 0 ? { details } : {}),
6567
} satisfies AuditOutput;
66-
});
68+
}).filter(filterAuditsBySlug(options.tsAudits));
6769
};
6870
}
Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
import { SUPPORTED_TS_ERROR_CODES } from './constants.js';
2-
import type { SupportedCompilerErrorCode } from './runner/models.js';
1+
import { AUDITS } from './generated/audits.js';
32

4-
export type AuditSlug =
5-
(typeof SUPPORTED_TS_ERROR_CODES)[SupportedCompilerErrorCode];
3+
export type AuditSlug = (typeof AUDITS)[number]['slug'];

packages/plugin-typescript/src/lib/typescript-plugin.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import type { TypescriptPluginOptions } from './config.js';
44
import { TYPESCRIPT_PLUGIN_SLUG } from './constants.js';
55
import { AUDITS } from './generated/audits.js';
66
import { createRunnerFunction } from './runner/runner.js';
7+
import { filterAuditsBySlug } from './utils.js';
78

89
export const PLUGIN_TITLE = 'Typescript';
910

@@ -23,7 +24,7 @@ export function typescriptPlugin(
2324
description: PLUGIN_DESCRIPTION,
2425
docsUrl: PLUGIN_DOCS_URL,
2526
icon: 'typescript',
26-
audits: AUDITS,
27+
audits: AUDITS.filter(filterAuditsBySlug(options.tsAudits)),
2728
groups: [],
2829
runner: createRunnerFunction(options),
2930
};
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import type { Audit } from '@code-pushup/models';
2+
3+
export function filterAuditsBySlug(slugs?: string[]) {
4+
return ({ slug }: Audit) => {
5+
if (slugs && slugs.length > 0) {
6+
return slugs.includes(slug);
7+
}
8+
return true;
9+
};
10+
}

packages/plugin-typescript/tools/generate-audits/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export async function generateAuditsFromGithub() {
5555
`
5656
import type {Audit} from "@code-pushup/models";
5757
/* eslint-disable max-lines */
58-
export const AUDITS: Audit[] = ${JSON.stringify(audits, null, 2)};
58+
export const AUDITS = ${JSON.stringify(audits, null, 2)} as const satisfies Audit[];
5959
/* eslint-enable max-lines */
6060
`,
6161
);

0 commit comments

Comments
 (0)