parse static method
Implementation
static VersionParser parse(String versionString) {
if (versionString.trim().isEmpty) {
throw const FormatException('Cannot parse empty string into version');
}
if (!_versionRegex.hasMatch(versionString)) {
throw const FormatException('Not a properly formatted version string');
}
final Match m = _versionRegex.firstMatch(versionString)!;
final version = m.group(1)!;
int? major, minor, patch;
final parts = version.split('.');
major = int.parse(parts[0]);
if (parts.length > 1) {
minor = int.parse(parts[1]);
if (parts.length > 2) {
patch = int.parse(parts[2]);
}
}
final preReleaseString = m.group(3) ?? '';
var preReleaseList = <String>[];
if (preReleaseString.trim().isNotEmpty) {
preReleaseList = preReleaseString.split('.');
}
final build = m.group(5) ?? '';
return VersionParser(major, minor ?? 0, patch ?? 0,
build: build, preRelease: preReleaseList);
}