@pnpm/plugin-commands-env 4.0.5 → 4.0.6

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/lib/envUse.js CHANGED
@@ -10,6 +10,8 @@ const error_1 = require("@pnpm/error");
10
10
  const fetch_1 = require("@pnpm/fetch");
11
11
  const node_resolver_1 = require("@pnpm/node.resolver");
12
12
  const cmd_shim_1 = __importDefault(require("@zkochan/cmd-shim"));
13
+ const is_windows_1 = __importDefault(require("is-windows"));
14
+ const symlink_dir_1 = __importDefault(require("symlink-dir"));
13
15
  const node_1 = require("./node");
14
16
  const getNodeMirror_1 = require("./getNodeMirror");
15
17
  const parseNodeEditionSpecifier_1 = require("./parseNodeEditionSpecifier");
@@ -32,11 +34,12 @@ async function envUse(opts, params) {
32
34
  });
33
35
  const src = (0, utils_1.getNodeExecPathInNodeDir)(nodeDir);
34
36
  const dest = (0, utils_1.getNodeExecPathInBinDir)(opts.bin);
37
+ await (0, symlink_dir_1.default)(nodeDir, path_1.default.join(opts.pnpmHomeDir, utils_1.CURRENT_NODE_DIRNAME));
35
38
  try {
36
39
  await fs_1.promises.unlink(dest);
37
40
  }
38
41
  catch (err) { }
