sonar-js-coverage-convertor
Version:
Convert Istanbul coverage reports to SonarQube Generic Data format for Polymer app usage
1 lines • 3.21 kB
JavaScript
;var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){return new(P||(P=Promise))(function(resolve,reject){function fulfilled(value){try{step(generator.next(value))}catch(e){reject(e)}}function rejected(value){try{step(generator["throw"](value))}catch(e){reject(e)}}function step(result){result.done?resolve(result.value):new P(function(resolve){resolve(result.value)}).then(fulfilled,rejected)}step((generator=generator.apply(thisArg,_arguments||[])).next())})};Object.defineProperty(exports,"__esModule",{value:true});const launchpad=require("launchpad");const promisify=require("promisify-node");const LAUNCHPAD_TO_SELENIUM={chrome:chrome,canary:chrome,firefox:firefox,aurora:firefox,ie:internetExplorer,safari:safari};function normalize(browsers){return(browsers||[]).map(function(browser){if(typeof browser==="string"){return browser}return browser.browserName})}exports.normalize=normalize;function expand(names){return __awaiter(this,void 0,void 0,function*(){if(names.indexOf("all")!==-1){names=[]}const unsupported=difference(names,exports.supported());if(unsupported.length>0){throw new Error(`The following browsers are unsupported: ${unsupported.join(", ")}. `+`(All supported browsers: ${exports.supported().join(", ")})`)}const installedByName=yield exports.detect();const installed=Object.keys(installedByName);if(names.length===0){names=installed}const missing=difference(names,installed);if(missing.length>0){throw new Error(`The following browsers were not found: ${missing.join(", ")}. `+`(All installed browsers found: ${installed.join(", ")})`)}return names.map(function(n){return installedByName[n]})})}exports.expand=expand;exports.detect=function detect(){return __awaiter(this,void 0,void 0,function*(){const launcher=yield promisify(launchpad.local)();const browsers=yield promisify(launcher.browsers)();const results={};for(const browser of browsers){if(!LAUNCHPAD_TO_SELENIUM[browser.name])continue;const converter=LAUNCHPAD_TO_SELENIUM[browser.name];const convertedBrowser=converter(browser);if(convertedBrowser){results[browser.name]=convertedBrowser}}return results})};exports.supported=function supported(){return Object.keys(launchpad.local.platform).filter(key=>key in LAUNCHPAD_TO_SELENIUM)};function chrome(browser){const CHROME_BROWSER_LAUNCH_ARGS=(process.env.CHROME_ARGS||`start-maximized,no-sandbox`).split(",");return{"browserName":"chrome","version":browser.version.match(/\d+/)[0],"chromeOptions":{"binary":browser.binPath,"args":CHROME_BROWSER_LAUNCH_ARGS}}}function firefox(browser){const version=parseInt(browser.version.match(/\d+/)[0],10);const marionette=version>=47;return{"browserName":"firefox","version":`${version}`,"firefox_binary":browser.binPath,marionette}}function safari(browser){return{"browserName":"safari","version":browser.version,"safari.options":{"skipExtensionInstallation":true}}}function phantom(browser){return{"browserName":"phantomjs","version":browser.version,"phantomjs.binary.path":browser.binPath}}function internetExplorer(browser){return{"browserName":"internet explorer","version":browser.version}}function difference(source,toRemove){return source.filter(value=>toRemove.indexOf(value)<0)}