check static method
Checks packageConstraint (the package's declared zuraffa
constraint) against appVersion (the running zuraffa version).
Implementation
static PackageCompatibilityResult check({
required String packageConstraint,
required String appVersion,
}) {
final minRequired = _minimumOf(packageConstraint);
final app = _parse(appVersion);
if (minRequired == null || app == null) {
// Unparseable input is never silently accepted for a mismatch
// verdict — treat as warning with an explicit message.
return PackageCompatibilityResult(
PackageCompatibilityStatus.warning,
'could not compare package constraint '
'"$packageConstraint" with app version "$appVersion"',
);
}
if (minRequired[0] != app[0]) {
return PackageCompatibilityResult(
PackageCompatibilityStatus.incompatible,
'package requires zuraffa $packageConstraint '
'(major ${minRequired[0]}) but this app runs zuraffa '
'$appVersion (major ${app[0]})',
);
}
if (minRequired[1] > app[1]) {
return PackageCompatibilityResult(
PackageCompatibilityStatus.warning,
'package was generated against zuraffa '
'${minRequired.join('.')} which is newer than the running '
'$appVersion — some generated features may be missing',
);
}
return const PackageCompatibilityResult(
PackageCompatibilityStatus.compatible,
'compatible',
);
}