@zohodesk/codestandard-validator 0.0.4-exp-2 → 0.0.4-exp-6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/lib/postinstall.js
CHANGED
|
@@ -35,7 +35,7 @@ async function postInstall() {
|
|
|
35
35
|
isGitInitialized() ? await executeMethodsThatReturnBooleanValue("Some issue occurred in setting up husky.", setupHusky, null) : null;
|
|
36
36
|
await executeMethodsThatReturnBooleanValue("Make sure zgit.csez.zohocorpin.com is accessible", cloneViaCdt, null);
|
|
37
37
|
await executeMethodsThatReturnBooleanValue("Some issue occurred in creating eslint config file.", createEslintConfigFile, null);
|
|
38
|
-
Logger.log(Logger.SUCCESS_TYPE, "Pre commit setup
|
|
38
|
+
Logger.log(Logger.SUCCESS_TYPE, "Pre commit setup successfull");
|
|
39
39
|
arePluginsInstalled();
|
|
40
40
|
} catch (error) {
|
|
41
41
|
Logger.log(Logger.FAILURE_TYPE, `Kindly retry npm install. & ${error.message}`);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const path = require('path');
|
|
4
|
+
const {
|
|
5
|
+
getNodeModulesPath
|
|
6
|
+
} = require('../General/getNodeModulesPath');
|
|
7
|
+
const {
|
|
8
|
+
writeFileSync
|
|
9
|
+
} = require('fs');
|
|
10
|
+
const {
|
|
11
|
+
Logger
|
|
12
|
+
} = require('../Logger/Logger');
|
|
13
|
+
function createVersionControlFile(uninstalledPlugins) {
|
|
14
|
+
Logger.log(Logger.INFO_TYPE, `Rule Plugin Versions are Noted in pluginVersionControl.js`);
|
|
15
|
+
const versionfilePath = path.join(getNodeModulesPath(), 'node_modules', '@zohodesk', 'codestandard-validator', 'pluginVersionControl.js');
|
|
16
|
+
writeFileSync(versionfilePath, `module.exports.plugins = [${uninstalledPlugins.map(plugin => {
|
|
17
|
+
return JSON.stringify({
|
|
18
|
+
plugin: `${plugin}`,
|
|
19
|
+
time: `${new Date()}`
|
|
20
|
+
});
|
|
21
|
+
}).join(',')}]`);
|
|
22
|
+
}
|
|
23
|
+
module.exports = {
|
|
24
|
+
createVersionControlFile
|
|
25
|
+
};
|
|
@@ -74,30 +74,50 @@ function getAllPlugins() {
|
|
|
74
74
|
*/
|
|
75
75
|
function checkIfPluginsAreInstalled() {
|
|
76
76
|
const pluginsForCurrentRepo = getAllPlugins();
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
var uninstalledPlugins = [];
|
|
78
|
+
var plugin = {
|
|
79
79
|
noPluginMessage: '',
|
|
80
80
|
uninstalledPlugins: []
|
|
81
81
|
};
|
|
82
|
-
let pluginsIndevDependencies = {}
|
|
83
|
-
let pluginNamesOfDevDependencyPlugins = []
|
|
84
|
-
let arePluginsPresentIndevDependencies = false
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
82
|
+
// let pluginsIndevDependencies = {}
|
|
83
|
+
// let pluginNamesOfDevDependencyPlugins = []
|
|
84
|
+
// let arePluginsPresentIndevDependencies = false
|
|
85
|
+
// var arePluginsPresentForCurrentRepo = false
|
|
86
|
+
|
|
87
|
+
// if(existsSync(path.join(getNodeModulesPath(),'package.json'))){
|
|
88
|
+
// let packageJsonContent = require(path.join(getNodeModulesPath(),'package.json'))
|
|
89
|
+
// pluginsIndevDependencies = packageJsonContent.devDependencies
|
|
90
|
+
|
|
91
|
+
// if(pluginsIndevDependencies !== undefined){
|
|
92
|
+
// arePluginsPresentIndevDependencies = true
|
|
93
|
+
// pluginNamesOfDevDependencyPlugins = Object.keys(pluginsIndevDependencies)
|
|
94
|
+
// }
|
|
95
|
+
// else if(pluginsIndevDependencies === undefined){
|
|
96
|
+
// Logger.log(Logger.INFO_TYPE,'No devDependencies present!')
|
|
97
|
+
// }
|
|
98
|
+
// }
|
|
99
|
+
// else{
|
|
100
|
+
// arePluginsPresentIndevDependencies = false
|
|
101
|
+
// }
|
|
102
|
+
|
|
103
|
+
// arePluginsPresentForCurrentRepo = pluginsForCurrentRepo.length !== 0 ? true : false
|
|
104
|
+
|
|
105
|
+
uninstalledPlugins = pluginsForCurrentRepo.map(plugin => {
|
|
106
|
+
const {
|
|
107
|
+
packageName,
|
|
108
|
+
version
|
|
109
|
+
} = plugin;
|
|
110
|
+
const {
|
|
111
|
+
isPluginPresent,
|
|
112
|
+
pluginPath
|
|
113
|
+
} = checkPluginsPresentInNodemodules(packageName);
|
|
114
|
+
if (isPluginPresent && checkPluginHasProperVersion(packageName, pluginPath, version)) {
|
|
115
|
+
return false;
|
|
94
116
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
if (arePluginsPresentForCurrentRepo || arePluginsPresentIndevDependencies) {
|
|
100
|
-
uninstalledPlugins = getUnInstalledPlugins(pluginsForCurrentRepo, pluginNamesOfDevDependencyPlugins, pluginsIndevDependencies);
|
|
117
|
+
return `${packageName}@${version}`;
|
|
118
|
+
}).filter(Boolean);
|
|
119
|
+
if (uninstalledPlugins.length > 0) {
|
|
120
|
+
// uninstalledPlugins = getUnInstalledPlugins(pluginsForCurrentRepo, pluginNamesOfDevDependencyPlugins, pluginsIndevDependencies);
|
|
101
121
|
plugin.noPluginMessage = '';
|
|
102
122
|
plugin.uninstalledPlugins = uninstalledPlugins;
|
|
103
123
|
return plugin;
|
|
@@ -107,6 +127,25 @@ function checkIfPluginsAreInstalled() {
|
|
|
107
127
|
return plugin;
|
|
108
128
|
}
|
|
109
129
|
}
|
|
130
|
+
function checkPluginsPresentInNodemodules(rulePluginName) {
|
|
131
|
+
try {
|
|
132
|
+
const pluginPath = require.resolve(rulePluginName.toString());
|
|
133
|
+
return {
|
|
134
|
+
pluginPath: pluginPath,
|
|
135
|
+
isPluginPresent: existsSync(pluginPath)
|
|
136
|
+
};
|
|
137
|
+
} catch (error) {
|
|
138
|
+
return {
|
|
139
|
+
pluginPath: "",
|
|
140
|
+
isPluginPresent: false
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
function checkPluginHasProperVersion(rulePluginName, installationPath, remotePluginVersion) {
|
|
145
|
+
const pluginPathArray = installationPath.toString().split(rulePluginName);
|
|
146
|
+
const rulePluginPackageJSONPath = path.join(pluginPathArray[0], rulePluginName, 'package.json');
|
|
147
|
+
return remotePluginVersion == require(rulePluginPackageJSONPath).version ? true : false;
|
|
148
|
+
}
|
|
110
149
|
module.exports = {
|
|
111
150
|
checkIfPluginsAreInstalled
|
|
112
151
|
};
|
|
@@ -12,16 +12,20 @@ const {
|
|
|
12
12
|
const {
|
|
13
13
|
Logger
|
|
14
14
|
} = require('../Logger/Logger');
|
|
15
|
+
const {
|
|
16
|
+
createVersionControlFile
|
|
17
|
+
} = require('../FileAndFolderOperations/versionControl');
|
|
15
18
|
|
|
16
19
|
/**
|
|
17
20
|
* @function installPlugins - installs uninstalled plugins for the project
|
|
18
21
|
* @returns {boolean} - indicating if plugins to be installed are installed successfully or not
|
|
19
22
|
*/
|
|
20
23
|
function installPlugins() {
|
|
21
|
-
let
|
|
22
|
-
|
|
24
|
+
let {
|
|
25
|
+
uninstalledPlugins: pluginsToBeInstalled
|
|
26
|
+
} = checkIfPluginsAreInstalled();
|
|
23
27
|
if (pluginsToBeInstalled.length > 0) {
|
|
24
|
-
let installCommand = `npm install --save
|
|
28
|
+
let installCommand = `npm install --no-save ${pluginsToBeInstalled.join(' ')}`;
|
|
25
29
|
Logger.log(Logger.INFO_TYPE, 'Installing plugins ....');
|
|
26
30
|
Logger.log(Logger.INFO_TYPE, `Install command being executed: ${installCommand}`);
|
|
27
31
|
let arePluginsInstalledSuccessfully = executeSynchronizedCommands(execSync, [installCommand, {
|
|
@@ -29,6 +33,7 @@ function installPlugins() {
|
|
|
29
33
|
}], '', 'Some issue occured while installing plugins', false, true);
|
|
30
34
|
if (arePluginsInstalledSuccessfully) {
|
|
31
35
|
Logger.log(Logger.SUCCESS_TYPE, 'Plugins installation successful');
|
|
36
|
+
createVersionControlFile(pluginsToBeInstalled);
|
|
32
37
|
return true;
|
|
33
38
|
} else {
|
|
34
39
|
Logger.log(Logger.FAILURE_TYPE, "Unable to install plugins.Kindly retry the command");
|