Skip to content

Commit 2673489

Browse files
committed
Replace DevTools semver usages with a simpler inlined method
1 parent f0cf832 commit 2673489

File tree

2 files changed

+42
-2
lines changed

2 files changed

+42
-2
lines changed

packages/react-devtools-shared/src/backend/renderer.js

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
* @flow
88
*/
99

10-
import {gt, gte} from 'semver';
1110
import {
1211
ComponentFilterDisplayName,
1312
ComponentFilterElementType,
@@ -142,6 +141,29 @@ type ReactPriorityLevelsType = {
142141
NoPriority: number,
143142
};
144143

144+
// https://www.npmjs.com/package/semver-compare
145+
function semvercmp(a: string = '', b: string = '') {
146+
const pa = a.split('.');
147+
const pb = b.split('.');
148+
for (var i = 0; i < 3; i++) {
149+
const na = Number(pa[i]);
150+
const nb = Number(pb[i]);
151+
if (na > nb) return 1;
152+
if (nb > na) return -1;
153+
if (!isNaN(na) && isNaN(nb)) return 1;
154+
if (isNaN(na) && !isNaN(nb)) return -1;
155+
}
156+
return 0;
157+
}
158+
159+
function gt(a: string = '', b: string = '') {
160+
return semvercmp(a, b) === 1;
161+
}
162+
163+
function gte(a: string = '', b: string = '') {
164+
return semvercmp(a, b) > -1;
165+
}
166+
145167
function getFiberFlags(fiber: Fiber): number {
146168
// The name of this field changed from "effectTag" to "flags"
147169
return fiber.flags !== undefined ? fiber.flags : (fiber: any).effectTag;

packages/react-devtools-shell/src/e2e-regression/app-legacy.js

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,29 @@
44

55
import * as React from 'react';
66
import * as ReactDOM from 'react-dom';
7-
import {gte} from 'semver';
87
import ListApp from '../e2e-apps/ListApp';
98
import ListAppLegacy from '../e2e-apps/ListAppLegacy';
109
const version = process.env.E2E_APP_REACT_VERSION;
1110

11+
// https://www.npmjs.com/package/semver-compare
12+
function semvercmp(a: string = '', b: string = '') {
13+
const pa = a.split('.');
14+
const pb = b.split('.');
15+
for (var i = 0; i < 3; i++) {
16+
const na = Number(pa[i]);
17+
const nb = Number(pb[i]);
18+
if (na > nb) return 1;
19+
if (nb > na) return -1;
20+
if (!isNaN(na) && isNaN(nb)) return 1;
21+
if (isNaN(na) && !isNaN(nb)) return -1;
22+
}
23+
return 0;
24+
}
25+
26+
function gte(a: string = '', b: string = '') {
27+
return semvercmp(a, b) > -1;
28+
}
29+
1230
function mountApp(App: () => React$Node) {
1331
const container = document.createElement('div');
1432

0 commit comments

Comments
 (0)