uxp-linter-test-app
Version:
UXP LINTER is useful for linting your code with ESLint rules and guidelines.
57 lines (50 loc) • 1.95 kB
JavaScript
;
require("v8-compile-cache");
var fs = require('fs'),
utils = require('../utils'),
packageJson = require('../../package.json'),
linterDependencies = require('../uxp-linter-dependencies.json');
let packageNameAboveEslint6 = '@babel/eslint-parser',
versionNumberAboveEslint6 = '7.19.1',
packageNameBelowEslint6 = 'babel-eslint',
versionNumberBelowEslint6 = '10.1.0',
peerDependencies = [
{
"packageName": "@babel/core",
"version": "^7.11.0"
},
],
rcFilePath = '',
templateJson = '';
/**
* For updating parser in json file
*/
async function runCmdCommand() {
var packageVersion = await utils.getPackageVersion('eslint');
await setRcFilePath();
let installPackName = [`${packageNameAboveEslint6}@${versionNumberAboveEslint6}`];
if (packageVersion && packageVersion < 7) {
installPackName = [`${packageNameBelowEslint6}@${versionNumberBelowEslint6}`];
templateJson.parser = packageNameBelowEslint6;
let 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() {
let uxpDependencies = [...linterDependencies.frameworks];
let configData = utils.readLinterConfig();
let projTypeArr = uxpDependencies.filter(obj => obj.type == configData['projectType']);
let projTypeObj = projTypeArr[0];
templateJson = require(`../${projTypeObj.languageType[0].eslintrcPath}`);
rcFilePath = `./node_modules/${packageJson.name}/bin/${projTypeObj.languageType[0].eslintrcPath}`;
}
module.exports = runCmdCommand();