* Returns the highest semver definition that satisfies all versions * in the given list. * @param {Object} config * @param {Object[]} config.versions The list of semver version ranges. * @param {String} config.baseVersion The base version of which higher versions should be * determine
({ versions, baseVersion })
| 119 | * @returns {String} The highest semver version. |
| 120 | */ |
| 121 | getHigherVersions({ versions, baseVersion }) { |
| 122 | // Add min satisfying node versions |
| 123 | const minVersions = versions.map(v => { |
| 124 | v.nodeMinVersion = semver.minVersion(v.nodeVersion) |
| 125 | return v; |
| 126 | }); |
| 127 | |
| 128 | // Sort by min version |
| 129 | const sortedMinVersions = minVersions.sort((v1, v2) => semver.compare(v1.nodeMinVersion, v2.nodeMinVersion)); |
| 130 | |
| 131 | // Filter by higher versions |
| 132 | const higherVersions = sortedMinVersions.filter(v => semver.gt(v.nodeMinVersion, baseVersion)); |
| 133 | |
| 134 | return higherVersions; |
| 135 | } |
| 136 | |
| 137 | /** |
| 138 | * Returns the node version of the parent package. |