MCPcopy Create free account
hub / github.com/Dart-Code/Dart-Code / pubVersionIsAtLeast

Function pubVersionIsAtLeast

src/shared/utils.ts:103–125  ·  view source on GitHub ↗
(inputVersion: string, requiredVersion: string)

Source from the content-addressed store, hash-verified

101}
102
103export function pubVersionIsAtLeast(inputVersion: string, requiredVersion: string): boolean {
104 // Standard semver gt/lt
105 if (semver.gt(inputVersion, requiredVersion))
106 return true;
107 else if (semver.lt(inputVersion, requiredVersion))
108 return false;
109
110 // If the versions are equal, we need to handle build metadata like pub does.
111 // https://github.com/dart-lang/pub_semver/
112
113 // If only one of them has build metadata, it's newest.
114 if (inputVersion.includes("+") && !requiredVersion.includes("+"))
115 return true;
116 if (!inputVersion.includes("+") && requiredVersion.includes("+"))
117 return false;
118
119 // Otherwise, since they're both otherwise equal and both have build
120 // metadata we can treat the build metadata like pre-release by converting
121 // it to pre-release (with -) or appending it to existing pre-release.
122 inputVersion = inputVersion.replace("+", !inputVersion.includes("-") ? "-" : ".");
123 requiredVersion = requiredVersion.replace("+", !requiredVersion.includes("-") ? "-" : ".");
124 return versionIsAtLeast(inputVersion, requiredVersion);
125}
126
127export function isStableSdk(sdkVersion?: string): boolean {
128 // We'll consider empty versions as dev; stable versions will likely always

Callers 2

util.test.tsFile · 0.90
checkVersionStatusMethod · 0.90

Calls 1

versionIsAtLeastFunction · 0.70

Tested by

no test coverage detected