Skip to content

Commit e7d950e

Browse files
authored
feat(plugin-typescript): support multiple tsconfigs (#1229)
1 parent 5f35b7a commit e7d950e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+514
-125
lines changed

code-pushup.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export default mergeConfigs(
2020
await configureEslintPlugin(),
2121
await configureCoveragePlugin(),
2222
await configureJsPackagesPlugin(),
23-
configureTypescriptPlugin(),
23+
await configureTypescriptPlugin(),
2424
configureJsDocsPlugin(),
2525
await configureLighthousePlugin(TARGET_URL),
2626
configureAxePlugin(TARGET_URL),

code-pushup.preset.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import {
2020
} from './packages/plugin-lighthouse/src/index.js';
2121
import typescriptPlugin, {
2222
getCategories,
23+
tsconfigFromAllNxProjects,
2324
} from './packages/plugin-typescript/src/index.js';
2425

2526
export function configureUpload(projectName: string = 'workspace'): CoreConfig {
@@ -150,10 +151,17 @@ export async function configureJsPackagesPlugin(): Promise<CoreConfig> {
150151
};
151152
}
152153

153-
export function configureTypescriptPlugin(projectName?: string): CoreConfig {
154+
export async function configureTypescriptPlugin(
155+
projectName?: string,
156+
): Promise<CoreConfig> {
154157
const tsconfig = projectName
155158
? `packages/${projectName}/tsconfig.lib.json`
156-
: 'tsconfig.code-pushup.json';
159+
: await tsconfigFromAllNxProjects({
160+
exclude: [
161+
'test-fixtures', // Intentionally incomplete tsconfigs
162+
'models', // Uses ts-patch transformer plugin
163+
],
164+
});
157165
return {
158166
plugins: [typescriptPlugin({ tsconfig })],
159167
categories: getCategories(),

packages/ci/code-pushup.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ export default mergeConfigs(
1414
configureUpload(projectName),
1515
await configureEslintPlugin(projectName),
1616
await configureCoveragePlugin(projectName),
17-
configureTypescriptPlugin(projectName),
17+
await configureTypescriptPlugin(projectName),
1818
configureJsDocsPlugin(projectName),
1919
);

packages/cli/code-pushup.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ export default mergeConfigs(
1414
configureUpload(projectName),
1515
await configureEslintPlugin(projectName),
1616
await configureCoveragePlugin(projectName),
17-
configureTypescriptPlugin(projectName),
17+
await configureTypescriptPlugin(projectName),
1818
configureJsDocsPlugin(projectName),
1919
);

packages/core/code-pushup.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ export default mergeConfigs(
1414
configureUpload(projectName),
1515
await configureEslintPlugin(projectName),
1616
await configureCoveragePlugin(projectName),
17-
configureTypescriptPlugin(projectName),
17+
await configureTypescriptPlugin(projectName),
1818
configureJsDocsPlugin(projectName),
1919
);

packages/create-cli/code-pushup.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ export default mergeConfigs(
1414
configureUpload(projectName),
1515
await configureEslintPlugin(projectName),
1616
await configureCoveragePlugin(projectName),
17-
configureTypescriptPlugin(projectName),
17+
await configureTypescriptPlugin(projectName),
1818
configureJsDocsPlugin(projectName),
1919
);

packages/nx-plugin/code-pushup.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ export default mergeConfigs(
1414
configureUpload(projectName),
1515
await configureEslintPlugin(projectName),
1616
await configureCoveragePlugin(projectName),
17-
configureTypescriptPlugin(projectName),
17+
await configureTypescriptPlugin(projectName),
1818
configureJsDocsPlugin(projectName),
1919
);

packages/plugin-axe/code-pushup.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ export default mergeConfigs(
1414
configureUpload(projectName),
1515
await configureEslintPlugin(projectName),
1616
await configureCoveragePlugin(projectName),
17-
configureTypescriptPlugin(projectName),
17+
await configureTypescriptPlugin(projectName),
1818
configureJsDocsPlugin(projectName),
1919
);

packages/plugin-coverage/code-pushup.config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ export default mergeConfigs(
1414
configureUpload(projectName),
1515
await configureEslintPlugin(projectName),
1616
await configureCoveragePlugin(projectName),
17-
configureTypescriptPlugin(projectName),
17+
await configureTypescriptPlugin(projectName),
1818
configureJsDocsPlugin(projectName),
1919
);

packages/plugin-coverage/src/lib/nx/coverage-paths.ts

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -9,40 +9,22 @@ import type { VitestExecutorOptions } from '@nx/vite/executors';
99
import path from 'node:path';
1010
import {
1111
importModule,
12+
loadNxProjectGraph,
1213
logger,
1314
pluralize,
1415
pluralizeToken,
15-
stringifyError,
1616
} from '@code-pushup/utils';
1717
import type { CoverageResult } from '../config.js';
1818
import { formatMetaLog } from '../format.js';
1919

20-
/**
21-
* Resolves the cached project graph for the current Nx workspace.
22-
* First tries to read cache and if not possible, go for the async creation.
23-
*/
24-
async function resolveCachedProjectGraph() {
25-
const { readCachedProjectGraph, createProjectGraphAsync } = await import(
26-
'@nx/devkit'
27-
);
28-
try {
29-
return readCachedProjectGraph();
30-
} catch (error) {
31-
logger.warn(
32-
`Could not read cached project graph, falling back to async creation - ${stringifyError(error)}`,
33-
);
34-
return await createProjectGraphAsync({ exitOnError: false });
35-
}
36-
}
37-
3820
/**
3921
* @param targets nx targets to be used for measuring coverage, test by default
4022
* @returns An array of coverage result information for the coverage plugin.
4123
*/
4224
export async function getNxCoveragePaths(
4325
targets: string[] = ['test'],
4426
): Promise<CoverageResult[]> {
45-
const { nodes } = await resolveCachedProjectGraph();
27+
const { nodes } = await loadNxProjectGraph();
4628

4729
const coverageResultsPerTarget = Object.fromEntries(
4830
await Promise.all(

0 commit comments

Comments
 (0)