apex-code-coverage-transformer 2.11.3 → 2.11.4

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/CHANGELOG.md CHANGED
@@ -5,6 +5,13 @@
5
5
 
6
6
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
7
7
 
8
+ ## [2.11.4](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v2.11.3...v2.11.4) (2025-05-26)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * merge coverage transformer functions ([5eadaac](https://github.com/mcarvin8/apex-code-coverage-transformer/commit/5eadaacff9e20cc72e330a3dcd44aa05dd6bf5a4))
14
+
8
15
  ## [2.11.3](https://github.com/mcarvin8/apex-code-coverage-transformer/compare/v2.11.2...v2.11.3) (2025-05-22)
9
16
 
10
17
 
package/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # `apex-code-coverage-transformer`
2
2
 
3
- [![NPM](https://img.shields.io/npm/v/apex-code-coverage-transformer.svg?label=apex-code-coverage-transformer)](https://www.npmjs.com/package/apex-code-coverage-transformer) [![Downloads/week](https://img.shields.io/npm/dw/apex-code-coverage-transformer.svg)](https://npmjs.org/package/apex-code-coverage-transformer) [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/LICENSE.md) [![Maintainability](https://qlty.sh/badges/11057a07-84da-41af-91fb-b3476e404242/maintainability.svg)](https://qlty.sh/gh/mcarvin8/projects/apex-code-coverage-transformer)
3
+ [![NPM](https://img.shields.io/npm/v/apex-code-coverage-transformer.svg?label=apex-code-coverage-transformer)](https://www.npmjs.com/package/apex-code-coverage-transformer)
4
+ [![Downloads/week](https://img.shields.io/npm/dw/apex-code-coverage-transformer.svg)](https://npmjs.org/package/apex-code-coverage-transformer)
5
+ [![License](https://img.shields.io/badge/License-MIT-yellow.svg)](https://raw.githubusercontent.com/mcarvin8/apex-code-coverage-transformer/main/LICENSE.md)
6
+ [![Maintainability](https://qlty.sh/badges/11057a07-84da-41af-91fb-b3476e404242/maintainability.svg)](https://qlty.sh/gh/mcarvin8/projects/apex-code-coverage-transformer)
7
+
4
8
  <!-- TABLE OF CONTENTS -->
5
9
  <details>
6
10
  <summary>Table of Contents</summary>
@@ -3,9 +3,7 @@ import { resolve } from 'node:path';
3
3
  import { writeFile, readFile } from 'node:fs/promises';
4
4
  import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
5
5
  import { Messages } from '@salesforce/core';
6
- import { transformDeployCoverageReport } from '../../transformers/deployTransformer.js';
7
- import { transformTestCoverageReport } from '../../transformers/testTransformer.js';
8
- import { checkCoverageDataType } from '../../utils/setCoverageDataType.js';
6
+ import { transformCoverageReport } from '../../transformers/coverageTransformer.js';
9
7
  import { formatOptions } from '../../utils/constants.js';
10
8
  Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
11
9
  const messages = Messages.loadMessages('apex-code-coverage-transformer', 'transformer.transform');
@@ -58,21 +56,13 @@ export default class TransformerTransform extends SfCommand {
58
56
  let warnings = [];
59
57
  let filesProcessed = 0;
60
58
  const parsedData = JSON.parse(jsonData);
61
- const commandType = checkCoverageDataType(parsedData);
62
- // Determine the type of coverage data using type guards
63
- if (commandType === 'TestCoverageData') {
64
- const result = await transformTestCoverageReport(parsedData, format, ignoreDirs);
65
- xmlData = result.xml;
66
- warnings = result.warnings;
67
- filesProcessed = result.filesProcessed;
68
- }
69
- else if (commandType === 'DeployCoverageData') {
70
- const result = await transformDeployCoverageReport(parsedData, format, ignoreDirs);
59
+ try {
60
+ const result = await transformCoverageReport(parsedData, format, ignoreDirs);
71
61
  xmlData = result.xml;
72
62
  warnings = result.warnings;
73
63
  filesProcessed = result.filesProcessed;
74
64
  }
75
- else {
65
+ catch (err) {
76
66
  this.error('The provided JSON does not match a known coverage data format from the Salesforce deploy or test command.');
77
67
  }
78
68
  // Print warnings if any
@@ -1 +1 @@
1
- {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/commands/acc-transformer/transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/commands/acc-transformer/transform.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { DeployCoverageData, TestCoverageData } from '../utils/types.js';
2
+ type CoverageInput = DeployCoverageData | TestCoverageData[];
3
+ export declare function transformCoverageReport(data: CoverageInput, format: string, ignoreDirs: string[]): Promise<{
4
+ xml: string;
5
+ warnings: string[];
6
+ filesProcessed: number;
7
+ }>;
8
+ export {};
@@ -0,0 +1,55 @@
1
+ /* eslint-disable @typescript-eslint/await-thenable */
2
+ import { mapLimit } from 'async';
3
+ import { getCoverageHandler } from '../handlers/getHandler.js';
4
+ import { getPackageDirectories } from '../utils/getPackageDirectories.js';
5
+ import { findFilePath } from '../utils/findFilePath.js';
6
+ import { setCoveredLines } from '../utils/setCoveredLines.js';
7
+ import { getConcurrencyThreshold } from '../utils/getConcurrencyThreshold.js';
8
+ import { checkCoverageDataType } from '../utils/setCoverageDataType.js';
9
+ import { generateReport } from './reportGenerator.js';
10
+ export async function transformCoverageReport(data, format, ignoreDirs) {
11
+ const warnings = [];
12
+ let filesProcessed = 0;
13
+ const { repoRoot, packageDirectories } = await getPackageDirectories(ignoreDirs);
14
+ const handler = getCoverageHandler(format);
15
+ const commandType = checkCoverageDataType(data);
16
+ const concurrencyLimit = getConcurrencyThreshold();
17
+ if (commandType === 'DeployCoverageData') {
18
+ await mapLimit(Object.keys(data), concurrencyLimit, async (fileName) => {
19
+ const fileInfo = data[fileName];
20
+ const formattedFileName = fileName.replace(/no-map[\\/]+/, '');
21
+ const relativeFilePath = await findFilePath(formattedFileName, packageDirectories, repoRoot);
22
+ if (!relativeFilePath) {
23
+ warnings.push(`The file name ${formattedFileName} was not found in any package directory.`);
24
+ return;
25
+ }
26
+ const updatedLines = await setCoveredLines(relativeFilePath, repoRoot, fileInfo.s);
27
+ fileInfo.s = updatedLines;
28
+ handler.processFile(relativeFilePath, formattedFileName, fileInfo.s);
29
+ filesProcessed++;
30
+ });
31
+ }
32
+ else if (commandType === 'TestCoverageData') {
33
+ await mapLimit(data, concurrencyLimit, async (entry) => {
34
+ const name = entry?.name;
35
+ const lines = entry?.lines;
36
+ if (!name || !lines)
37
+ return;
38
+ const formattedFileName = name.replace(/no-map[\\/]+/, '');
39
+ const relativeFilePath = await findFilePath(formattedFileName, packageDirectories, repoRoot);
40
+ if (!relativeFilePath) {
41
+ warnings.push(`The file name ${formattedFileName} was not found in any package directory.`);
42
+ return;
43
+ }
44
+ handler.processFile(relativeFilePath, formattedFileName, lines);
45
+ filesProcessed++;
46
+ });
47
+ }
48
+ else {
49
+ throw new Error('Unknown coverage data type. Cannot generate report.');
50
+ }
51
+ const coverageObj = handler.finalize();
52
+ const xml = generateReport(coverageObj, format);
53
+ return { xml, warnings, filesProcessed };
54
+ }
55
+ //# sourceMappingURL=coverageTransformer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverageTransformer.js","sourceRoot":"","sources":["../../src/transformers/coverageTransformer.ts"],"names":[],"mappings":"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"}
@@ -96,5 +96,5 @@
96
96
  ]
97
97
  }
98
98
  },
99
- "version": "2.11.3"
99
+ "version": "2.11.4"
100
100
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "apex-code-coverage-transformer",
3
3
  "description": "Transform Salesforce Apex code coverage JSONs created during deployments and test runs into other formats accepted by SonarQube, GitHub, GitLab, Azure, Bitbucket, etc.",
4
- "version": "2.11.3",
4
+ "version": "2.11.4",
5
5
  "dependencies": {
6
6
  "@oclif/core": "^4.3.0",
7
7
  "@salesforce/core": "^8.8.6",
@@ -1,6 +0,0 @@
1
- import { DeployCoverageData } from '../utils/types.js';
2
- export declare function transformDeployCoverageReport(data: DeployCoverageData, format: string, ignoreDirs: string[]): Promise<{
3
- xml: string;
4
- warnings: string[];
5
- filesProcessed: number;
6
- }>;
@@ -1,38 +0,0 @@
1
- 'use strict';
2
- import { mapLimit } from 'async';
3
- import { getCoverageHandler } from '../handlers/getHandler.js';
4
- import { getPackageDirectories } from '../utils/getPackageDirectories.js';
5
- import { findFilePath } from '../utils/findFilePath.js';
6
- import { setCoveredLines } from '../utils/setCoveredLines.js';
7
- import { getConcurrencyThreshold } from '../utils/getConcurrencyThreshold.js';
8
- import { generateReport } from './reportGenerator.js';
9
- export async function transformDeployCoverageReport(data, format, ignoreDirs) {
10
- const warnings = [];
11
- let filesProcessed = 0;
12
- const { repoRoot, packageDirectories } = await getPackageDirectories(ignoreDirs);
13
- const handler = getCoverageHandler(format);
14
- const processFile = async (fileName) => {
15
- const fileInfo = data[fileName];
16
- const formattedFileName = fileName.replace(/no-map[\\/]+/, '');
17
- const relativeFilePath = await findFilePath(formattedFileName, packageDirectories, repoRoot);
18
- if (!relativeFilePath) {
19
- warnings.push(`The file name ${formattedFileName} was not found in any package directory.`);
20
- return false;
21
- }
22
- const updatedLines = await setCoveredLines(relativeFilePath, repoRoot, fileInfo.s);
23
- fileInfo.s = updatedLines;
24
- handler.processFile(relativeFilePath, formattedFileName, fileInfo.s);
25
- return true;
26
- };
27
- const concurrencyLimit = getConcurrencyThreshold();
28
- await mapLimit(Object.keys(data).filter((fileName) => Object.hasOwn(data, fileName)), concurrencyLimit, async (fileName) => {
29
- const result = await processFile(fileName);
30
- if (result) {
31
- filesProcessed++;
32
- }
33
- });
34
- const coverageObj = handler.finalize();
35
- const xml = generateReport(coverageObj, format);
36
- return { xml, warnings, filesProcessed };
37
- }
38
- //# sourceMappingURL=deployTransformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"deployTransformer.js","sourceRoot":"","sources":["../../src/transformers/deployTransformer.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,IAAwB,EACxB,MAAc,EACd,UAAoB;IAEpB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE3C,MAAM,WAAW,GAAG,KAAK,EAAE,QAAgB,EAAoB,EAAE;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QAE7F,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,iBAAiB,iBAAiB,0CAA0C,CAAC,CAAC;YAC5F,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnF,QAAQ,CAAC,CAAC,GAAG,YAAY,CAAC;QAE1B,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,uBAAuB,EAAE,CAAC;IACnD,MAAM,QAAQ,CACZ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EACrE,gBAAgB,EAChB,KAAK,EAAE,QAAgB,EAAE,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CACF,CAAC;IAEF,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAEhD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AAC3C,CAAC"}
@@ -1,6 +0,0 @@
1
- import { TestCoverageData } from '../utils/types.js';
2
- export declare function transformTestCoverageReport(testCoverageData: TestCoverageData[], format: string, ignoreDirs: string[]): Promise<{
3
- xml: string;
4
- warnings: string[];
5
- filesProcessed: number;
6
- }>;
@@ -1,40 +0,0 @@
1
- 'use strict';
2
- import { mapLimit } from 'async';
3
- import { getCoverageHandler } from '../handlers/getHandler.js';
4
- import { getPackageDirectories } from '../utils/getPackageDirectories.js';
5
- import { findFilePath } from '../utils/findFilePath.js';
6
- import { getConcurrencyThreshold } from '../utils/getConcurrencyThreshold.js';
7
- import { generateReport } from './reportGenerator.js';
8
- export async function transformTestCoverageReport(testCoverageData, format, ignoreDirs) {
9
- const warnings = [];
10
- let filesProcessed = 0;
11
- const { repoRoot, packageDirectories } = await getPackageDirectories(ignoreDirs);
12
- const handler = getCoverageHandler(format);
13
- // Ensure testCoverageData is an array
14
- const coverageData = Array.isArray(testCoverageData) ? testCoverageData : [testCoverageData];
15
- const processFile = async (data) => {
16
- const name = data?.name;
17
- const lines = data?.lines;
18
- if (!name || !lines)
19
- return false;
20
- const formattedFileName = name.replace(/no-map[\\/]+/, '');
21
- const relativeFilePath = await findFilePath(formattedFileName, packageDirectories, repoRoot);
22
- if (!relativeFilePath) {
23
- warnings.push(`The file name ${formattedFileName} was not found in any package directory.`);
24
- return false;
25
- }
26
- handler.processFile(relativeFilePath, formattedFileName, lines);
27
- return true;
28
- };
29
- const concurrencyLimit = getConcurrencyThreshold();
30
- await mapLimit(coverageData, concurrencyLimit, async (data) => {
31
- const result = await processFile(data);
32
- if (result) {
33
- filesProcessed++;
34
- }
35
- });
36
- const coverageObj = handler.finalize();
37
- const xml = generateReport(coverageObj, format);
38
- return { xml, warnings, filesProcessed };
39
- }
40
- //# sourceMappingURL=testTransformer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testTransformer.js","sourceRoot":"","sources":["../../src/transformers/testTransformer.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,gBAAoC,EACpC,MAAc,EACd,UAAoB;IAEpB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,GAAG,MAAM,qBAAqB,CAAC,UAAU,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAE3C,sCAAsC;IACtC,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IAE7F,MAAM,WAAW,GAAG,KAAK,EAAE,IAAsB,EAAoB,EAAE;QACrE,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,CAAC;QAE1B,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAElC,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QAC3D,MAAM,gBAAgB,GAAG,MAAM,YAAY,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,QAAQ,CAAC,CAAC;QAE7F,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,iBAAiB,iBAAiB,0CAA0C,CAAC,CAAC;YAC5F,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,KAAK,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,uBAAuB,EAAE,CAAC;IACnD,MAAM,QAAQ,CAAC,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAsB,EAAE,EAAE;QAC9E,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,EAAE,CAAC;YACX,cAAc,EAAE,CAAC;QACnB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,cAAc,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAEhD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AAC3C,CAAC"}