From 8f356b86352e582442117a7934a9419d11cfc6ca Mon Sep 17 00:00:00 2001 From: Roman Date: Fri, 6 May 2022 14:33:12 +0300 Subject: [PATCH] fix: versions matching check (app <-> extensions) Signed-off-by: Roman --- .../is-compatible-extension.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/extensions/extension-discovery/is-compatible-extension/is-compatible-extension.ts b/src/extensions/extension-discovery/is-compatible-extension/is-compatible-extension.ts index 57d0ccf571..545b3c89e3 100644 --- a/src/extensions/extension-discovery/is-compatible-extension/is-compatible-extension.ts +++ b/src/extensions/extension-discovery/is-compatible-extension/is-compatible-extension.ts @@ -2,21 +2,21 @@ * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ -import semver, { SemVer } from "semver"; +import semver, { type SemVer } from "semver"; import type { LensExtensionManifest } from "../../lens-extension"; interface Dependencies { appSemVer: SemVer; } -export const isCompatibleExtension = (deps: Dependencies): ((manifest: LensExtensionManifest) => boolean) => { - const { major: appMajor, minor: appMinor } = deps.appSemVer; - +export const isCompatibleExtension = ({ appSemVer }: Dependencies): ((manifest: LensExtensionManifest) => boolean) => { return (manifest: LensExtensionManifest): boolean => { - const { major: extMajor, minor: extMinor } = new SemVer(manifest.engines.lens, { - loose: true, - }); + const { raw: appVersion } = appSemVer; + const supportedVersionsByExtension: string = semver.validRange(manifest.engines.lens); - return semver.intersects(`>=${appMajor}.${appMinor}`, `<${extMajor}.${extMinor + 1}`); + return semver.satisfies(appVersion, supportedVersionsByExtension, { + loose: true, + includePrerelease: false, + }); }; };