Skip to content

Commit fb1bbad

Browse files
committed
fix(plugin-typescript): refine types
1 parent 73d4b10 commit fb1bbad

File tree

5 files changed

+21
-23
lines changed

5 files changed

+21
-23
lines changed

packages/plugin-typescript/src/lib/schema.unit.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import {
55
} from './schema.js';
66

77
describe('typescriptPluginConfigSchema', () => {
8-
const tsConfigPath = 'tsconfig.json';
8+
const tsconfig = 'tsconfig.json';
99

1010
it('accepts a empty configuration', () => {
1111
expect(() => typescriptPluginConfigSchema.parse({})).not.toThrow();
@@ -14,15 +14,15 @@ describe('typescriptPluginConfigSchema', () => {
1414
it('accepts a configuration with tsConfigPath set', () => {
1515
expect(() =>
1616
typescriptPluginConfigSchema.parse({
17-
tsConfigPath,
17+
tsconfig,
1818
} satisfies TypescriptPluginOptions),
1919
).not.toThrow();
2020
});
2121

2222
it('accepts a configuration with tsConfigPath and empty onlyAudits', () => {
2323
expect(() =>
2424
typescriptPluginConfigSchema.parse({
25-
tsConfigPath,
25+
tsconfig,
2626
onlyAudits: [],
2727
} satisfies TypescriptPluginOptions),
2828
).not.toThrow();
@@ -31,7 +31,7 @@ describe('typescriptPluginConfigSchema', () => {
3131
it('accepts a configuration with tsConfigPath and full onlyAudits', () => {
3232
expect(() =>
3333
typescriptPluginConfigSchema.parse({
34-
tsConfigPath,
34+
tsconfig,
3535
onlyAudits: [
3636
'syntax-errors',
3737
'semantic-errors',
@@ -52,7 +52,7 @@ describe('typescriptPluginConfigSchema', () => {
5252
it('throws for invalid onlyAudits items', () => {
5353
expect(() =>
5454
typescriptPluginConfigSchema.parse({
55-
tsConfigPath,
55+
tsconfig,
5656
onlyAudits: [123, true],
5757
}),
5858
).toThrow('invalid_type');
@@ -61,7 +61,7 @@ describe('typescriptPluginConfigSchema', () => {
6161
it('throws for unknown audit slug', () => {
6262
expect(() =>
6363
typescriptPluginConfigSchema.parse({
64-
tsConfigPath,
64+
tsconfig,
6565
onlyAudits: ['unknown-audit'],
6666
}),
6767
).toThrow(/unknown-audit/);
Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
import type { DiagnosticsOptions } from './runner/ts-runner.js';
21
import type { CodeRangeName } from './runner/types.js';
32

43
export type AuditSlug = CodeRangeName;
5-
6-
export type FilterOptions = { onlyAudits?: AuditSlug[] | undefined };
7-
export type TypescriptPluginOptions = Partial<DiagnosticsOptions> &
8-
FilterOptions;

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

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,17 @@ import type { PluginConfig } from '@code-pushup/models';
33
import { stringifyError } from '@code-pushup/utils';
44
import { DEFAULT_TS_CONFIG, TYPESCRIPT_PLUGIN_SLUG } from './constants.js';
55
import { createRunnerFunction } from './runner/runner.js';
6-
import type { DiagnosticsOptions } from './runner/ts-runner.js';
7-
import { typescriptPluginConfigSchema } from './schema.js';
8-
import type { AuditSlug } from './types.js';
6+
import {
7+
type TypescriptPluginConfig,
8+
type TypescriptPluginOptions,
9+
typescriptPluginConfigSchema,
10+
} from './schema.js';
911
import { getAudits, getGroups, logSkippedAudits } from './utils.js';
1012

1113
const packageJson = createRequire(import.meta.url)(
1214
'../../package.json',
1315
) as typeof import('../../package.json');
1416

15-
export type FilterOptions = { onlyAudits?: AuditSlug[] };
16-
export type TypescriptPluginOptions = Partial<DiagnosticsOptions> &
17-
FilterOptions;
18-
1917
export async function typescriptPlugin(
2018
options?: TypescriptPluginOptions,
2119
): Promise<PluginConfig> {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { expect } from 'vitest';
22
import { pluginConfigSchema } from '@code-pushup/models';
33
import { AUDITS, GROUPS } from './constants.js';
4-
import type { TypescriptPluginOptions } from './types.js';
4+
import type { TypescriptPluginOptions } from './schema.js';
55
import { typescriptPlugin } from './typescript-plugin.js';
66

77
describe('typescriptPlugin-config-object', () => {

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

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import type { CompilerOptions } from 'typescript';
22
import type { Audit, CategoryConfig, CategoryRef } from '@code-pushup/models';
3-
import { kebabCaseToCamelCase } from '@code-pushup/utils';
3+
import { kebabCaseToCamelCase, ui } from '@code-pushup/utils';
44
import { AUDITS, GROUPS, TYPESCRIPT_PLUGIN_SLUG } from './constants.js';
5-
import type { FilterOptions, TypescriptPluginOptions } from './types.js';
5+
import type {
6+
TypescriptPluginConfig,
7+
TypescriptPluginOptions,
8+
} from './schema.js';
69

710
/**
811
* It filters the audits by the slugs
@@ -63,7 +66,9 @@ export function getGroups(options?: TypescriptPluginOptions) {
6366
})).filter(group => group.refs.length > 0);
6467
}
6568

66-
export function getAudits(options?: FilterOptions) {
69+
export function getAudits(
70+
options?: Pick<TypescriptPluginConfig, 'onlyAudits'>,
71+
) {
6772
return AUDITS.filter(filterAuditsBySlug(options?.onlyAudits));
6873
}
6974

@@ -141,6 +146,6 @@ export function logSkippedAudits(audits: Audit[]) {
141146
audit => !audits.some(filtered => filtered.slug === audit.slug),
142147
).map(audit => kebabCaseToCamelCase(audit.slug));
143148
if (skippedAudits.length > 0) {
144-
console.warn(`Skipped audits: [${skippedAudits.join(', ')}]`);
149+
ui().logger.info(`Skipped audits: [${skippedAudits.join(', ')}]`);
145150
}
146151
}

0 commit comments

Comments
 (0)