mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2025-12-18 16:02:52 +00:00
30 lines
533 B
TypeScript
30 lines
533 B
TypeScript
import semver from 'semver';
|
|
|
|
export function calcCompatibleVersion(v1: string | undefined | null, v2: string | undefined | null): string {
|
|
if (!v1 && !v2) {
|
|
return '*';
|
|
}
|
|
|
|
if (!v1 || v1 === '*') {
|
|
return v2 || '*';
|
|
}
|
|
|
|
if (!v2 || v2 === '*') {
|
|
return v1;
|
|
}
|
|
|
|
if (v1 === v2) {
|
|
return v1;
|
|
}
|
|
|
|
if (!semver.intersects(v1, v2, { loose: true })) {
|
|
throw new Error(`no compatible versions for "${v1}" and "${v2}"`);
|
|
}
|
|
|
|
if (semver.subset(v1, v2, { loose: true })) {
|
|
return v1;
|
|
}
|
|
|
|
return v2;
|
|
}
|