UNPKG

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