strong-tie/inbound-calls
0
1const eq = require('./eq')2const neq = require('./neq')3const gt = require('./gt')4const gte = require('./gte')5const lt = require('./lt')6const lte = require('./lte')7 8const cmp = (a, op, b, loose) => {9 switch (op) {10 case '===':11 if (typeof a === 'object') {12 a = a.version13 }14 if (typeof b === 'object') {15 b = b.version16 }17 return a === b18 19 case '!==':20 if (typeof a === 'object') {21 a = a.version22 }23 if (typeof b === 'object') {24 b = b.version25 }26 return a !== b27 28 case '':29 case '=':30 case '==':31 return eq(a, b, loose)32 33 case '!=':34 return neq(a, b, loose)35 36 case '>':37 return gt(a, b, loose)38 39 case '>=':40 return gte(a, b, loose)41 42 case '<':43 return lt(a, b, loose)44 45 case '<=':46 return lte(a, b, loose)47 48 default:49 throw new TypeError(`Invalid operator: ${op}`)50 }51}52module.exports = cmp53 