nvm-vanilla 1.0.16 → 1.0.18

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/package.json +1 -1
  2. package/src/index.js +27 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nvm-vanilla",
3
- "version": "1.0.16",
3
+ "version": "1.0.18",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "bin": {
package/src/index.js CHANGED
@@ -211,9 +211,23 @@ const clear = async (dir) => {
211
211
  }
212
212
  };
213
213
 
214
+ const getNodePackageFilePath = (baseDir, name) => {
215
+ if (process.platform === 'win32') {
216
+ return path.join(baseDir, name, 'prefix', 'node_modules', nodePackageName, 'package.json');
217
+ }
218
+ return path.join(baseDir, name, 'prefix', 'lib', 'node_modules', nodePackageName, 'package.json');
219
+ };
220
+
221
+ const getPrefixBinDir = (baseDir, name) => {
222
+ if (process.platform === 'win32') {
223
+ return path.join(baseDir, name, 'prefix');
224
+ }
225
+ return path.join(baseDir, name, 'prefix', 'bin');
226
+ };
227
+
214
228
  const getLocalNodeVersion = async (baseDir, name) => {
215
229
  let aliasFile = path.join(baseDir, name);
216
- let packageFile = path.join(baseDir, name, 'prefix', 'node_modules', nodePackageName, 'package.json');
230
+ let packageFile = getNodePackageFilePath(baseDir, name);
217
231
 
218
232
  let [
219
233
  aliasVersion,
@@ -224,7 +238,7 @@ const getLocalNodeVersion = async (baseDir, name) => {
224
238
  ]);
225
239
 
226
240
  if (aliasVersion) {
227
- packageFile = path.join(baseDir, aliasVersion, 'prefix', 'node_modules', nodePackageName, 'package.json');
241
+ packageFile = getNodePackageFilePath(baseDir, aliasVersion);
228
242
  packageData = await readJsonFile(packageFile).catch(() => { });
229
243
  }
230
244
 
@@ -345,6 +359,10 @@ const init = async (baseDir, version) => {
345
359
  const uninstall = async (baseDir, version) => {
346
360
  const workDir = path.join(baseDir, version);
347
361
 
362
+ try {
363
+ await promisify(fs.unlink)(workDir);
364
+ } catch (_) { }
365
+
348
366
  try {
349
367
  await clear(workDir);
350
368
  } catch (_) { }
@@ -352,8 +370,7 @@ const uninstall = async (baseDir, version) => {
352
370
 
353
371
  const which = async (baseDir, name) => {
354
372
  const version = await getLocalNodeVersion(baseDir, name);
355
- const prefixDir = path.join(baseDir, version, 'prefix');
356
- return prefixDir;
373
+ return getPrefixBinDir(baseDir, version);
357
374
  };
358
375
 
359
376
  const use = async (baseDir, version, evalFlag = true) => {
@@ -363,11 +380,13 @@ const use = async (baseDir, version, evalFlag = true) => {
363
380
  }
364
381
 
365
382
  // const workDir = path.join(baseDir, version, 'bin');
366
-
367
383
  // const workDir = path.join(baseDir, version, 'node_modules', '.bin');
368
- const prefixDir = path.join(baseDir, version, 'prefix');
384
+
385
+ const prefixDir = path.join(baseDir, version, 'prefix');
369
386
  const cacheDir = path.join(baseDir, version, 'cache');
370
387
 
388
+ const prefixBinDir = getPrefixBinDir(baseDir, version);
389
+
371
390
  const resetFlag = version === 'system';
372
391
 
373
392
  // let checkFlag = false;
@@ -384,7 +403,7 @@ const use = async (baseDir, version, evalFlag = true) => {
384
403
 
385
404
  list = list.filter(item => item.indexOf(baseDir) === -1);
386
405
 
387
- if (!resetFlag) list.unshift(prefixDir);
406
+ if (!resetFlag) list.unshift(prefixBinDir);
388
407
 
389
408
  const env = {};
390
409
 
@@ -426,7 +445,7 @@ const list = async (baseDir) => {
426
445
  let versionList = await Promise.all(nameList.map(async name => {
427
446
  const version = await getLocalNodeVersion(baseDir, name).catch(() => { });
428
447
  if (!version) {
429
- await uninstall(baseDir, version);
448
+ await uninstall(baseDir, name);
430
449
  return;
431
450
  }
432
451
  return 'node@' + name + ' (' + version + ')';