index.js 871 B

12345678910111213141516171819202122232425262728293031323334353637
  1. 'use strict';
  2. const os = require('os');
  3. const nameMap = new Map([
  4. [21, ['Monterey', '12']],
  5. [20, ['Big Sur', '11']],
  6. [19, ['Catalina', '10.15']],
  7. [18, ['Mojave', '10.14']],
  8. [17, ['High Sierra', '10.13']],
  9. [16, ['Sierra', '10.12']],
  10. [15, ['El Capitan', '10.11']],
  11. [14, ['Yosemite', '10.10']],
  12. [13, ['Mavericks', '10.9']],
  13. [12, ['Mountain Lion', '10.8']],
  14. [11, ['Lion', '10.7']],
  15. [10, ['Snow Leopard', '10.6']],
  16. [9, ['Leopard', '10.5']],
  17. [8, ['Tiger', '10.4']],
  18. [7, ['Panther', '10.3']],
  19. [6, ['Jaguar', '10.2']],
  20. [5, ['Puma', '10.1']]
  21. ]);
  22. const macosRelease = release => {
  23. release = Number((release || os.release()).split('.')[0]);
  24. const [name, version] = nameMap.get(release) || ['Unknown', ''];
  25. return {
  26. name,
  27. version
  28. };
  29. };
  30. module.exports = macosRelease;
  31. // TODO: remove this in the next major version
  32. module.exports.default = macosRelease;