39
- await fs_1.promises.symlink(src, dest, 'file');
42
+ await symlinkOrHardLink(src, dest);
40
43
  try {
41
44
  let npmDir = nodeDir;
42
45
  if (process.platform !== 'win32') {
@@ -60,4 +63,12 @@ async function envUse(opts, params) {
60
63
  ${dest} -> ${src}`;
61
64
  }
62
65
  exports.envUse = envUse;
66
+ // On Windows, symlinks only work with developer mode enabled
67
+ // or with admin permissions. So it is better to use hard links on Windows.
68
+ async function symlinkOrHardLink(existingPath, newPath) {
69
+ if ((0, is_windows_1.default)()) {
70
+ return fs_1.promises.link(existingPath, newPath);
71
+ }
72
+ return fs_1.promises.symlink(existingPath, newPath, 'file');
73
+ }
63
74
  //# sourceMappingURL=envUse.js.map
package/lib/envUse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"envUse.js","sourceRoot":"","sources":["../src/envUse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"envUse.js","sourceRoot":"","sources":["../src/envUse.ts"],"names":[],"mappings":"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"}
package/lib/utils.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export declare const CURRENT_NODE_DIRNAME = "nodejs_current";
1
2
  export declare function getNodeExecPathAndTargetDir(pnpmHomeDir: string): Promise<{
2
3
  nodePath: string;
3
4
  nodeLink: string | undefined;
package/lib/utils.js CHANGED
@@ -3,19 +3,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getNodeExecPathInNodeDir = exports.getNodeExecPathInBinDir = exports.getNodeExecPathAndTargetDir = void 0;
6
+ exports.getNodeExecPathInNodeDir = exports.getNodeExecPathInBinDir = exports.getNodeExecPathAndTargetDir = exports.CURRENT_NODE_DIRNAME = void 0;
7
7
  const fs_1 = require("fs");
8
8
  const path_1 = __importDefault(require("path"));
9
+ exports.CURRENT_NODE_DIRNAME = 'nodejs_current';
9
10
  async function getNodeExecPathAndTargetDir(pnpmHomeDir) {
10
11
  const nodePath = getNodeExecPathInBinDir(pnpmHomeDir);
11
- let nodeLink;
12
+ const nodeCurrentDirLink = path_1.default.join(pnpmHomeDir, exports.CURRENT_NODE_DIRNAME);
13
+ let nodeCurrentDir;
12
14
  try {
13
- nodeLink = await fs_1.promises.readlink(nodePath);
15
+ nodeCurrentDir = await fs_1.promises.readlink(nodeCurrentDirLink);
14
16
  }
15
17
  catch (err) {
16
- nodeLink = undefined;
18
+ nodeCurrentDir = undefined;
17
19
  }
18
- return { nodePath, nodeLink };
20
+ return { nodePath, nodeLink: nodeCurrentDir ? getNodeExecPathInNodeDir(nodeCurrentDir) : undefined };
19
21
  }
20
22
  exports.getNodeExecPathAndTargetDir = getNodeExecPathAndTargetDir;
21
23
  function getNodeExecPathInBinDir(pnpmHomeDir) {
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAmC;AACnC,gDAAuB;AAEhB,KAAK,UAAU,2BAA2B,CAAE,WAAmB;IACpE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAA;IACrD,IAAI,QAA4B,CAAA;IAChC,IAAI;QACF,QAAQ,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;KACvC;IAAC,OAAO,GAAG,EAAE;QACZ,QAAQ,GAAG,SAAS,CAAA;KACrB;IACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;AAC/B,CAAC;AATD,kEASC;AAED,SAAgB,uBAAuB,CAAE,WAAmB;IAC1D,OAAO,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AACtF,CAAC;AAFD,0DAEC;AAED,SAAgB,wBAAwB,CAAE,OAAe;IACvD,OAAO,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;AACnF,CAAC;AAFD,4DAEC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAmC;AACnC,gDAAuB;AAEV,QAAA,oBAAoB,GAAG,gBAAgB,CAAA;AAE7C,KAAK,UAAU,2BAA2B,CAAE,WAAmB;IACpE,MAAM,QAAQ,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAA;IACrD,MAAM,kBAAkB,GAAG,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,4BAAoB,CAAC,CAAA;IACvE,IAAI,cAAkC,CAAA;IACtC,IAAI;QACF,cAAc,GAAG,MAAM,aAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAA;KACvD;IAAC,OAAO,GAAG,EAAE;QACZ,cAAc,GAAG,SAAS,CAAA;KAC3B;IACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;AACtG,CAAC;AAVD,kEAUC;AAED,SAAgB,uBAAuB,CAAE,WAAmB;IAC1D,OAAO,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AACtF,CAAC;AAFD,0DAEC;AAED,SAAgB,wBAAwB,CAAE,OAAe;IACvD,OAAO,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;AACnF,CAAC;AAFD,4DAEC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pnpm/plugin-commands-env",
3
- "version": "4.0.5",
3
+ "version": "4.0.6",
4
4
  "description": "pnpm commands for managing Node.js",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -26,29 +26,32 @@
26
26
  "@pnpm/logger": "^5.0.0",
27
27
  "@zkochan/cmd-shim": "^6.0.0",
28
28
  "@zkochan/rimraf": "^2.1.2",
29
+ "is-windows": "^1.0.2",
29
30
  "load-json-file": "^6.2.0",
30
31
  "render-help": "^1.0.3",
31
- "semver": "^7.3.8",
32
+ "semver": "^7.4.0",
33
+ "symlink-dir": "^5.1.1",
32
34
  "write-json-file": "^4.3.0",
33
- "@pnpm/cli-utils": "2.0.5",
34
- "@pnpm/config": "18.2.0",
35
+ "@pnpm/cli-utils": "2.0.6",
36
+ "@pnpm/config": "18.3.0",
35
37
  "@pnpm/error": "5.0.0",
36
38
  "@pnpm/fetch": "7.0.0",
37
39
  "@pnpm/node.fetcher": "3.0.0",
38
- "@pnpm/node.resolver": "2.0.0",
40
+ "@pnpm/node.resolver": "2.0.1",
39
41
  "@pnpm/remove-bins": "5.0.0",
40
42
  "@pnpm/store-path": "8.0.0"
41
43
  },
42
44
  "funding": "https://opencollective.com/pnpm",
43
45
  "devDependencies": {
44
46
  "@types/adm-zip": "^0.5.0",
47
+ "@types/is-windows": "^1.0.0",
45
48
  "@types/semver": "7.3.13",
46
49
  "adm-zip": "^0.5.10",
47
50
  "execa": "npm:safe-execa@0.1.2",
48
51
  "nock": "13.3.0",
49
52
  "node-fetch": "3.0.0-beta.9",
50
53
  "path-name": "^1.0.0",
51
- "@pnpm/plugin-commands-env": "4.0.5",
54
+ "@pnpm/plugin-commands-env": "4.0.6",
52
55
  "@pnpm/prepare": "0.0.65"
53
56
  },
54
57
  "exports": {