satisfied_version

Creator: coderz1093

Last updated:

0 purchases

TODO
Add to Cart

Description:

satisfied version

Satisfied Version #
Compare and check whether the version is satisfied with provided version (or build number) in String, List, or Map.
Usage #
Supports versions with format major.minor.patch and build number (integer).
String: Compare 2 version with conditions #
SatisfiedVersion.string('1.0.0', '>=1.0.0') // => true
SatisfiedVersion.string('1.0.0', '<=1.0.0') // => true

SatisfiedVersion.string('1.0.0', '>1.0.0') // => false
SatisfiedVersion.string('1.0.1', '>1.0.0') // => true
SatisfiedVersion.string('1.0.0', '<1.0.0') // => false

SatisfiedVersion.string('0.0.100', '>0.0.1') // => true

SatisfiedVersion.string('1.0.0', '=1.0.0') // => true
SatisfiedVersion.string('1.0.0', '==1.0.0') // => true
// Default is return `appVersion == version`
copied to clipboard
You can also use with integer like this:
SatisfiedVersion.number(100, '>=100') // => true
// Supports all above operators
copied to clipboard
List: Return true if there is any satisfied version in sources #
const versions = ['<1.0.0', '>=1.0.2'];
print(SatisfiedVersion.list('1.0.0', versions)); // => false
print(SatisfiedVersion.list('1.0.3', versions)); // => true
print(SatisfiedVersion.list('0.0.9', versions)); // => true
copied to clipboard
With build number:
const versions = ['<100', '>=102'];
print(SatisfiedVersion.listNumber(100, versions)); // => false
// Supports all above operators
copied to clipboard
You can also compare the version within the range:
// You can input a shuffled list of values, the plugin will sort it for you.
// But I recommend you to sort it yourself to make it easier to maintain.
const versionsWithin = ['>1.0.0', '<1.5.0', '1.6.0', '>=2.0.0', '<2.0.2'];
print(SatisfiedVersion.list('1.0.0', versionsWithin)); // => false
print(SatisfiedVersion.list('1.1.0', versionsWithin)); // => true
print(SatisfiedVersion.list('1.5.1', versionsWithin)); // => false
print(SatisfiedVersion.list('1.6.0', versionsWithin)); // => true
print(SatisfiedVersion.list('2.0.1', versionsWithin)); // => true
print(SatisfiedVersion.list('2.0.2', versionsWithin)); // => false
copied to clipboard
With build number:
const versionsWithin = ['>100', '<150', '160', '>=200', '<202'];
print(SatisfiedVersion.listNumber(100, versionsWithin)); // => false
// Supports all above operators
copied to clipboard
Map: Return value of the satisfied key. Default is false #

preferTrue = true: Return true if it has at least 1 true condition.
preferTrue = false: Return false if it has at least 1 false condition. Default.

const versions = {'<1.0.0' : true, '>=1.0.2' : false};
print(SatisfiedVersion.map('1.0.0', versions)); // => false
print(SatisfiedVersion.map('1.0.3', versions)); // => false
print(SatisfiedVersion.map('0.0.9', versions)); // => true
copied to clipboard
With build number:
const versions = {'<100' : true, '>=102' : false};
print(SatisfiedVersion.map(100, versions)); // => false
// Supports all above operators
copied to clipboard
Use helper to create a version in String or Interger to avoid mistake #
final version = SatisfiedVersion.createVersion(SatisfiedCondition.greater, "1.0.0"); // '>1.0.0'
final number = SatisfiedVersion.createNumber(SatisfiedCondition.greater, 100); // '>100'
copied to clipboard
Extension: There is also a extension for String that help you easier to use this plugin #
// string
final result = '1.0.0'.satisfiedWith('<=1.0.0'); // => true
final result = '1.0.0'.satisfiedWith(['<=1.0.0', '>2.0.0']); // => true
final result = '1.0.0'.satisfiedWith({'<=1.0.0' : false}); // => false

// integer
final result = 100.satisfiedWith('<=1.0.0'); // => true
final result = 100.satisfiedWith(['<=1.0.0', '>2.0.0']); // => true
final result = 100.satisfiedWith({'<=1.0.0' : false}); // => false
copied to clipboard
Additional Parameters #


For all:

defaultCondition is the default condition if the compared version is provided without condition. Default value is SatisfiedCondition.equal.



For specific Map:

defaultValue is the default result for Map when appVersion is not in any range. Default is set to false.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files:

Customer Reviews

There are no reviews.