checkPlugin: Refine installation of lint dependencies
parent
a0d21f75c4
commit
44118c0e7b
|
@ -71,22 +71,6 @@ fs.readdir(pluginPath, (err, rootFiles) => {
|
|||
console.error('Error git pull', e);
|
||||
}
|
||||
|
||||
try {
|
||||
const packages = [
|
||||
'eslint',
|
||||
'eslint-config-etherpad',
|
||||
'eslint-plugin-eslint-comments',
|
||||
'eslint-plugin-mocha',
|
||||
'eslint-plugin-node',
|
||||
'eslint-plugin-prefer-arrow',
|
||||
'eslint-plugin-promise',
|
||||
'eslint-plugin-you-dont-need-lodash-underscore',
|
||||
];
|
||||
childProcess.execSync(`npm install --save-dev ${packages.join(' ')}`, {cwd: `${pluginPath}/`});
|
||||
} catch (e) {
|
||||
console.error('Error npm updating pull', e);
|
||||
}
|
||||
|
||||
try {
|
||||
const path = `${pluginPath}/.github/workflows/npmpublish.yml`;
|
||||
if (!fs.existsSync(path)) {
|
||||
|
@ -201,12 +185,7 @@ fs.readdir(pluginPath, (err, rootFiles) => {
|
|||
}
|
||||
|
||||
// include lint config
|
||||
if (packageJSON.toLowerCase().indexOf('devdependencies') === -1 ||
|
||||
!parsedPackageJSON.devDependencies.eslint ||
|
||||
!parsedPackageJSON.devDependencies['eslint-plugin-you-dont-need-lodash-underscore']) {
|
||||
console.warn('Missing an eslint reference in devDependencies');
|
||||
if (autoFix) {
|
||||
const devDependencies = {
|
||||
const lintDeps = {
|
||||
'eslint': '^7.17.0',
|
||||
'eslint-config-etherpad': '^1.0.22',
|
||||
'eslint-plugin-eslint-comments': '^3.2.0',
|
||||
|
@ -216,16 +195,23 @@ fs.readdir(pluginPath, (err, rootFiles) => {
|
|||
'eslint-plugin-promise': '^4.2.1',
|
||||
'eslint-plugin-you-dont-need-lodash-underscore': '^6.10.0',
|
||||
};
|
||||
const {devDependencies = {}} = parsedPackageJSON;
|
||||
let lintDepsNeedUpdating = false;
|
||||
for (const [pkg, ver] of Object.entries(lintDeps)) {
|
||||
if (devDependencies[pkg] !== ver) {
|
||||
console.warn(`Missing/outdated ESLint dependency: '${pkg}': '${ver}' ` +
|
||||
`(current: ${devDependencies[pkg]})`);
|
||||
lintDepsNeedUpdating = true;
|
||||
}
|
||||
}
|
||||
if (lintDepsNeedUpdating && autoFix) {
|
||||
hasAutoFixed = true;
|
||||
parsedPackageJSON.devDependencies = devDependencies;
|
||||
parsedPackageJSON.devDependencies = Object.assign(devDependencies, lintDeps);
|
||||
fs.writeFileSync(`${pluginPath}/package.json`, JSON.stringify(parsedPackageJSON, null, 2));
|
||||
|
||||
try {
|
||||
childProcess.execSync('npm install', {cwd: `${pluginPath}/`});
|
||||
hasAutoFixed = true;
|
||||
} catch (e) {
|
||||
console.error('Failed to create package-lock.json');
|
||||
}
|
||||
} catch (err) {
|
||||
console.error(`Failed to create package-lock.json: ${err.stack || err}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue