@nordicsemiconductor/nrf-jlink-js 0.0.0-alpha2 → 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.
Files changed (2) hide show
  1. package/dist/jlink.js +40 -39
  2. 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 = output.match(versionRegExp);
76
- if (versionMatch) {
77
- jlinkExeCmd.kill(9);
78
- // resolve(versionMatch[1])
86
+ var versionMatch = data.toString().match(versionRegExp);
87
+ if (versionMatch === null || versionMatch === void 0 ? void 0 : versionMatch[1]) {
88
+ jlinkExeCmd.stdin.write(' exit\n');
89
+ resolve(versionMatch[1]);
79
90
  }
80
91
  else if (data.toString().includes("Connecting to")) {
81
- jlinkExeCmd.kill(9);
82
- return;
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 onUpdate && loaded && total &&
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 && onUpdate({ step: "install", percentage: 0 });
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 && stdout.includes("successful")) {
158
- onUpdate && onUpdate({ step: "install", percentage: 100 });
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 state, _a, e_1, _b;
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.trys.push([1, 3, , 4]);
188
- state.installed = true;
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
- _a.installedVersion = _c.sent();
193
- return [3 /*break*/, 4];
194
- case 3:
195
- e_1 = _c.sent();
196
- return [3 /*break*/, 4];
197
- case 4:
198
- _b = state;
199
- return [4 /*yield*/, (0, common_1.fetchIndex)()];
200
- case 5:
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
  }); };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nordicsemiconductor/nrf-jlink-js",
3
- "version": "0.0.0-alpha2",
3
+ "version": "0.0.0-alpha4",
4
4
  "main": "dist",
5
5
  "types": "dist",
6
6
  "files": [