ianalyzer-test-app
Version:
A versatile code analysis tool for JavaScript, HTML, CSS, Angular, React, Vue, and ES6. iAnalyzer ensures code quality through linting, integrates with Sonar for in-depth analysis, performs npm package security checks, assesses performance, and enhances a
58 lines (50 loc) • 2.03 kB
JavaScript
;
require('v8-compile-cache');
const fs = require('fs'),
utils = require('../utils'),
packageJson = require('../../package.json'),
linterDependencies = require('../ianalyzer-dependencies.json');
const packageNameAboveEslint6 = '@babel/eslint-parser',
versionNumberAboveEslint6 = '7.19.1',
packageNameBelowEslint6 = 'babel-eslint',
versionNumberBelowEslint6 = '10.1.0',
peerDependencies = [
{
packageName: '@babel/core',
version: '^7.11.0'
},
];
let rcFilePath = '',
templateJson = '';
/**
* For updating parser in json file
*/
async function runCmdCommand() {
const packageVersion = await utils.getPackageVersion('eslint');
await setRcFilePath();
let installPackName = [`${packageNameAboveEslint6}@${versionNumberAboveEslint6}`];
if (packageVersion && packageVersion < 7) {
installPackName = [`${packageNameBelowEslint6}@${versionNumberBelowEslint6}`];
templateJson.parser = packageNameBelowEslint6;
const data = JSON.stringify(templateJson, null, 4);
fs.writeFileSync(rcFilePath, data);
}
if(utils.isPeerDepsInstallationReqd()) {
peerDependencies.forEach(pkg => {
const { packageName, version } = pkg;
installPackName.push(`${packageName}@${version}`);
})
}
await utils.installPackages(installPackName, true);
}
// For setting rc file path for
async function setRcFilePath() {
const iAnalyzerDependencies = [...linterDependencies.frameworks];
const configData = utils.readLinterConfig();
const projTypeArr = iAnalyzerDependencies.filter((obj) => obj.type === configData.projectType);
const projTypeObj = projTypeArr[0];
templateJson = require(`../${projTypeObj.languageType[0].eslintrcPath}`);
rcFilePath = `./node_modules/${packageJson.name}/bin/${projTypeObj.languageType[0].eslintrcPath}`;
}
module.exports = runCmdCommand();