Browse Source

Replace semver with node-semver (#816)

Co-authored-by: Gal Schlezinger <gal@spitfire.co.il>
remotes/origin/alias-latest
Amit Dahan 3 years ago committed by GitHub
parent
commit
1327bb8d6b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      .changeset/serious-parents-tease.md
  2. 60
      Cargo.lock
  3. 2
      Cargo.toml
  4. 2
      src/current_version.rs
  5. 2
      src/installed_versions.rs
  6. 2
      src/user_version.rs
  7. 2
      src/user_version_reader.rs
  8. 12
      src/version.rs

5
.changeset/serious-parents-tease.md

@ -0,0 +1,5 @@ @@ -0,0 +1,5 @@
---
"fnm": minor
---
Replace `semver` with `node_semver`

60
Cargo.lock generated

@ -155,6 +155,12 @@ version = "3.11.1" @@ -155,6 +155,12 @@ version = "3.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
[[package]]
name = "bytecount"
version = "0.6.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c"
[[package]]
name = "byteorder"
version = "1.4.3"
@ -615,9 +621,9 @@ dependencies = [ @@ -615,9 +621,9 @@ dependencies = [
"indoc",
"junction",
"log",
"node-semver",
"pretty_assertions",
"reqwest",
"semver",
"serde",
"serde_json",
"sysinfo",
@ -1001,12 +1007,41 @@ dependencies = [ @@ -1001,12 +1007,41 @@ dependencies = [
"autocfg",
]
[[package]]
name = "miette"
version = "5.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a28d6092d7e94a90bb9ea8e6c26c99d5d112d49dda2afdb4f7ea8cf09e1a5a6d"
dependencies = [
"miette-derive",
"once_cell",
"thiserror",
"unicode-width",
]
[[package]]
name = "miette-derive"
version = "5.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4f2485ed7d1fe80704928e3eb86387439609bd0c6bb96db8208daa364cfd1e09"
dependencies = [
"proc-macro2",
"quote",
"syn",
]
[[package]]
name = "mime"
version = "0.3.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
[[package]]
name = "minimal-lexical"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]]
name = "miniz_oxide"
version = "0.5.4"
@ -1028,6 +1063,29 @@ dependencies = [ @@ -1028,6 +1063,29 @@ dependencies = [
"windows-sys 0.42.0",
]
[[package]]
name = "node-semver"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84f390c1756333538f2aed01cf280a56bc683e199b9804a504df6e7320d40116"
dependencies = [
"bytecount",
"miette",
"nom",
"serde",
"thiserror",
]
[[package]]
name = "nom"
version = "7.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
dependencies = [
"memchr",
"minimal-lexical",
]
[[package]]
name = "ntapi"
version = "0.4.0"

2
Cargo.toml

@ -15,7 +15,7 @@ serde_json = "1.0.88" @@ -15,7 +15,7 @@ serde_json = "1.0.88"
chrono = { version = "0.4.23", features = ["serde"] }
tar = "0.4.38"
xz2 = "0.1.7"
semver = "1.0.14"
node-semver = "2.1.0"
dirs = "4.0.0"
colored = "2.0.0"
zip = "0.6.3"

2
src/current_version.rs

@ -36,7 +36,7 @@ pub enum Error { @@ -36,7 +36,7 @@ pub enum Error {
EnvNotApplied,
#[error("Can't read the version as a valid semver")]
VersionError {
source: semver::Error,
source: node_semver::SemverError,
version: String,
},
}

2
src/installed_versions.rs

@ -36,6 +36,6 @@ pub enum Error { @@ -36,6 +36,6 @@ pub enum Error {
#[error(transparent)]
SemverError {
#[from]
source: semver::Error,
source: node_semver::SemverError,
},
}

2
src/user_version.rs

@ -70,7 +70,7 @@ fn skip_first_v(str: &str) -> &str { @@ -70,7 +70,7 @@ fn skip_first_v(str: &str) -> &str {
}
impl FromStr for UserVersion {
type Err = semver::Error;
type Err = node_semver::SemverError;
fn from_str(s: &str) -> Result<UserVersion, Self::Err> {
match Version::parse(s) {
Ok(v) => Ok(Self::Full(v)),

2
src/user_version_reader.rs

@ -21,7 +21,7 @@ impl UserVersionReader { @@ -21,7 +21,7 @@ impl UserVersionReader {
}
impl FromStr for UserVersionReader {
type Err = semver::Error;
type Err = node_semver::SemverError;
fn from_str(s: &str) -> Result<Self, Self::Err> {
let pathbuf = PathBuf::from_str(s);

12
src/version.rs

@ -6,7 +6,7 @@ use std::str::FromStr; @@ -6,7 +6,7 @@ use std::str::FromStr;
#[derive(Debug, PartialEq, PartialOrd, Eq, Ord, Clone)]
pub enum Version {
Semver(semver::Version),
Semver(node_semver::Version),
Lts(LtsType),
Alias(String),
Latest,
@ -18,7 +18,7 @@ fn first_letter_is_number(s: &str) -> bool { @@ -18,7 +18,7 @@ fn first_letter_is_number(s: &str) -> bool {
}
impl Version {
pub fn parse<S: AsRef<str>>(version_str: S) -> Result<Self, semver::Error> {
pub fn parse<S: AsRef<str>>(version_str: S) -> Result<Self, node_semver::SemverError> {
let lowercased = version_str.as_ref().to_lowercase();
if lowercased == system_version::display_name() {
Ok(Self::Bypassed)
@ -27,7 +27,7 @@ impl Version { @@ -27,7 +27,7 @@ impl Version {
Ok(Self::Lts(lts_type))
} else if first_letter_is_number(lowercased.trim_start_matches('v')) {
let version_plain = lowercased.trim_start_matches('v');
let sver = semver::Version::parse(version_plain)?;
let sver = node_semver::Version::parse(version_plain)?;
Ok(Self::Semver(sver))
} else {
Ok(Self::Alias(lowercased))
@ -100,14 +100,14 @@ impl std::fmt::Display for Version { @@ -100,14 +100,14 @@ impl std::fmt::Display for Version {
}
impl FromStr for Version {
type Err = semver::Error;
type Err = node_semver::SemverError;
fn from_str(s: &str) -> Result<Version, Self::Err> {
Self::parse(s)
}
}
impl PartialEq<semver::Version> for Version {
fn eq(&self, other: &semver::Version) -> bool {
impl PartialEq<node_semver::Version> for Version {
fn eq(&self, other: &node_semver::Version) -> bool {
match self {
Self::Bypassed | Self::Lts(_) | Self::Alias(_) | Self::Latest => false,
Self::Semver(v) => v == other,

Loading…
Cancel
Save