Skip to content

Commit

Permalink
Replace semver with node-semver (Schniz#816)
Browse files Browse the repository at this point in the history
Co-authored-by: Gal Schlezinger <gal@spitfire.co.il>
amitdahan and Schniz authored Nov 19, 2022
1 parent b52b659 commit 1327bb8
Showing 8 changed files with 75 additions and 12 deletions.
5 changes: 5 additions & 0 deletions .changeset/serious-parents-tease.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"fnm": minor
---

Replace `semver` with `node_semver`
60 changes: 59 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -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 changes: 1 addition & 1 deletion src/current_version.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 1 addition & 1 deletion src/installed_versions.rs
Original file line number Diff line number Diff line change
@@ -36,6 +36,6 @@ pub enum Error {
#[error(transparent)]
SemverError {
#[from]
source: semver::Error,
source: node_semver::SemverError,
},
}
2 changes: 1 addition & 1 deletion src/user_version.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 1 addition & 1 deletion src/user_version_reader.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 6 additions & 6 deletions src/version.rs
Original file line number Diff line number Diff line change
@@ -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 {
}

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 {
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 {
}

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,

0 comments on commit 1327bb8

Please sign in to comment.