tools: fix doc tool behavior for version arrays
Even though the doc tool supports version arrays in theory, it fails to sort them properly causing the tool to crash. PR-URL: https://github.com/nodejs/node/pull/22766 Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Vse Mozhet Byt <vsemozhetbyt@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
Родитель
bda3311afe
Коммит
9564f7a123
|
@ -43,4 +43,4 @@ function extractAndParseYAML(text) {
|
|||
return meta;
|
||||
}
|
||||
|
||||
module.exports = { isYAMLBlock, extractAndParseYAML };
|
||||
module.exports = { arrify, isYAMLBlock, extractAndParseYAML };
|
||||
|
|
|
@ -308,7 +308,9 @@ function parseYAML(text) {
|
|||
.use(htmlStringify)
|
||||
.processSync(change.description).toString();
|
||||
|
||||
result += `<tr><td>${change.version}</td>\n` +
|
||||
const version = common.arrify(change.version).join(', ');
|
||||
|
||||
result += `<tr><td>${version}</td>\n` +
|
||||
`<td>${description}</td></tr>\n`;
|
||||
});
|
||||
|
||||
|
@ -326,10 +328,16 @@ function parseYAML(text) {
|
|||
return result;
|
||||
}
|
||||
|
||||
function minVersion(a) {
|
||||
return common.arrify(a).reduce((min, e) => {
|
||||
return !min || versionSort(min, e) < 0 ? e : min;
|
||||
});
|
||||
}
|
||||
|
||||
const numberRe = /^\d*/;
|
||||
function versionSort(a, b) {
|
||||
a = a.trim();
|
||||
b = b.trim();
|
||||
a = minVersion(a).trim();
|
||||
b = minVersion(b).trim();
|
||||
let i = 0; // Common prefix length.
|
||||
while (i < a.length && i < b.length && a[i] === b[i]) i++;
|
||||
a = a.substr(i);
|
||||
|
|
Загрузка…
Ссылка в новой задаче