LocalVersionPopover.utils.ts 872 B

12345678910111213141516171819202122232425262728
  1. type CLIVersionSemver = { major: number; minor: number; patch: number }
  2. // [Joshen] Specifically in the syntax of `v0.0.0`
  3. export const getSemver = (version?: string) => {
  4. if (!version) return undefined
  5. const [major, minor, patch] = version.slice(1).split('.')
  6. return { major: Number(major), minor: Number(minor), patch: Number(patch) }
  7. }
  8. export const semverLte = (a: CLIVersionSemver, b: CLIVersionSemver) => {
  9. if (
  10. a.major > b.major ||
  11. (a.major === b.major && a.minor > b.minor) ||
  12. (a.major === b.major && a.minor === b.minor && a.patch > b.patch)
  13. )
  14. return false
  15. return true
  16. }
  17. export const semverGte = (a: CLIVersionSemver, b: CLIVersionSemver) => {
  18. if (
  19. a.major < b.major ||
  20. (a.major === b.major && a.minor < b.minor) ||
  21. (a.major === b.major && a.minor === b.minor && a.patch < b.patch)
  22. )
  23. return false
  24. return true
  25. }