diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 5d0312a84..0575070e9 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,11 +1,14 @@ # Mocks + /examples/react-todos-app/ @matejchalk /testing/test-utils/src/lib/utils/dynamic-mocks/ @matejchalk # Plugins + /packages/plugin-eslint/ @matejchalk /packages/plugin-coverage/ @matejchalk /packages/plugin-js-packages/ @matejchalk /packages/plugin-lighthouse/ @BioPhoton +/packages/plugin-typescript/ @BioPhoton /packages/nx-plugin/ @BioPhoton /examples/plugins/ @BioPhoton diff --git a/.github/labeler.yml b/.github/labeler.yml index 47a25558a..3b7dbf572 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -42,6 +42,14 @@ - changed-files: - any-glob-to-any-file: 'packages/plugin-lighthouse/src/**' +🧩 jsdocs-plugin: + - changed-files: + - any-glob-to-any-file: 'packages/plugin-jsdocs/src/**' + +🧩 typescript-plugin: + - changed-files: + - any-glob-to-any-file: 'packages/plugin-typescript/src/**' + 🔬 testing: - changed-files: - any-glob-to-any-file: diff --git a/code-pushup.config.ts b/code-pushup.config.ts index 07984ec3e..51aa2b33b 100644 --- a/code-pushup.config.ts +++ b/code-pushup.config.ts @@ -6,7 +6,7 @@ import { jsDocsCoreConfig, jsPackagesCoreConfig, lighthouseCoreConfig, - typescriptPluginConfigNx, + typescriptPluginConfig, } from './code-pushup.preset.js'; import type { CoreConfig } from './packages/models/src/index.js'; import { mergeConfigs } from './packages/utils/src/index.js'; @@ -40,7 +40,7 @@ export default mergeConfigs( await lighthouseCoreConfig( 'https://github.com/code-pushup/cli?tab=readme-ov-file#code-pushup-cli/', ), - await typescriptPluginConfigNx({ + await typescriptPluginConfig({ tsconfig: 'packages/cli/tsconfig.lib.json', }), await eslintCoreConfigNx(), diff --git a/code-pushup.preset.ts b/code-pushup.preset.ts index ea8b692ce..521d47c7d 100644 --- a/code-pushup.preset.ts +++ b/code-pushup.preset.ts @@ -1,3 +1,4 @@ +/* eslint-disable @nx/enforce-module-boundaries */ import type { CategoryConfig, CoreConfig, @@ -21,10 +22,9 @@ import { filterGroupsByOnlyAudits } from './packages/plugin-jsdocs/src/lib/utils import lighthousePlugin, { lighthouseGroupRef, } from './packages/plugin-lighthouse/src/index.js'; -import { +import typescriptPlugin, { type TypescriptPluginOptions, getCategories, - typescriptPlugin, } from './packages/plugin-typescript/src/index.js'; export const jsPackagesCategories: CategoryConfig[] = [ @@ -129,51 +129,43 @@ export const coverageCategories: CategoryConfig[] = [ }, ]; -export const jsPackagesCoreConfig = async (): Promise => { - return { - plugins: [await jsPackagesPlugin()], - categories: jsPackagesCategories, - }; -}; +export const jsPackagesCoreConfig = async (): Promise => ({ + plugins: [await jsPackagesPlugin()], + categories: jsPackagesCategories, +}); export const lighthouseCoreConfig = async ( url: string, -): Promise => { - return { - plugins: [await lighthousePlugin(url)], - categories: lighthouseCategories, - }; -}; +): Promise => ({ + plugins: [await lighthousePlugin(url)], + categories: lighthouseCategories, +}); export const jsDocsCoreConfig = ( config: JsDocsPluginConfig | string[], -): CoreConfig => { - return { - plugins: [ - jsDocsPlugin(Array.isArray(config) ? { patterns: config } : config), - ], - categories: getJsDocsCategories( - Array.isArray(config) ? { patterns: config } : config, - ), - }; -}; +): CoreConfig => ({ + plugins: [ + jsDocsPlugin(Array.isArray(config) ? { patterns: config } : config), + ], + categories: getJsDocsCategories( + Array.isArray(config) ? { patterns: config } : config, + ), +}); export const eslintCoreConfigNx = async ( projectName?: string, -): Promise => { - return { - plugins: [ - await eslintPlugin( - await (projectName - ? eslintConfigFromNxProject(projectName) - : eslintConfigFromAllNxProjects()), - ), - ], - categories: eslintCategories, - }; -}; +): Promise => ({ + plugins: [ + await eslintPlugin( + await (projectName + ? eslintConfigFromNxProject(projectName) + : eslintConfigFromAllNxProjects()), + ), + ], + categories: eslintCategories, +}); -export const typescriptPluginConfigNx = async ( +export const typescriptPluginConfig = async ( options?: TypescriptPluginOptions, ): Promise => ({ plugins: [await typescriptPlugin(options)], diff --git a/e2e/plugin-typescript-e2e/mocks/fixtures/default-setup/code-pushup.config.ts b/e2e/plugin-typescript-e2e/mocks/fixtures/default-setup/code-pushup.config.ts index 1530956b7..1f10c7b15 100644 --- a/e2e/plugin-typescript-e2e/mocks/fixtures/default-setup/code-pushup.config.ts +++ b/e2e/plugin-typescript-e2e/mocks/fixtures/default-setup/code-pushup.config.ts @@ -1,15 +1,14 @@ import type { CoreConfig } from '@code-pushup/models'; -import { +import typescriptPlugin, { getCategoryRefsFromGroups, - typescriptPlugin, } from '@code-pushup/typescript-plugin'; export default { plugins: [await typescriptPlugin()], categories: [ { - slug: 'typescript-quality', - title: 'Typescript', + slug: 'type-safety', + title: 'Type safety', refs: getCategoryRefsFromGroups(), }, ], diff --git a/e2e/plugin-typescript-e2e/tests/__snapshots__/collect.e2e.test.ts.snap b/e2e/plugin-typescript-e2e/tests/__snapshots__/collect.e2e.test.ts.snap index 56fb612cb..a1bb0cb3e 100644 --- a/e2e/plugin-typescript-e2e/tests/__snapshots__/collect.e2e.test.ts.snap +++ b/e2e/plugin-typescript-e2e/tests/__snapshots__/collect.e2e.test.ts.snap @@ -24,8 +24,8 @@ exports[`PLUGIN collect report with typescript-plugin NPM package > should run p "weight": 1, }, ], - "slug": "typescript-quality", - "title": "Typescript", + "slug": "type-safety", + "title": "Type safety", }, ], "packageName": "@code-pushup/core", diff --git a/packages/plugin-typescript/src/index.ts b/packages/plugin-typescript/src/index.ts index 7dbcf52bb..a483ce6a5 100644 --- a/packages/plugin-typescript/src/index.ts +++ b/packages/plugin-typescript/src/index.ts @@ -1,8 +1,11 @@ +import { typescriptPlugin } from './lib/typescript-plugin.js'; + +export default typescriptPlugin; + export { TYPESCRIPT_PLUGIN_SLUG } from './lib/constants.js'; -export { typescriptPlugin } from './lib/typescript-plugin.js'; -export { getCategories, getCategoryRefsFromGroups } from './lib/utils.js'; export { + typescriptPluginConfigSchema, type TypescriptPluginConfig, type TypescriptPluginOptions, - typescriptPluginConfigSchema, } from './lib/schema.js'; +export { getCategories, getCategoryRefsFromGroups } from './lib/utils.js';