tschoffelen/react-native-check-version

Patch for Require cycle: node_modules/semver/classes/comparator.js -> node_modules/semver/classes/range.js -> node_modules/semver/classes/comparator.js

Closed this issue ยท 2 comments

Hi! ๐Ÿ‘‹

Firstly, thanks for your work on this project! ๐Ÿ™‚

Today I used patch-package to patch react-native-check-version@1.0.16 for the project I'm working on.

Here is the diff that solved my problem:

diff --git a/node_modules/react-native-check-version/src/versions.js b/node_modules/react-native-check-version/src/versions.js
index e69c00f..fc83676 100644
--- a/node_modules/react-native-check-version/src/versions.js
+++ b/node_modules/react-native-check-version/src/versions.js
@@ -1,7 +1,10 @@
-import semver from "semver";
+const semverParse = require('semver/functions/parse');
+const semverCoerse = require('semver/functions/coerce');
+const semverEq = require('semver/functions/eq');
+const semverLt = require('semver/functions/lt');
 
 export const parseVersion = (version) => {
-  return semver.parse(semver.coerce(version), true);
+  return semverParse(semverCoerse(version), true);
 };
 
 export const diffLoose = (version1, version2) => {
@@ -11,7 +14,7 @@ export const diffLoose = (version1, version2) => {
 
   const v1 = parseVersion(version1);
   const v2 = parseVersion(version2);
-  if (semver.lt(v2, v1) || semver.eq(v1, v2, true)) {
+  if (semverLt(v2, v1) || semverEq(v1, v2, true)) {
     return null;
   }
 

This issue body was partially generated by patch-package.

Hey there! Would you mind opening a PR for this? Happy to merge!

Closing this for as it's not a critical issue. Still happy to accept a PR to fix this though.