1 | const semver = require('semver');
|
2 |
|
3 | /**
|
4 | * Filter the entires based on the prefix.
|
5 | *
|
6 | * @param {String} version - The server version.
|
7 | * @param {Array} entries - The entries to filter.
|
8 | * @param {String} prefix - The prefix.
|
9 | *
|
10 | * @returns {Array} The matching entries.
|
11 | */
|
12 | const filter = (version, entries, prefix) => {
|
13 | const parsedVersion = semver.parse(version);
|
14 | return entries.filter((e) => {
|
15 | if (!e.name) return false;
|
16 | const cleanVersion = parsedVersion ? [
|
17 | parsedVersion.major,
|
18 | parsedVersion.minor,
|
19 | parsedVersion.patch
|
20 | ].join('.') : version;
|
21 | return e.name.startsWith(prefix) &&
|
22 | semver.gte(cleanVersion, e.version);
|
23 | });
|
24 | };
|
25 |
|
26 | module.exports = filter;
|