您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

48 行
907 B

4 年前
  1. const eq = require('./eq')
  2. const neq = require('./neq')
  3. const gt = require('./gt')
  4. const gte = require('./gte')
  5. const lt = require('./lt')
  6. const lte = require('./lte')
  7. const cmp = (a, op, b, loose) => {
  8. switch (op) {
  9. case '===':
  10. if (typeof a === 'object')
  11. a = a.version
  12. if (typeof b === 'object')
  13. b = b.version
  14. return a === b
  15. case '!==':
  16. if (typeof a === 'object')
  17. a = a.version
  18. if (typeof b === 'object')
  19. b = b.version
  20. return a !== b
  21. case '':
  22. case '=':
  23. case '==':
  24. return eq(a, b, loose)
  25. case '!=':
  26. return neq(a, b, loose)
  27. case '>':
  28. return gt(a, b, loose)
  29. case '>=':
  30. return gte(a, b, loose)
  31. case '<':
  32. return lt(a, b, loose)
  33. case '<=':
  34. return lte(a, b, loose)
  35. default:
  36. throw new TypeError(`Invalid operator: ${op}`)
  37. }
  38. }
  39. module.exports = cmp