@code-pushup/jsdocs-plugin 0.98.0 → 0.100.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/lib/constants.d.ts +4 -1
- package/src/lib/constants.js +4 -1
- package/src/lib/constants.js.map +1 -1
- package/src/lib/format.d.ts +1 -0
- package/src/lib/format.js +4 -0
- package/src/lib/format.js.map +1 -0
- package/src/lib/jsdocs-plugin.d.ts +0 -3
- package/src/lib/jsdocs-plugin.js +7 -7
- package/src/lib/jsdocs-plugin.js.map +1 -1
- package/src/lib/runner/doc-processor.d.ts +4 -4
- package/src/lib/runner/doc-processor.js +12 -8
- package/src/lib/runner/doc-processor.js.map +1 -1
- package/src/lib/runner/utils.d.ts +5 -1
- package/src/lib/runner/utils.js +30 -0
- package/src/lib/runner/utils.js.map +1 -1
- package/src/lib/utils.d.ts +1 -0
- package/src/lib/utils.js +17 -1
- package/src/lib/utils.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-pushup/jsdocs-plugin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.100.0",
|
|
4
4
|
"description": "Code PushUp plugin for tracking documentation coverage 📚",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/code-pushup/cli/tree/main/packages/plugin-jsdocs#readme",
|
|
@@ -35,8 +35,8 @@
|
|
|
35
35
|
},
|
|
36
36
|
"type": "module",
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@code-pushup/models": "0.
|
|
39
|
-
"@code-pushup/utils": "0.
|
|
38
|
+
"@code-pushup/models": "0.100.0",
|
|
39
|
+
"@code-pushup/utils": "0.100.0",
|
|
40
40
|
"zod": "^4.0.5",
|
|
41
41
|
"ts-morph": "^24.0.0"
|
|
42
42
|
},
|
package/src/lib/constants.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { Audit, Group } from '@code-pushup/models';
|
|
2
2
|
import type { AuditSlug } from './models.js';
|
|
3
3
|
export declare const PLUGIN_SLUG = "jsdocs";
|
|
4
|
+
export declare const PLUGIN_TITLE = "JSDocs coverage";
|
|
5
|
+
export declare const PLUGIN_DESCRIPTION = "Official Code PushUp JSDoc coverage plugin.";
|
|
6
|
+
export declare const PLUGIN_DOCS_URL = "https://www.npmjs.com/package/@code-pushup/jsdocs-plugin/";
|
|
4
7
|
export declare const AUDITS_MAP: Record<AuditSlug, Audit>;
|
|
5
|
-
export declare const
|
|
8
|
+
export declare const GROUPS: Group[];
|
package/src/lib/constants.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export const PLUGIN_SLUG = 'jsdocs';
|
|
2
|
+
export const PLUGIN_TITLE = 'JSDocs coverage';
|
|
3
|
+
export const PLUGIN_DESCRIPTION = 'Official Code PushUp JSDoc coverage plugin.';
|
|
4
|
+
export const PLUGIN_DOCS_URL = 'https://www.npmjs.com/package/@code-pushup/jsdocs-plugin/';
|
|
2
5
|
export const AUDITS_MAP = {
|
|
3
6
|
'classes-coverage': {
|
|
4
7
|
slug: 'classes-coverage',
|
|
@@ -41,7 +44,7 @@ export const AUDITS_MAP = {
|
|
|
41
44
|
description: 'Documentation coverage of enums',
|
|
42
45
|
},
|
|
43
46
|
};
|
|
44
|
-
export const
|
|
47
|
+
export const GROUPS = [
|
|
45
48
|
{
|
|
46
49
|
slug: 'documentation-coverage',
|
|
47
50
|
title: 'Documentation coverage',
|
package/src/lib/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/lib/constants.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC;AACpC,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,CAAC;AAC9C,MAAM,CAAC,MAAM,kBAAkB,GAAG,6CAA6C,CAAC;AAChF,MAAM,CAAC,MAAM,eAAe,GAC1B,2DAA2D,CAAC;AAE9D,MAAM,CAAC,MAAM,UAAU,GAA6B;IAClD,kBAAkB,EAAE;QAClB,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,mCAAmC;KACjD;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,kBAAkB;QACxB,KAAK,EAAE,kBAAkB;QACzB,WAAW,EAAE,mCAAmC;KACjD;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,qCAAqC;KACnD;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,sCAAsC;KACpD;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EAAE,qCAAqC;KACnD;IACD,qBAAqB,EAAE;QACrB,IAAI,EAAE,qBAAqB;QAC3B,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EAAE,sCAAsC;KACpD;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,iCAAiC;KAC/C;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,iCAAiC;KAC/C;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,MAAM,GAAY;IAC7B;QACE,IAAI,EAAE,wBAAwB;QAC9B,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EAAE,wBAAwB;QACrC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACzC,IAAI;YACJ,MAAM,EAAE;gBACN,kBAAkB;gBAClB,oBAAoB;gBACpB,kBAAkB;aACnB,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,CAAC;SACN,CAAC,CAAC;KACJ;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const formatMetaLog: (message: string) => string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../../../src/lib/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,MAAM,CAAC,MAAM,aAAa,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC"}
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
import { type PluginConfig } from '@code-pushup/models';
|
|
2
2
|
import { type JsDocsPluginConfig } from './config.js';
|
|
3
|
-
export declare const PLUGIN_TITLE = "JSDoc coverage";
|
|
4
|
-
export declare const PLUGIN_DESCRIPTION = "Official Code PushUp JSDoc coverage plugin.";
|
|
5
|
-
export declare const PLUGIN_DOCS_URL = "https://www.npmjs.com/package/@code-pushup/jsdocs-plugin/";
|
|
6
3
|
/**
|
|
7
4
|
* Instantiates Code PushUp documentation coverage plugin for core config.
|
|
8
5
|
*
|
package/src/lib/jsdocs-plugin.js
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { validate } from '@code-pushup/models';
|
|
2
2
|
import { jsDocsPluginConfigSchema } from './config.js';
|
|
3
|
-
import { PLUGIN_SLUG,
|
|
3
|
+
import { GROUPS, PLUGIN_DESCRIPTION, PLUGIN_DOCS_URL, PLUGIN_SLUG, PLUGIN_TITLE, } from './constants.js';
|
|
4
4
|
import { createRunnerFunction } from './runner/runner.js';
|
|
5
|
-
import { filterAuditsByPluginConfig, filterGroupsByOnlyAudits, } from './utils.js';
|
|
6
|
-
export const PLUGIN_TITLE = 'JSDoc coverage';
|
|
7
|
-
export const PLUGIN_DESCRIPTION = 'Official Code PushUp JSDoc coverage plugin.';
|
|
8
|
-
export const PLUGIN_DOCS_URL = 'https://www.npmjs.com/package/@code-pushup/jsdocs-plugin/';
|
|
5
|
+
import { filterAuditsByPluginConfig, filterGroupsByOnlyAudits, logAuditsAndGroups, } from './utils.js';
|
|
9
6
|
/**
|
|
10
7
|
* Instantiates Code PushUp documentation coverage plugin for core config.
|
|
11
8
|
*
|
|
@@ -25,14 +22,17 @@ export const PLUGIN_DOCS_URL = 'https://www.npmjs.com/package/@code-pushup/jsdoc
|
|
|
25
22
|
export function jsDocsPlugin(config) {
|
|
26
23
|
const jsDocsConfig = validate(jsDocsPluginConfigSchema, config);
|
|
27
24
|
const scoreTargets = jsDocsConfig.scoreTargets;
|
|
25
|
+
const groups = filterGroupsByOnlyAudits(GROUPS, jsDocsConfig);
|
|
26
|
+
const audits = filterAuditsByPluginConfig(jsDocsConfig);
|
|
27
|
+
logAuditsAndGroups(audits, groups);
|
|
28
28
|
return {
|
|
29
29
|
slug: PLUGIN_SLUG,
|
|
30
30
|
title: PLUGIN_TITLE,
|
|
31
31
|
icon: 'folder-docs',
|
|
32
32
|
description: PLUGIN_DESCRIPTION,
|
|
33
33
|
docsUrl: PLUGIN_DOCS_URL,
|
|
34
|
-
groups
|
|
35
|
-
audits
|
|
34
|
+
groups,
|
|
35
|
+
audits,
|
|
36
36
|
runner: createRunnerFunction(jsDocsConfig),
|
|
37
37
|
...(scoreTargets && { scoreTargets }),
|
|
38
38
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsdocs-plugin.js","sourceRoot":"","sources":["../../../src/lib/jsdocs-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAA2B,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,
|
|
1
|
+
{"version":3,"file":"jsdocs-plugin.js","sourceRoot":"","sources":["../../../src/lib/jsdocs-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAClE,OAAO,EAA2B,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EACL,MAAM,EACN,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,YAAY,GACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,YAAY,CAAC,MAA0B;IACrD,MAAM,YAAY,GAAG,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC,CAAC;IAChE,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;IAE/C,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAExD,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,YAAY;QACnB,IAAI,EAAE,aAAa;QACnB,WAAW,EAAE,kBAAkB;QAC/B,OAAO,EAAE,eAAe;QACxB,MAAM;QACN,MAAM;QACN,MAAM,EAAE,oBAAoB,CAAC,YAAY,CAAC;QAC1C,GAAG,CAAC,YAAY,IAAI,EAAE,YAAY,EAAE,CAAC;KACtC,CAAC;AACJ,CAAC"}
|
|
@@ -11,26 +11,26 @@ type Node = {
|
|
|
11
11
|
};
|
|
12
12
|
/**
|
|
13
13
|
* Gets the variables information from the variable statements
|
|
14
|
-
* @param variableStatements
|
|
14
|
+
* @param variableStatements The variable statements to process
|
|
15
15
|
* @returns The variables information with the right methods to get the information
|
|
16
16
|
*/
|
|
17
17
|
export declare function getVariablesInformation(variableStatements: VariableStatement[]): Node[];
|
|
18
18
|
/**
|
|
19
19
|
* Processes documentation coverage for TypeScript files in the specified path
|
|
20
|
-
* @param config
|
|
20
|
+
* @param config The configuration object containing patterns to include for documentation analysis
|
|
21
21
|
* @returns Object containing coverage statistics and undocumented items
|
|
22
22
|
*/
|
|
23
23
|
export declare function processJsDocs(config: JsDocsPluginTransformedConfig): Record<CoverageType, FileCoverage[]>;
|
|
24
24
|
export declare function getAllNodesFromASourceFile(sourceFile: SourceFile): (Node | ClassDeclaration | import("ts-morph").FunctionDeclaration | import("ts-morph").MethodDeclaration | import("ts-morph").PropertyDeclaration | import("ts-morph").TypeAliasDeclaration | import("ts-morph").EnumDeclaration | import("ts-morph").InterfaceDeclaration)[];
|
|
25
25
|
/**
|
|
26
26
|
* Gets the documentation coverage report from the source files
|
|
27
|
-
* @param sourceFiles
|
|
27
|
+
* @param sourceFiles The source files to process
|
|
28
28
|
* @returns The documentation coverage report
|
|
29
29
|
*/
|
|
30
30
|
export declare function getDocumentationReport(sourceFiles: SourceFile[]): Record<CoverageType, FileCoverage[]>;
|
|
31
31
|
/**
|
|
32
32
|
* Gets the nodes from a class
|
|
33
|
-
* @param classNodes
|
|
33
|
+
* @param classNodes The class nodes to process
|
|
34
34
|
* @returns The nodes from the class
|
|
35
35
|
*/
|
|
36
36
|
export declare function getClassNodes(classNodes: ClassDeclaration[]): (import("ts-morph").MethodDeclaration | import("ts-morph").PropertyDeclaration)[];
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ClassDeclaration, JSDoc, Project, SourceFile, SyntaxKind, VariableStatement, } from 'ts-morph';
|
|
2
2
|
import { objectFromEntries, objectToEntries, } from '@code-pushup/utils';
|
|
3
|
-
import { createInitialCoverageTypesRecord, getCoverageTypeFromKind, singularCoverageType, } from './utils.js';
|
|
3
|
+
import { createInitialCoverageTypesRecord, getCoverageTypeFromKind, logReport, logSourceFiles, singularCoverageType, } from './utils.js';
|
|
4
4
|
/**
|
|
5
5
|
* Gets the variables information from the variable statements
|
|
6
|
-
* @param variableStatements
|
|
6
|
+
* @param variableStatements The variable statements to process
|
|
7
7
|
* @returns The variables information with the right methods to get the information
|
|
8
8
|
*/
|
|
9
9
|
export function getVariablesInformation(variableStatements) {
|
|
@@ -24,13 +24,17 @@ export function getVariablesInformation(variableStatements) {
|
|
|
24
24
|
}
|
|
25
25
|
/**
|
|
26
26
|
* Processes documentation coverage for TypeScript files in the specified path
|
|
27
|
-
* @param config
|
|
27
|
+
* @param config The configuration object containing patterns to include for documentation analysis
|
|
28
28
|
* @returns Object containing coverage statistics and undocumented items
|
|
29
29
|
*/
|
|
30
30
|
export function processJsDocs(config) {
|
|
31
31
|
const project = new Project();
|
|
32
32
|
project.addSourceFilesAtPaths(config.patterns);
|
|
33
|
-
|
|
33
|
+
const sourceFiles = project.getSourceFiles();
|
|
34
|
+
logSourceFiles(sourceFiles, config);
|
|
35
|
+
const report = getDocumentationReport(sourceFiles);
|
|
36
|
+
logReport(report);
|
|
37
|
+
return report;
|
|
34
38
|
}
|
|
35
39
|
export function getAllNodesFromASourceFile(sourceFile) {
|
|
36
40
|
const classes = sourceFile.getClasses();
|
|
@@ -46,7 +50,7 @@ export function getAllNodesFromASourceFile(sourceFile) {
|
|
|
46
50
|
}
|
|
47
51
|
/**
|
|
48
52
|
* Gets the documentation coverage report from the source files
|
|
49
|
-
* @param sourceFiles
|
|
53
|
+
* @param sourceFiles The source files to process
|
|
50
54
|
* @returns The documentation coverage report
|
|
51
55
|
*/
|
|
52
56
|
export function getDocumentationReport(sourceFiles) {
|
|
@@ -62,8 +66,8 @@ export function getDocumentationReport(sourceFiles) {
|
|
|
62
66
|
}
|
|
63
67
|
/**
|
|
64
68
|
* Gets the coverage from all nodes of a file
|
|
65
|
-
* @param nodes
|
|
66
|
-
* @param filePath
|
|
69
|
+
* @param nodes The nodes to process
|
|
70
|
+
* @param filePath The file path where the nodes are located
|
|
67
71
|
* @returns The coverage report for the nodes
|
|
68
72
|
*/
|
|
69
73
|
function getCoverageFromAllNodesOfFile(nodes, filePath) {
|
|
@@ -101,7 +105,7 @@ function getCoverageFromAllNodesOfFile(nodes, filePath) {
|
|
|
101
105
|
}
|
|
102
106
|
/**
|
|
103
107
|
* Gets the nodes from a class
|
|
104
|
-
* @param classNodes
|
|
108
|
+
* @param classNodes The class nodes to process
|
|
105
109
|
* @returns The nodes from the class
|
|
106
110
|
*/
|
|
107
111
|
export function getClassNodes(classNodes) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-processor.js","sourceRoot":"","sources":["../../../../src/lib/runner/doc-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,KAAK,EACL,OAAO,EACP,UAAU,EACV,UAAU,EACV,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,OAAO,EAEL,iBAAiB,EACjB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,gCAAgC,EAChC,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAUpB;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,kBAAuC;IAEvC,OAAO,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QAC3C,+BAA+B;QAC/B,MAAM,UAAU,GAAG;YACjB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE;YACjC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,EAAE;YACrC,kBAAkB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,kBAAkB,EAAE;YACvD,gBAAgB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE;SACpD,CAAC;QAEF,6EAA6E;QAC7E,OAAO,QAAQ,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACpD,GAAG,UAAU;YACb,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE;SACrC,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAqC;IAErC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,
|
|
1
|
+
{"version":3,"file":"doc-processor.js","sourceRoot":"","sources":["../../../../src/lib/runner/doc-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { SyntaxKind } from 'ts-morph';
|
|
1
|
+
import { type SourceFile, SyntaxKind } from 'ts-morph';
|
|
2
|
+
import { type FileCoverage } from '@code-pushup/utils';
|
|
3
|
+
import type { JsDocsPluginTransformedConfig } from '../config.js';
|
|
2
4
|
import type { CoverageType } from './models.js';
|
|
3
5
|
/**
|
|
4
6
|
* Creates an empty unprocessed coverage report.
|
|
@@ -24,3 +26,5 @@ export declare function getCoverageTypeFromKind(kind: SyntaxKind): CoverageType;
|
|
|
24
26
|
* @returns Singular form of coverage type
|
|
25
27
|
*/
|
|
26
28
|
export declare function singularCoverageType(type: CoverageType): string;
|
|
29
|
+
export declare function logSourceFiles(sourceFiles: SourceFile[], config: JsDocsPluginTransformedConfig): void;
|
|
30
|
+
export declare function logReport(report: Record<CoverageType, FileCoverage[]>): void;
|
package/src/lib/runner/utils.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SyntaxKind } from 'ts-morph';
|
|
2
|
+
import { aggregateCoverageStats, capitalize, formatAsciiTable, formatCoveragePercentage, logger, objectToEntries, pluralize, pluralizeToken, toArray, } from '@code-pushup/utils';
|
|
2
3
|
import { SYNTAX_COVERAGE_MAP } from './constants.js';
|
|
3
4
|
/**
|
|
4
5
|
* Creates an empty unprocessed coverage report.
|
|
@@ -62,4 +63,33 @@ export function singularCoverageType(type) {
|
|
|
62
63
|
return 'variable';
|
|
63
64
|
}
|
|
64
65
|
}
|
|
66
|
+
export function logSourceFiles(sourceFiles, config) {
|
|
67
|
+
const patterns = toArray(config.patterns);
|
|
68
|
+
logger.info(`Found ${pluralizeToken('source file', sourceFiles.length)} matching ${pluralize('pattern', patterns.length)} ${patterns.join(' ')}`);
|
|
69
|
+
}
|
|
70
|
+
export function logReport(report) {
|
|
71
|
+
const typesCount = Object.keys(report).length;
|
|
72
|
+
logger.info(`Collected documentation coverage for ${pluralizeToken('type', typesCount)} of ${pluralize('entity', typesCount)}`);
|
|
73
|
+
if (!logger.isVerbose()) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
logger.debug(formatAsciiTable({
|
|
77
|
+
columns: [
|
|
78
|
+
{ key: 'type', label: 'Entity', align: 'left' },
|
|
79
|
+
{ key: 'covered', label: 'Hits', align: 'right' },
|
|
80
|
+
{ key: 'total', label: 'Found', align: 'right' },
|
|
81
|
+
{ key: 'coverage', label: 'Coverage', align: 'right' },
|
|
82
|
+
],
|
|
83
|
+
rows: objectToEntries(report)
|
|
84
|
+
.map(([type, files]) => {
|
|
85
|
+
const stats = aggregateCoverageStats(files);
|
|
86
|
+
return {
|
|
87
|
+
...stats,
|
|
88
|
+
type: capitalize(type),
|
|
89
|
+
coverage: formatCoveragePercentage(stats),
|
|
90
|
+
};
|
|
91
|
+
})
|
|
92
|
+
.toSorted((a, b) => b.total - a.total),
|
|
93
|
+
}));
|
|
94
|
+
}
|
|
65
95
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/runner/utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/lib/runner/utils.ts"],"names":[],"mappings":"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"}
|
package/src/lib/utils.d.ts
CHANGED
|
@@ -16,3 +16,4 @@ export declare function filterAuditsByPluginConfig(config: Pick<JsDocsPluginTran
|
|
|
16
16
|
* @returns The filtered groups.
|
|
17
17
|
*/
|
|
18
18
|
export declare function filterGroupsByOnlyAudits(groups: Group[], options: Pick<JsDocsPluginTransformedConfig, 'onlyAudits' | 'skipAudits'>): Group[];
|
|
19
|
+
export declare function logAuditsAndGroups(audits: Audit[], groups: Group[]): void;
|
package/src/lib/utils.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { logger, pluralizeToken } from '@code-pushup/utils';
|
|
2
|
+
import { AUDITS_MAP, GROUPS } from './constants.js';
|
|
3
|
+
import { formatMetaLog } from './format.js';
|
|
2
4
|
/**
|
|
3
5
|
* Get audits based on the configuration.
|
|
4
6
|
* If no audits are specified, return all audits.
|
|
@@ -32,4 +34,18 @@ export function filterGroupsByOnlyAudits(groups, options) {
|
|
|
32
34
|
}))
|
|
33
35
|
.filter(group => group.refs.length > 0);
|
|
34
36
|
}
|
|
37
|
+
export function logAuditsAndGroups(audits, groups) {
|
|
38
|
+
logger.info(formatMetaLog(`Created ${pluralizeToken('audit', audits.length)} and ${pluralizeToken('group', groups.length)}`));
|
|
39
|
+
const skippedAudits = Object.keys(AUDITS_MAP).filter(slug => !audits.some(audit => audit.slug === slug));
|
|
40
|
+
const skippedGroups = GROUPS.filter(group => !groups.some(({ slug }) => slug === group.slug));
|
|
41
|
+
if (skippedAudits.length > 0) {
|
|
42
|
+
logger.info(formatMetaLog([
|
|
43
|
+
`Skipped ${pluralizeToken('audit', skippedAudits.length)}`,
|
|
44
|
+
skippedGroups.length > 0 &&
|
|
45
|
+
pluralizeToken('group', skippedGroups.length),
|
|
46
|
+
]
|
|
47
|
+
.filter(Boolean)
|
|
48
|
+
.join(' and ')));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
35
51
|
//# sourceMappingURL=utils.js.map
|
package/src/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,MAAwE;IAExE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IAE1C,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC9C,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAChC,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CACrC,KAAK,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAC1C,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAe,EACf,OAAyE;IAEzE,MAAM,MAAM,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,MAAM;SACV,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACb,GAAG,KAAK;QACR,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAC9C;KACF,CAAC,CAAC;SACF,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAe,EAAE,MAAe;IACjE,MAAM,CAAC,IAAI,CACT,aAAa,CACX,WAAW,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAClG,CACF,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAClD,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CACnD,CAAC;IACF,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CACjC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,CACzD,CAAC;IACF,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CACT,aAAa,CACX;YACE,WAAW,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,EAAE;YAC1D,aAAa,CAAC,MAAM,GAAG,CAAC;gBACtB,cAAc,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC;SAChD;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,OAAO,CAAC,CACjB,CACF,CAAC;IACJ,CAAC;AACH,CAAC"}
|