Merge pull request #1614 from ing-bank/lint-versions-fix
chore: lint-versions to do semver satisfy check
This commit is contained in:
commit
e544ec97b6
3 changed files with 16 additions and 9 deletions
|
|
@ -17,6 +17,7 @@ module.exports = {
|
||||||
'**/demo/**/*.js',
|
'**/demo/**/*.js',
|
||||||
'**/docs/**/*.js',
|
'**/docs/**/*.js',
|
||||||
'**/*.config.js',
|
'**/*.config.js',
|
||||||
|
'scripts/**/*.js',
|
||||||
],
|
],
|
||||||
rules: {
|
rules: {
|
||||||
'lit/binding-positions': 'off',
|
'lit/binding-positions': 'off',
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,7 @@
|
||||||
"remark-html": "^13.0.1",
|
"remark-html": "^13.0.1",
|
||||||
"rimraf": "^2.6.3",
|
"rimraf": "^2.6.3",
|
||||||
"rollup": "^2.0.0",
|
"rollup": "^2.0.0",
|
||||||
|
"semver": "^7.3.5",
|
||||||
"sinon": "^7.2.2",
|
"sinon": "^7.2.2",
|
||||||
"ssl-root-cas": "^1.3.1",
|
"ssl-root-cas": "^1.3.1",
|
||||||
"typescript": "4.5.5",
|
"typescript": "4.5.5",
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
/* eslint-disable no-console */
|
|
||||||
const { readdirSync, existsSync, readFileSync } = require('fs');
|
const { readdirSync, existsSync, readFileSync } = require('fs');
|
||||||
|
const semver = require('semver');
|
||||||
|
|
||||||
const getDirectories = source =>
|
const getDirectories = source =>
|
||||||
readdirSync(source, { withFileTypes: true })
|
readdirSync(source, { withFileTypes: true })
|
||||||
|
|
@ -38,14 +38,19 @@ function compareVersions(versionsA, versionsB) {
|
||||||
let output = '';
|
let output = '';
|
||||||
const newVersions = { ...versionsA };
|
const newVersions = { ...versionsA };
|
||||||
Object.keys(versionsB).forEach(dep => {
|
Object.keys(versionsB).forEach(dep => {
|
||||||
if (
|
if (versionsA[dep] && versionsB[dep] && versionsA[dep] !== versionsB[dep]) {
|
||||||
versionsA[dep] &&
|
if (!semver.satisfies(versionsA[dep], versionsB[dep])) {
|
||||||
versionsB[dep] &&
|
// if version doesn't satisfy range, check if they are both ranges,
|
||||||
`^${versionsA[dep]}` !== versionsB[dep] && // allow carets
|
// and if so, if either of them is entirely contained by the other,
|
||||||
`~${versionsA[dep]}` !== versionsB[dep] && // allow tildes
|
// if so, then they are semver compatible and will resolve to the same thing
|
||||||
versionsA[dep] !== versionsB[dep] // allow fixed
|
const rangeA = semver.validRange(versionsA[dep]);
|
||||||
) {
|
const rangeB = semver.validRange(versionsB[dep]);
|
||||||
output += ` - "${dep}" should be "${versionsA[dep]}" but is "${versionsB[dep]}"\n`;
|
if (
|
||||||
|
!(rangeA && rangeB && (semver.subset(rangeA, rangeB) || semver.subset(rangeB, rangeA)))
|
||||||
|
) {
|
||||||
|
output += ` - "${dep}" "${versionsB[dep]}" does not seem semver compatible with "${versionsA[dep]}" and probably one of them needs a bump"\n`;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!newVersions[dep]) {
|
if (!newVersions[dep]) {
|
||||||
newVersions[dep] = versionsB[dep];
|
newVersions[dep] = versionsB[dep];
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue