diff options
author | Tobias Nießen <tniessen@tnie.de> | 2018-09-08 11:40:05 +0200 |
---|---|---|
committer | Tobias Nießen <tniessen@tnie.de> | 2018-09-12 11:47:08 +0200 |
commit | 1f5261b7c844ea17cf6235d2f1b33190a4f64db1 (patch) | |
tree | 6cfb202f80241a4c34283db9385a7d9bb965003d /tools | |
parent | b36c581d5bd7e6087aab794af222e122e5a32f03 (diff) | |
download | node-new-1f5261b7c844ea17cf6235d2f1b33190a4f64db1.tar.gz |
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>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/doc/common.js | 2 | ||||
-rw-r--r-- | tools/doc/html.js | 14 |
2 files changed, 12 insertions, 4 deletions
diff --git a/tools/doc/common.js b/tools/doc/common.js index 7d8aefb65d..86daae6cfc 100644 --- a/tools/doc/common.js +++ b/tools/doc/common.js @@ -43,4 +43,4 @@ function extractAndParseYAML(text) { return meta; } -module.exports = { isYAMLBlock, extractAndParseYAML }; +module.exports = { arrify, isYAMLBlock, extractAndParseYAML }; diff --git a/tools/doc/html.js b/tools/doc/html.js index 5babe1c97e..c0a94b6534 100644 --- a/tools/doc/html.js +++ b/tools/doc/html.js @@ -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); |