Added files for Juan
This commit is contained in:
54
ExACTRegressionScripts/node_modules/compare-versions/src/compare.ts
generated
vendored
Normal file
54
ExACTRegressionScripts/node_modules/compare-versions/src/compare.ts
generated
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
import { compareVersions } from './compareVersions';
|
||||
import { CompareOperator } from './utils';
|
||||
|
||||
/**
|
||||
* Compare [semver](https://semver.org/) version strings using the specified operator.
|
||||
*
|
||||
* @param v1 First version to compare
|
||||
* @param v2 Second version to compare
|
||||
* @param operator Allowed arithmetic operator to use
|
||||
* @returns `true` if the comparison between the firstVersion and the secondVersion satisfies the operator, `false` otherwise.
|
||||
*
|
||||
* @example
|
||||
* ```
|
||||
* compare('10.1.8', '10.0.4', '>'); // return true
|
||||
* compare('10.0.1', '10.0.1', '='); // return true
|
||||
* compare('10.1.1', '10.2.2', '<'); // return true
|
||||
* compare('10.1.1', '10.2.2', '<='); // return true
|
||||
* compare('10.1.1', '10.2.2', '>='); // return false
|
||||
* ```
|
||||
*/
|
||||
export const compare = (v1: string, v2: string, operator: CompareOperator) => {
|
||||
// validate input operator
|
||||
assertValidOperator(operator);
|
||||
|
||||
// since result of compareVersions can only be -1 or 0 or 1
|
||||
// a simple map can be used to replace switch
|
||||
const res = compareVersions(v1, v2);
|
||||
|
||||
return operatorResMap[operator].includes(res);
|
||||
};
|
||||
|
||||
const operatorResMap = {
|
||||
'>': [1],
|
||||
'>=': [0, 1],
|
||||
'=': [0],
|
||||
'<=': [-1, 0],
|
||||
'<': [-1],
|
||||
'!=': [-1, 1],
|
||||
};
|
||||
|
||||
const allowedOperators = Object.keys(operatorResMap);
|
||||
|
||||
const assertValidOperator = (op: string) => {
|
||||
if (typeof op !== 'string') {
|
||||
throw new TypeError(
|
||||
`Invalid operator type, expected string but got ${typeof op}`
|
||||
);
|
||||
}
|
||||
if (allowedOperators.indexOf(op) === -1) {
|
||||
throw new Error(
|
||||
`Invalid operator, expected one of ${allowedOperators.join('|')}`
|
||||
);
|
||||
}
|
||||
};
|
||||
Reference in New Issue
Block a user