uxp-linter-test-app
Version:
UXP LINTER is useful for linting your code with ESLint rules and guidelines.
58 lines (46 loc) • 1.67 kB
JavaScript
;
require("v8-compile-cache");
var fs = require('fs'),
utils = require('./utils'),
path = require('path'),
constants = require('./constants');
const { prettierPackageName, prettierTypeArray } = constants;
// For starting the configuration for prettier
function configurePrettier(param) {
return new Promise(function (resolve, reject) {
if (param === 'remove') {
uninstallPrettier().then(() => { resolve(true) });
} else {
installPrettier().then(() => { resolve(true) });
}
});
}
function isPrettierInstalled() {
return new Promise(async function (resolve, reject) {
let configData = utils.readLinterConfig();
resolve(configData['prettier']);
})
}
async function installPrettier() {
await utils.installPackages(prettierPackageName, true);
// For adding prettierrc file
await utils.createFileBackup(prettierTypeArray, '_backup');
const eslintrcFilePath = path.join(__dirname, 'templates/prettier.json');
await utils.addConfigFile(eslintrcFilePath, '.prettierrc', true);
return true;
}
async function uninstallPrettier() {
if (await isPrettierInstalled()) {
// For restoring backup file
var fileExist = fs.existsSync('.prettierrc');
if (fileExist) {
fs.unlink('.prettierrc', function (err) {
if (err) throw err;
});
await utils.restoreBackupFile(prettierTypeArray, '_backup');
}
await utils.uninstallPackages(prettierPackageName);
}
}
module.exports = { configurePrettier, isPrettierInstalled, installPrettier };