UNPKG

merge-cobertura

Version:
101 lines 3.88 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getInputDataFromArgs = exports.validateArgs = void 0; const fast_xml_parser_1 = require("fast-xml-parser"); const fs = __importStar(require("fs")); const path = __importStar(require("path")); function printHelp() { const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, '../../package.json')).toString('utf-8')); console.log(`Version ${packageJson.version}`); console.log('Syntax: merge-cobertura [options]... [package=input...]'); console.log(''); console.log('Examples: merge-cobertura -o output.xml package1=output1.xml package2=output2.xml'); console.log(' merge-cobertura -p package1=output1.xml package2=output2.xml'); console.log(''); console.log('Options'); console.log('-o FILE Specify output file'); console.log('-p, --print print coverage report summary'); process.exit(); } const KNOWN_ARGS = ['_', 'o', 'p', 'print']; // initialize XMLParser const options = { ignoreAttributes: false, attributeNamePrefix: '', ignoreDeclaration: true, textNodeName: '$t', alwaysCreateTextNode: true, isArray: (name, _jpath, _isLeafNode, isAttribute) => { return !isAttribute && name !== 'coverage'; } }; const parser = new fast_xml_parser_1.XMLParser(options); function validateArgs(args) { // Check for unknown arguments const unknownArg = Object.keys(args).find((arg) => KNOWN_ARGS.indexOf(arg) === -1); if (unknownArg) { console.log(`Unknown argument ${unknownArg}\n`); printHelp(); process.exit(1); } if (args._.length < 3 || args.o === true || Array.isArray(args.o) || typeof args.p === 'string' || Array.isArray(args.p)) { // Input error printHelp(); } const inputArgs = args._.slice(2); if (inputArgs.some((input) => { // Check to see if the input is in format package=input const matches = input.match(/=/g); return !matches || matches.length !== 1 || input.split('=').some((part) => !part.trim()); })) { // Input error printHelp(); } } exports.validateArgs = validateArgs; function getInputDataFromArgs(args) { return args._.slice(2).map((inputArg) => { const parts = inputArg.split('='); const packageName = parts[0]; const fileName = parts[1]; let data; try { data = parser.parse(fs.readFileSync(fileName, 'utf-8')); } catch (e) { console.log(e); console.log(`Unable to read file ${fileName}`); process.exit(1); } return { packageName, fileName, data, }; }); } exports.getInputDataFromArgs = getInputDataFromArgs; //# sourceMappingURL=input.js.map