| 6006 | |
| 6007 | exports.cmp = cmp |
| 6008 | function cmp (a, op, b, loose) { |
| 6009 | switch (op) { |
| 6010 | case '===': |
| 6011 | if (typeof a === 'object') |
| 6012 | a = a.version |
| 6013 | if (typeof b === 'object') |
| 6014 | b = b.version |
| 6015 | return a === b |
| 6016 | |
| 6017 | case '!==': |
| 6018 | if (typeof a === 'object') |
| 6019 | a = a.version |
| 6020 | if (typeof b === 'object') |
| 6021 | b = b.version |
| 6022 | return a !== b |
| 6023 | |
| 6024 | case '': |
| 6025 | case '=': |
| 6026 | case '==': |
| 6027 | return eq(a, b, loose) |
| 6028 | |
| 6029 | case '!=': |
| 6030 | return neq(a, b, loose) |
| 6031 | |
| 6032 | case '>': |
| 6033 | return gt(a, b, loose) |
| 6034 | |
| 6035 | case '>=': |
| 6036 | return gte(a, b, loose) |
| 6037 | |
| 6038 | case '<': |
| 6039 | return lt(a, b, loose) |
| 6040 | |
| 6041 | case '<=': |
| 6042 | return lte(a, b, loose) |
| 6043 | |
| 6044 | default: |
| 6045 | throw new TypeError('Invalid operator: ' + op) |
| 6046 | } |
| 6047 | } |
| 6048 | |
| 6049 | exports.Comparator = Comparator |
| 6050 | function Comparator (comp, options) { |