UNPKG

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
#!/usr/bin/env node "use strict"; 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();