refactor highlightDiff
This commit is contained in:
parent
c9e0780397
commit
9fda0527f2
13
updates.js
13
updates.js
@ -314,22 +314,21 @@ async function write(file, content) {
|
|||||||
writeFileSync(file, content, isWindows ? {flag: "r+"} : undefined);
|
writeFileSync(file, content, isWindows ? {flag: "r+"} : undefined);
|
||||||
}
|
}
|
||||||
|
|
||||||
function highlightDiff(a, b, added) {
|
function highlightDiff(a, b, colorFn) {
|
||||||
if (a === b) return a;
|
if (a === b) return a;
|
||||||
const aParts = a.split(/\./);
|
const aParts = a.split(/\./);
|
||||||
const bParts = b.split(/\./);
|
const bParts = b.split(/\./);
|
||||||
const color = added ? green : red;
|
|
||||||
const versionPartRe = /^[0-9a-zA-Z-.]+$/;
|
const versionPartRe = /^[0-9a-zA-Z-.]+$/;
|
||||||
|
|
||||||
let res = "";
|
let res = "";
|
||||||
for (let i = 0; i < aParts.length; i++) {
|
for (let i = 0; i < aParts.length; i++) {
|
||||||
if (aParts[i] !== bParts[i]) {
|
if (aParts[i] !== bParts[i]) {
|
||||||
if (versionPartRe.test(aParts[i])) {
|
if (versionPartRe.test(aParts[i])) {
|
||||||
res += color(aParts.slice(i).join("."));
|
res += colorFn(aParts.slice(i).join("."));
|
||||||
} else {
|
} else {
|
||||||
res += aParts[i].split("").map(char => {
|
res += aParts[i].split("").map(char => {
|
||||||
return versionPartRe.test(char) ? color(char) : char;
|
return versionPartRe.test(char) ? colorFn(char) : char;
|
||||||
}).join("") + color(`.${aParts.slice(i + 1).join(".")}`);
|
}).join("") + colorFn(`.${aParts.slice(i + 1).join(".")}`);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
@ -349,8 +348,8 @@ function formatDeps(deps) {
|
|||||||
seen.add(name);
|
seen.add(name);
|
||||||
arr.push([
|
arr.push([
|
||||||
name,
|
name,
|
||||||
highlightDiff(data.old, data.new, false),
|
highlightDiff(data.old, data.new, red),
|
||||||
highlightDiff(data.new, data.old, true),
|
highlightDiff(data.new, data.old, green),
|
||||||
data.age || "",
|
data.age || "",
|
||||||
data.info,
|
data.info,
|
||||||
]);
|
]);
|
||||||
|
Loading…
Reference in New Issue
Block a user