uxp-linter-test-app
Version:
UXP LINTER is useful for linting your code with ESLint rules and guidelines.
76 lines (61 loc) • 2.74 kB
JavaScript
;
require("v8-compile-cache");
var readline = require("readline"),
fs = require('fs'),
path = require('path'),
constants = require('./bin/constants'),
utils = require('./bin/utils'),
// sonarConfig = require('./bin/sonar-config'),
uxpLinterConfig = require('./bin/uxp-linter-config'),
htmlConfig = require('./bin/html-linter-config'),
cssConfig = require('./bin/css-linter-config'),
ScriptData = require('./bin/script-data');
const { htmlConfigFileName } = constants;
async function initializeConfig() {
let scripts = [];
let uxpLinterInitCmd = `uxp-linter --init`;
let sd = new ScriptData('uxp-linter-init', uxpLinterInitCmd);
scripts.push(sd);
if (!fs.existsSync(path.join(__dirname, './../../package.json'))) {
await utils.initializePackageJson();
} else {
await utils.addScriptPackageJSON(scripts, path.join(__dirname, './../../package.json'));
}
if (!fs.existsSync(path.join(__dirname, './../../.uxplinterrc.json'))) {
await utils.initializeLinterConfig();
// require('./bin/index');
} else {
let configData = utils.readLinterConfig();
installRequestedLinter(configData);
}
}
async function installRequestedLinter(configData) {
if (configData['js-linter']) {
console.log('\x1b[32m%s\x1b[0m', '\nStart: UXP JS Linter installation.');
await uxpLinterConfig.installUxpLinter()
await utils.updateLinterConfig({'js-linter': true});
console.log("JS installation complete")
}
if (configData['html-linter']) {
console.log('\x1b[32m%s\x1b[0m', '\nStart: UXP HTML Linter installation.');
const eslintConfigFilePath = path.join(__dirname, `./bin/${htmlConfigFileName}`);
await htmlConfig.installHtmlLinter(eslintConfigFilePath, htmlConfigFileName)
await utils.updateLinterConfig({'html-linter': true});
console.log("HTML installation complete")
}
if (configData['css-linter']) {
console.log('\x1b[32m%s\x1b[0m', '\nStart: UXP CSS Linter installation.');
const cssConfigFileName = './.stylelintrc.json';
const eslintConfigFilePath = path.join(__dirname, './bin/.stylelintrc.json');
await cssConfig.installCssLinter(eslintConfigFilePath, cssConfigFileName);
await utils.updateLinterConfig({'css-linter': true});
console.log("CSS installation complete")
}
// if (configData['sonar-properties-initialized']) {
// if (!fs.existsSync(path.join(__dirname, `./../../sonar-project.properties`)))
// await sonarConfig.initializeSonarProperties();
// }
process.exit();
}
module.exports = initializeConfig();