diff --git a/package.json b/package.json index 78f0174e7..ee9e0cd67 100644 --- a/package.json +++ b/package.json @@ -63,6 +63,7 @@ "@types/minimatch": "3.0.3", "@types/node": "12.6.2", "@types/request": "2.48.2", + "@types/semver": "6.0.1", "@typescript-eslint/eslint-plugin": "1.12.0", "@verdaccio/babel-preset": "0.2.1", "@verdaccio/eslint-config": "0.0.1", diff --git a/src/lib/utils.ts b/src/lib/utils.ts index e19f41cd9..1bc0ff545 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -263,16 +263,20 @@ export function parseAddress(urlAddress: any): any { * @return {Array} sorted Array */ export function semverSort(listVersions: string[]): string[] { - return listVersions - .filter(function(x): boolean { - if (!semver.parse(x, true)) { - Logger.logger.warn({ ver: x }, 'ignoring bad version @{ver}'); - return false; - } - return true; - }) - .sort(semver.compareLoose) - .map(String); + return ( + listVersions + .filter(function(x): boolean { + if (!semver.parse(x, true)) { + Logger.logger.warn({ ver: x }, 'ignoring bad version @{ver}'); + return false; + } + return true; + }) + // FIXME: it seems the @types/semver do not handle a legitimate method named 'compareLoose' + // @ts-ignore + .sort(semver.compareLoose) + .map(String) + ); } /** diff --git a/yarn.lock b/yarn.lock index f1478dc6c..49b27947e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1461,6 +1461,11 @@ "@types/tough-cookie" "*" form-data "^2.5.0" +"@types/semver@6.0.1": + version "6.0.1" + resolved "https://registry.verdaccio.org/@types%2fsemver/-/semver-6.0.1.tgz#a984b405c702fa5a7ec6abc56b37f2ba35ef5af6" + integrity sha512-ffCdcrEE5h8DqVxinQjo+2d1q+FV5z7iNtPofw3JsrltSoSVlOGaW0rY8XxtO9XukdTn8TaCGWmk2VFGhI70mg== + "@types/serve-static@*": version "1.13.2" resolved "https://registry.verdaccio.org/@types%2fserve-static/-/serve-static-1.13.2.tgz#f5ac4d7a6420a99a6a45af4719f4dcd8cd907a48"