Skip to content

Commit 5dea3a9

Browse files
committed
refactor(windows): Work on windowslib refactor.
1 parent a5cf8de commit 5dea3a9

File tree

5 files changed

+168
-199
lines changed

5 files changed

+168
-199
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
},
88
"scripts": {
99
"build": "lerna exec gulp build",
10-
"link": "lerna exec yarn link"
10+
"link": "lerna exec yarn link",
11+
"unlink": "lerna exec yarn unlink"
1112
},
1213
"workspaces": {
1314
"packages": [

packages/plugin-windows/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# v2.0.0
22

33
* BREAKING CHANGE: Removed all Windows Phone related code.
4+
* BREAKING CHANGE: Renamed `windows` to `sdks` and `visualstudio` to `vs`in info results.
5+
* BREAKING CHANGE: Removed `selectedVisualStudio` from info results.
46
* fix: Updated config to remove redundant `windows` namespace.
57
* chore: Update dependencies.
68

Lines changed: 12 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,25 @@
11
module.exports = {
2-
device: {
2+
sdk: {
33
/**
4-
* The number of milliseconds to rescan for connected devices.
5-
* @type {Number}
4+
* A list of paths to search for Windows SDKs.
5+
* @type {Array.<String>}
66
*/
7-
pollInterval: null
7+
searchPaths: null
88
},
99

10-
emulators: {
10+
vs: {
1111
/**
12-
* The number of milliseconds to rescan for emulators.
13-
* @type {Number}
12+
* A list of paths to search for Visual Studio installations.
13+
* @type {Array.<String>}
1414
*/
15-
pollInterval: null
15+
searchPaths: null
1616
},
1717

18-
visualstudio: {
18+
vswhere: {
1919
/**
20-
* The number of milliseconds to rescan for Visual Studio installations.
21-
* @type {Number}
20+
* A list of paths to search for the `vswhere.exe` utility.
21+
* @type {Array.<String>}
2222
*/
23-
pollInterval: null
24-
},
25-
26-
windowsPhone: {
27-
/**
28-
* The number of milliseconds to rescan for Windows Phone SDKs.
29-
* @type {Number}
30-
*/
31-
pollInterval: null
32-
},
33-
34-
windowsSDK: {
35-
/**
36-
* The number of milliseconds to rescan for Windows SDKs.
37-
* @type {Number}
38-
*/
39-
pollInterval: null
23+
searchPaths: null
4024
}
4125
};
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
import semver from 'semver';
2+
3+
function format(ver, min, max, chopDash) {
4+
ver = ('' + (ver || 0));
5+
if (chopDash) {
6+
ver = ver.replace(/(-.*)?$/, '');
7+
}
8+
ver = ver.split('.');
9+
if (min !== undefined) {
10+
while (ver.length < min) {
11+
ver.push('0');
12+
}
13+
}
14+
if (max !== undefined) {
15+
ver = ver.slice(0, max);
16+
}
17+
return ver.join('.');
18+
}
19+
20+
function eq(v1, v2) {
21+
return semver.eq(format(v1, 3, 3), format(v2, 3, 3));
22+
}
23+
24+
function gte(v1, v2) {
25+
return semver.gte(format(v1, 3, 3), format(v2, 3, 3));
26+
}
27+
28+
function gt(v1, v2) {
29+
return semver.gt(format(v1, 3, 3), format(v2, 3, 3));
30+
}
31+
32+
function lte(v1, v2) {
33+
return semver.lte(format(v1, 3, 3), format(v2, 3, 3));
34+
}
35+
36+
function lt(v1, v2) {
37+
return semver.lt(format(v1, 3, 3), format(v2, 3, 3));
38+
}
39+
40+
function compare(v1, v2) {
41+
return eq(v1, v2) ? 0 : lt(v1, v2) ? -1 : 1;
42+
}
43+
44+
function rcompare(v1, v2) {
45+
return eq(v1, v2) ? 0 : lt(v1, v2) ? 1 : -1;
46+
}
47+
48+
function satisfies(ver, str) {
49+
ver = format(ver, 3, 3, true);
50+
str = str.replace(/(<=?\d+(\.\d+)*?)\.x/g, '$1.99999999').replace(/(>=?\d+(\.\d+)*?)\.x/g, '$1.0');
51+
try {
52+
if (str === '*' || eq(ver, str)) {
53+
return true;
54+
}
55+
} catch (ex) {
56+
// squelch
57+
}
58+
59+
return str.split(/\s*\|\|\s*/).some(function (range) {
60+
// semver is picky with the '-' in comparisons and it just so happens when it
61+
// parses versions in the range, it will add '-0' and cause '1.0.0' != '1.0.0-0',
62+
// so we test our version with and without the '-9'
63+
return range === '*' || semver.satisfies(ver, range) || (ver.indexOf('-') === -1 && semver.satisfies(ver + '-0', range));
64+
});
65+
}
66+
67+
export default {
68+
format,
69+
eq,
70+
gte,
71+
gt,
72+
lte,
73+
lt,
74+
compare,
75+
rcompare,
76+
satisfies
77+
};

0 commit comments

Comments
 (0)