@nordicsemiconductor/nrf-jlink-js 0.0.0-alpha3 → 0.0.0-alpha4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/jlink.js +38 -37
- package/package.json +1 -1
package/dist/jlink.js
CHANGED
|
@@ -69,22 +69,36 @@ var getJLinkExePath = function () {
|
|
|
69
69
|
var getInstalledJLinkVersion = function () {
|
|
70
70
|
return new Promise(function (resolve, reject) {
|
|
71
71
|
var jlinkExeCmd = (0, child_process_1.spawn)(getJLinkExePath(), ["-NoGUI", "1"], { shell: true });
|
|
72
|
+
var timeout = setTimeout(function () {
|
|
73
|
+
var pid = jlinkExeCmd === null || jlinkExeCmd === void 0 ? void 0 : jlinkExeCmd.pid;
|
|
74
|
+
if (pid) {
|
|
75
|
+
if (process.platform === 'win32') {
|
|
76
|
+
(0, child_process_1.spawn)('taskkill', ['/pid', "".concat(pid), '/f', '/t']);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
process.kill(pid);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
reject('Failed to read Jlink Version');
|
|
83
|
+
}, 5000);
|
|
72
84
|
jlinkExeCmd.stdout.on("data", function (data) {
|
|
73
|
-
var output = data.toString();
|
|
74
85
|
var versionRegExp = /DLL version (V\d+\.\d+\w*),.*/;
|
|
75
|
-
var versionMatch =
|
|
86
|
+
var versionMatch = data.toString().match(versionRegExp);
|
|
76
87
|
if (versionMatch === null || versionMatch === void 0 ? void 0 : versionMatch[1]) {
|
|
77
|
-
jlinkExeCmd.
|
|
88
|
+
jlinkExeCmd.stdin.write(' exit\n');
|
|
78
89
|
resolve(versionMatch[1]);
|
|
79
90
|
}
|
|
80
91
|
else if (data.toString().includes("Connecting to")) {
|
|
81
|
-
jlinkExeCmd.
|
|
82
|
-
|
|
92
|
+
jlinkExeCmd.stdin.write(' exit\n');
|
|
93
|
+
reject('Failed to read Jlink Version');
|
|
83
94
|
}
|
|
84
95
|
});
|
|
85
96
|
jlinkExeCmd.stderr.on("data", function () {
|
|
86
97
|
reject('Failed to read Jlink Version');
|
|
87
98
|
});
|
|
99
|
+
jlinkExeCmd.on('close', function () {
|
|
100
|
+
clearTimeout(timeout);
|
|
101
|
+
});
|
|
88
102
|
});
|
|
89
103
|
};
|
|
90
104
|
var downloadJLink = function (_a, onUpdate_1) { return __awaiter(void 0, [_a, onUpdate_1], void 0, function (_b, onUpdate) {
|
|
@@ -108,8 +122,8 @@ var downloadJLink = function (_a, onUpdate_1) { return __awaiter(void 0, [_a, on
|
|
|
108
122
|
responseType: "stream",
|
|
109
123
|
onDownloadProgress: function (_a) {
|
|
110
124
|
var loaded = _a.loaded, total = _a.total;
|
|
111
|
-
return
|
|
112
|
-
onUpdate({ step: "download", percentage: Number(((loaded / total) * 100).toFixed(2)) });
|
|
125
|
+
return loaded && total &&
|
|
126
|
+
(onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate({ step: "download", percentage: Number(((loaded / total) * 100).toFixed(2)) }));
|
|
113
127
|
},
|
|
114
128
|
})];
|
|
115
129
|
case 1:
|
|
@@ -145,7 +159,7 @@ var installJLink = function (installerPath, onUpdate) {
|
|
|
145
159
|
default:
|
|
146
160
|
throw new Error("Invalid platform");
|
|
147
161
|
}
|
|
148
|
-
onUpdate
|
|
162
|
+
onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate({ step: "install", percentage: 0 });
|
|
149
163
|
return new Promise(function (resolve, reject) {
|
|
150
164
|
(0, child_process_1.execFile)(command, args, function (error, stdout, stderr) {
|
|
151
165
|
if (error) {
|
|
@@ -154,8 +168,8 @@ var installJLink = function (installerPath, onUpdate) {
|
|
|
154
168
|
if (stderr) {
|
|
155
169
|
reject(stderr);
|
|
156
170
|
}
|
|
157
|
-
if (stdout
|
|
158
|
-
onUpdate
|
|
171
|
+
if (stdout.includes("successful")) {
|
|
172
|
+
onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate({ step: "install", percentage: 100 });
|
|
159
173
|
return resolve();
|
|
160
174
|
}
|
|
161
175
|
});
|
|
@@ -173,37 +187,24 @@ var isValidVersion = function (installedVersion, expectedVersion) {
|
|
|
173
187
|
return semver_1.default.gte(convertToSemverVersion(installedVersion), convertToSemverVersion(expectedVersion));
|
|
174
188
|
};
|
|
175
189
|
var getVersionToInstall = function (fallbackVersion) { return __awaiter(void 0, void 0, void 0, function () {
|
|
176
|
-
var
|
|
190
|
+
var versionToBeInstalled, installedVersion, installed, outdated;
|
|
191
|
+
var _a, _b;
|
|
177
192
|
return __generator(this, function (_c) {
|
|
178
193
|
switch (_c.label) {
|
|
179
|
-
case 0:
|
|
180
|
-
state = {
|
|
181
|
-
outdated: true,
|
|
182
|
-
installed: false,
|
|
183
|
-
versionToBeInstalled: fallbackVersion,
|
|
184
|
-
};
|
|
185
|
-
_c.label = 1;
|
|
194
|
+
case 0: return [4 /*yield*/, (0, common_1.fetchIndex)().catch(function () { return undefined; })];
|
|
186
195
|
case 1:
|
|
187
|
-
_c.
|
|
188
|
-
|
|
189
|
-
_a = state;
|
|
190
|
-
return [4 /*yield*/, getInstalledJLinkVersion()];
|
|
196
|
+
versionToBeInstalled = (_b = (_a = (_c.sent())) === null || _a === void 0 ? void 0 : _a.version) !== null && _b !== void 0 ? _b : fallbackVersion;
|
|
197
|
+
return [4 /*yield*/, getInstalledJLinkVersion().catch(function () { return undefined; })];
|
|
191
198
|
case 2:
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
_b.versionToBeInstalled = (_c.sent()).version;
|
|
202
|
-
if (!state.installed || !state.installedVersion) {
|
|
203
|
-
return [2 /*return*/, state];
|
|
204
|
-
}
|
|
205
|
-
state.outdated = !isValidVersion(state.installedVersion, state.versionToBeInstalled);
|
|
206
|
-
return [2 /*return*/, state];
|
|
199
|
+
installedVersion = _c.sent();
|
|
200
|
+
installed = !!installedVersion;
|
|
201
|
+
outdated = !installed || !versionToBeInstalled || isValidVersion(installedVersion, versionToBeInstalled);
|
|
202
|
+
return [2 /*return*/, {
|
|
203
|
+
outdated: outdated,
|
|
204
|
+
installedVersion: installedVersion,
|
|
205
|
+
installed: installed,
|
|
206
|
+
versionToBeInstalled: versionToBeInstalled,
|
|
207
|
+
}];
|
|
207
208
|
}
|
|
208
209
|
});
|
|
209
210
|
}); };
|