UNPKG

apex-code-coverage-transformer

Version:

Transform Salesforce Apex code coverage JSONs into other formats accepted by SonarQube, GitHub, GitLab, Azure, Bitbucket, etc.

53 lines 2.21 kB
'use strict'; import { SfCommand, Flags } from '@salesforce/sf-plugins-core'; import { Messages } from '@salesforce/core'; import { transformCoverageReport } from '../../transformers/coverageTransformer.js'; import { formatOptions } from '../../utils/constants.js'; Messages.importMessagesDirectoryFromMetaUrl(import.meta.url); const messages = Messages.loadMessages('apex-code-coverage-transformer', 'transformer.transform'); export default class TransformerTransform extends SfCommand { static summary = messages.getMessage('summary'); static description = messages.getMessage('description'); static examples = messages.getMessages('examples'); static flags = { 'coverage-json': Flags.file({ summary: messages.getMessage('flags.coverage-json.summary'), char: 'j', required: true, }), 'output-report': Flags.file({ summary: messages.getMessage('flags.output-report.summary'), char: 'r', required: true, default: 'coverage.xml', }), format: Flags.string({ summary: messages.getMessage('flags.format.summary'), char: 'f', required: false, multiple: true, options: formatOptions, }), 'ignore-package-directory': Flags.directory({ summary: messages.getMessage('flags.ignore-package-directory.summary'), char: 'i', required: false, multiple: true, }), }; async run() { const { flags } = await this.parse(TransformerTransform); const warnings = []; const result = await transformCoverageReport(flags['coverage-json'], flags['output-report'], flags['format'] ?? ['sonar'], flags['ignore-package-directory'] ?? []); warnings.push(...result.warnings); const finalPath = result.finalPaths; if (warnings.length > 0) { warnings.forEach((warning) => { this.warn(warning); }); } this.log(`The coverage report has been written to: ${finalPath.join(', ')}`); return { path: finalPath }; } } //# sourceMappingURL=transform.js.map