From f056a547908c39834407ef9673c5cd8908fe8158 Mon Sep 17 00:00:00 2001 From: Christophe Hurpeau Date: Sat, 13 Mar 2021 10:44:06 +0100 Subject: [PATCH] fix(check-package-dependencies): pkg path name --- .../lib/checkDirectDuplicateDependencies.js | 4 +- .../lib/checkExactVersions.js | 4 +- .../checkIdenticalVersionsThanDependency.js | 4 +- .../lib/checkPeerDependencies.js | 4 +- .../lib/checkResolutionsHasExplanation.js | 7 ++- .../checkSatisfiesVersionsFromDependency.js | 4 +- .../check-package-dependencies/lib/index.js | 48 +++++++++---------- .../lib/utils/createReportError.js | 8 ++-- 8 files changed, 43 insertions(+), 40 deletions(-) diff --git a/packages/check-package-dependencies/lib/checkDirectDuplicateDependencies.js b/packages/check-package-dependencies/lib/checkDirectDuplicateDependencies.js index 321484f37..7dafd389b 100644 --- a/packages/check-package-dependencies/lib/checkDirectDuplicateDependencies.js +++ b/packages/check-package-dependencies/lib/checkDirectDuplicateDependencies.js @@ -17,7 +17,7 @@ exports.checkWarnedFor = checkWarnedFor; exports.checkDirectDuplicateDependencies = ( pkg, - pkgPath, + pkgPathName, depType, searchIn, depPkg, @@ -30,7 +30,7 @@ exports.checkDirectDuplicateDependencies = ( const reportError = createReportError( 'Direct Duplicate Dependencies', - pkgPath, + pkgPathName, ); const searchInExisting = searchIn.filter((type) => pkg[type]); diff --git a/packages/check-package-dependencies/lib/checkExactVersions.js b/packages/check-package-dependencies/lib/checkExactVersions.js index a1a794b6a..86e31e997 100644 --- a/packages/check-package-dependencies/lib/checkExactVersions.js +++ b/packages/check-package-dependencies/lib/checkExactVersions.js @@ -2,11 +2,11 @@ const { createReportError } = require('./utils/createReportError'); -exports.checkExactVersions = (pkg, pkgPath, type) => { +exports.checkExactVersions = (pkg, pkgPathName, type) => { const pkgDependencies = pkg[type]; if (!pkgDependencies) return; - const reportError = createReportError('Exact versions', pkgPath); + const reportError = createReportError('Exact versions', pkgPathName); for (const [depKey, version] of Object.entries(pkgDependencies)) { if (version.startsWith('^') || version.startsWith('~')) { diff --git a/packages/check-package-dependencies/lib/checkIdenticalVersionsThanDependency.js b/packages/check-package-dependencies/lib/checkIdenticalVersionsThanDependency.js index 2e303224e..2c1faf940 100644 --- a/packages/check-package-dependencies/lib/checkIdenticalVersionsThanDependency.js +++ b/packages/check-package-dependencies/lib/checkIdenticalVersionsThanDependency.js @@ -4,7 +4,7 @@ const { createReportError } = require('./utils/createReportError'); exports.checkIdenticalVersionsThanDependency = ( pkg, - pkgPath, + pkgPathName, type, depKeys, depPkg, @@ -14,7 +14,7 @@ exports.checkIdenticalVersionsThanDependency = ( const pkgDependencies = pkg[type]; const reportError = createReportError( `Same Versions than ${depPkg.name}`, - pkgPath, + pkgPathName, ); depKeys.forEach((depKey) => { diff --git a/packages/check-package-dependencies/lib/checkPeerDependencies.js b/packages/check-package-dependencies/lib/checkPeerDependencies.js index e1d7a85a6..9021e923f 100644 --- a/packages/check-package-dependencies/lib/checkPeerDependencies.js +++ b/packages/check-package-dependencies/lib/checkPeerDependencies.js @@ -7,14 +7,14 @@ const { createReportError } = require('./utils/createReportError'); exports.checkPeerDependencies = ( pkg, - pkgPath, + pkgPathName, type, allowedPeerIn, depPkg, onlyWarnsFor = [], ) => { if (!depPkg.peerDependencies) return; - const reportError = createReportError('Peer Dependencies', pkgPath); + const reportError = createReportError('Peer Dependencies', pkgPathName); const { peerDependencies, peerDependenciesMeta = {} } = depPkg; const allowedPeerInExisting = allowedPeerIn.filter((type) => pkg[type]); diff --git a/packages/check-package-dependencies/lib/checkResolutionsHasExplanation.js b/packages/check-package-dependencies/lib/checkResolutionsHasExplanation.js index 94f384e7d..e2a208e2d 100644 --- a/packages/check-package-dependencies/lib/checkResolutionsHasExplanation.js +++ b/packages/check-package-dependencies/lib/checkResolutionsHasExplanation.js @@ -4,13 +4,16 @@ const { createReportError } = require('./utils/createReportError'); exports.checkResolutionsHasExplanation = ( pkg, - pkgPath, + pkgPathName, checkMessage, getDependencyPackageJson, ) => { const pkgResolutions = pkg.resolutions || {}; const pkgResolutionsExplained = pkg.resolutionsExplained || {}; - const reportError = createReportError('Resolutions has explanation', pkgPath); + const reportError = createReportError( + 'Resolutions has explanation', + pkgPathName, + ); Object.keys(pkgResolutions).forEach((depKey) => { if (!pkgResolutionsExplained[depKey]) { diff --git a/packages/check-package-dependencies/lib/checkSatisfiesVersionsFromDependency.js b/packages/check-package-dependencies/lib/checkSatisfiesVersionsFromDependency.js index e31d8c7b8..514bc8e1b 100644 --- a/packages/check-package-dependencies/lib/checkSatisfiesVersionsFromDependency.js +++ b/packages/check-package-dependencies/lib/checkSatisfiesVersionsFromDependency.js @@ -5,7 +5,7 @@ const { createReportError } = require('./utils/createReportError'); exports.checkSatisfiesVersionsFromDependency = ( pkg, - pkgPath, + pkgPathName, type, depKeys, depPkg, @@ -15,7 +15,7 @@ exports.checkSatisfiesVersionsFromDependency = ( const pkgDependencies = pkg[type]; const reportError = createReportError( `Satisfies Versions from ${depPkg.name}`, - pkgPath, + pkgPathName, ); depKeys.forEach((depKey) => { diff --git a/packages/check-package-dependencies/lib/index.js b/packages/check-package-dependencies/lib/index.js index 67f0037cc..0d58fdc8f 100644 --- a/packages/check-package-dependencies/lib/index.js +++ b/packages/check-package-dependencies/lib/index.js @@ -31,6 +31,7 @@ const readPkgJson = (packagePath) => { exports.createCheckPackage = (pkgDirectoryPath = '.') => { const pkgDirname = path.resolve(pkgDirectoryPath); const pkgPath = `${pkgDirname}/package.json`; + const pkgPathName = `${pkgDirectoryPath}/package.json`; const pkg = readPkgJson(pkgPath); const nodeModulesPackagePathCache = new Map(); const getDependencyPackageJson = (pkgDepName) => { @@ -80,7 +81,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { }, checkExactDevVersions() { - checkExactVersions(pkg, pkgPath, 'devDependencies'); + checkExactVersions(pkg, pkgPathName, 'devDependencies'); return this; }, @@ -88,7 +89,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { type = 'dependencies', moveToSuggestion = 'devDependencies', ) { - checkNoDependencies(pkg, pkgPath, type, moveToSuggestion); + checkNoDependencies(pkg, pkgPathName, type, moveToSuggestion); return this; }, @@ -111,7 +112,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { if (depPkg.peerDependencies) { checkPeerDependencies( pkg, - pkgPath, + pkgPathName, type, allowedPeerIn, depPkg, @@ -141,7 +142,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { const depPkg = getDependencyPackageJson(depName); checkDirectDuplicateDependencies( pkg, - pkgPath, + pkgPathName, 'dependencies', searchIn, depPkg, @@ -154,7 +155,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { if (!warnedForInternal) { const reportError = createReportError( 'Direct Duplicate Dependencies', - pkgPath, + pkgPathName, ); checkWarnedFor(reportError, onlyWarnsFor, warnedForInternal); } @@ -166,7 +167,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { ) { checkResolutionsHasExplanation( pkg, - pkgPath, + pkgPathName, checkMessage, getDependencyPackageJson, ); @@ -207,7 +208,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { if (resolutions) { checkIdenticalVersionsThanDependency( pkg, - pkgPath, + pkgPathName, 'resolutions', resolutions, depPkg, @@ -217,7 +218,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { if (dependencies) { checkIdenticalVersionsThanDependency( pkg, - pkgPath, + pkgPathName, 'dependencies', dependencies, depPkg, @@ -227,7 +228,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { if (devDependencies) { checkIdenticalVersionsThanDependency( pkg, - pkgPath, + pkgPathName, 'devDependencies', devDependencies, depPkg, @@ -277,7 +278,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { if (resolutions) { checkSatisfiesVersionsFromDependency( pkg, - pkgPath, + pkgPathName, 'resolutions', resolutions, depPkg, @@ -287,7 +288,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { if (dependencies) { checkSatisfiesVersionsFromDependency( pkg, - pkgPath, + pkgPathName, 'dependencies', dependencies, depPkg, @@ -297,7 +298,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { if (devDependencies) { checkSatisfiesVersionsFromDependency( pkg, - pkgPath, + pkgPathName, 'devDependencies', devDependencies, depPkg, @@ -315,7 +316,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { if (resolutions) { checkSatisfiesVersionsFromDependency( pkg, - pkgPath, + pkgPathName, 'resolutions', resolutions, depPkg, @@ -325,7 +326,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { if (dependencies) { checkSatisfiesVersionsFromDependency( pkg, - pkgPath, + pkgPathName, 'dependencies', dependencies, depPkg, @@ -335,7 +336,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { if (devDependencies) { checkSatisfiesVersionsFromDependency( pkg, - pkgPath, + pkgPathName, 'devDependencies', devDependencies, depPkg, @@ -362,7 +363,7 @@ exports.createCheckPackage = (pkgDirectoryPath = '.') => { exports.createCheckPackageWithWorkspaces = (pkgDirectoryPath = '.') => { const checkPackage = exports.createCheckPackage(pkgDirectoryPath); - const { pkg, pkgDirname, pkgPath } = checkPackage; + const { pkg, pkgDirname, pkgPathName } = checkPackage; if (!pkg.workspaces) { throw new Error('Package is missing "workspaces"'); @@ -374,14 +375,13 @@ exports.createCheckPackageWithWorkspaces = (pkgDirectoryPath = '.') => { match.forEach((pathMatch) => { const stat = fs.statSync(pathMatch); if (!stat.isDirectory()) return; - const pkgPath = path.relative( - process.cwd(), - path.join(pathMatch, 'package.json'), - ); + const pkgDirectoryPath = path.relative(process.cwd(), pathMatch); + const pkgPath = path.join(pkgDirectoryPath, 'package.json'); const pkg = readPkgJson(pkgPath); workspaces.push({ id: pkg.name, pkgDirname: pathMatch, + pkgDirectoryPath, pkgPath, pkg, }); @@ -389,9 +389,9 @@ exports.createCheckPackageWithWorkspaces = (pkgDirectoryPath = '.') => { }); const checksWorkspaces = new Map( - workspaces.map(({ id, pkgDirname }) => [ + workspaces.map(({ id, pkgDirectoryPath }) => [ id, - exports.createCheckPackage(pkgDirname), + exports.createCheckPackage(pkgDirectoryPath), ]), ); @@ -421,7 +421,7 @@ exports.createCheckPackageWithWorkspaces = (pkgDirectoryPath = '.') => { }); checkDirectDuplicateDependencies( pkg, - pkgPath, + pkgPathName, 'devDependencies', ['devDependencies', 'dependencies'], pkg, @@ -431,7 +431,7 @@ exports.createCheckPackageWithWorkspaces = (pkgDirectoryPath = '.') => { }); checkWarnedFor( - createReportError('Recommended Checks', pkgPath), + createReportError('Recommended Checks', pkgPathName), directDuplicateDependenciesOnlyWarnsFor, warnedForDuplicate, ); diff --git a/packages/check-package-dependencies/lib/utils/createReportError.js b/packages/check-package-dependencies/lib/utils/createReportError.js index ab9d31142..d47345b61 100644 --- a/packages/check-package-dependencies/lib/utils/createReportError.js +++ b/packages/check-package-dependencies/lib/utils/createReportError.js @@ -4,13 +4,13 @@ const chalk = require('chalk'); let titleDisplayed = null; let pkgPathDisplayed = null; -exports.createReportError = (title, pkgPath) => { +exports.createReportError = (title, pkgPathName) => { return function reportError(msgTitle, msgInfo, onlyWarns) { - if (titleDisplayed !== title || pkgPath !== pkgPathDisplayed) { + if (titleDisplayed !== title || pkgPathName !== pkgPathDisplayed) { if (titleDisplayed) console.error(); - console.error(chalk.cyan(`== ${title} in ${pkgPath} ==`)); + console.error(chalk.cyan(`== ${title} in ${pkgPathName} ==`)); titleDisplayed = title; - pkgPathDisplayed = pkgPath; + pkgPathDisplayed = pkgPathName; } console.error( `${