VersionParser constructor

VersionParser(
  1. int major,
  2. int minor,
  3. int patch, {
  4. List<String> preRelease = const <String>[],
  5. String build = '',
})

Implementation

VersionParser(this.major, this.minor, this.patch,
    {List<String> preRelease = const <String>[], this.build = ''})
    : _preRelease = preRelease {
  for (var i = 0; i < _preRelease.length; i++) {
    if (_preRelease[i].toString().trim().isEmpty) {
      throw ArgumentError('preRelease segments must not be empty');
    }
    // Just in case
    _preRelease[i] = _preRelease[i].toString();
    if (!_preReleaseRegex.hasMatch(_preRelease[i])) {
      throw const FormatException(
          'preRelease segments must only contain [0-9A-Za-z-]');
    }
  }
  if (build.isNotEmpty && !_buildRegex.hasMatch(build)) {
    throw const FormatException('build must only contain [0-9A-Za-z-.]');
  }

  if (major < 0 || minor < 0 || patch < 0) {
    throw ArgumentError('Version numbers must be greater than 0');
  }
}