node-version-utils 1.1.3 → 1.2.0
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/cjs/{index.js → index.cjs} +4 -17
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/{startsCaseInsensitiveFn.js → lib/startsWithFn.cjs} +11 -2
- package/dist/cjs/lib/startsWithFn.cjs.map +1 -0
- package/dist/cjs/{spawnOptions.js → spawnOptions.cjs} +29 -14
- package/dist/cjs/spawnOptions.cjs.map +1 -0
- package/dist/cjs/{spawnSync.js → types.cjs} +3 -5
- package/dist/cjs/types.cjs.map +1 -0
- package/dist/esm/index.mjs +1 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/lib/startsWithFn.mjs +11 -0
- package/dist/esm/lib/startsWithFn.mjs.map +1 -0
- package/dist/esm/spawnOptions.mjs +35 -0
- package/dist/esm/spawnOptions.mjs.map +1 -0
- package/dist/esm/types.mjs +1 -0
- package/dist/esm/types.mjs.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/lib/startsWithFn.d.ts +1 -0
- package/dist/types/spawnOptions.d.ts +2 -2
- package/dist/types/types.d.ts +11 -0
- package/package.json +15 -9
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/package.json +0 -1
- package/dist/cjs/spawn.js +0 -18
- package/dist/cjs/spawn.js.map +0 -1
- package/dist/cjs/spawnOptions.js.map +0 -1
- package/dist/cjs/spawnSync.js.map +0 -1
- package/dist/cjs/startsCaseInsensitiveFn.js.map +0 -1
- package/dist/types/index.d.mts +0 -3
- package/dist/types/spawn.d.ts +0 -2
- package/dist/types/spawnSync.d.ts +0 -2
- package/dist/types/startsCaseInsensitiveFn.d.ts +0 -2
|
@@ -2,26 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", {
|
|
3
3
|
value: true
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
get: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
spawn: function() {
|
|
13
|
-
return _spawn.default;
|
|
14
|
-
},
|
|
15
|
-
spawnOptions: function() {
|
|
5
|
+
Object.defineProperty(exports, "spawnOptions", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
16
8
|
return _spawnOptions.default;
|
|
17
|
-
},
|
|
18
|
-
spawnSync: function() {
|
|
19
|
-
return _spawnSync.default;
|
|
20
9
|
}
|
|
21
10
|
});
|
|
22
|
-
var
|
|
23
|
-
var _spawnSync = /*#__PURE__*/ _interop_require_default(require("./spawnSync"));
|
|
24
|
-
var _spawnOptions = /*#__PURE__*/ _interop_require_default(require("./spawnOptions"));
|
|
11
|
+
var _spawnOptions = /*#__PURE__*/ _interop_require_default(require("./spawnOptions.cjs"));
|
|
25
12
|
function _interop_require_default(obj) {
|
|
26
13
|
return obj && obj.__esModule ? obj : {
|
|
27
14
|
default: obj
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-utils/src/index.ts"],"sourcesContent":["export type * from './types';\nexport { default as spawnOptions } from './spawnOptions';\n"],"names":["spawnOptions"],"mappings":";;;;+BACoBA;;;eAAAA,qBAAY;;;mEAAQ"}
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return startsWithFn;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function startsWithFn(string) {
|
|
3
12
|
var lower = string.toLowerCase();
|
|
4
13
|
var upper = string.toUpperCase();
|
|
5
14
|
return function startsCaseInsensitive(key) {
|
|
@@ -9,5 +18,5 @@ module.exports = function startsCaseInsensitiveFn(string) {
|
|
|
9
18
|
}
|
|
10
19
|
return true;
|
|
11
20
|
};
|
|
12
|
-
}
|
|
21
|
+
}
|
|
13
22
|
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-utils/src/lib/startsWithFn.ts"],"sourcesContent":["export default function startsWithFn(string) {\n const lower = string.toLowerCase();\n const upper = string.toUpperCase();\n return function startsCaseInsensitive(key) {\n if (key.length < string.length) return false;\n for (let i = 0; i < string.length; i++) {\n if (key[i] !== lower[i] && key[i] !== upper[i]) return false;\n }\n return true;\n };\n}\n"],"names":["startsWithFn","string","lower","toLowerCase","upper","toUpperCase","startsCaseInsensitive","key","length","i"],"mappings":";;;;+BAAA;;;eAAwBA;;;AAAT,SAASA,aAAaC,MAAM;IACzC,IAAMC,QAAQD,OAAOE,WAAW;IAChC,IAAMC,QAAQH,OAAOI,WAAW;IAChC,OAAO,SAASC,sBAAsBC,GAAG;QACvC,IAAIA,IAAIC,MAAM,GAAGP,OAAOO,MAAM,EAAE,OAAO;QACvC,IAAK,IAAIC,IAAI,GAAGA,IAAIR,OAAOO,MAAM,EAAEC,IAAK;YACtC,IAAIF,GAAG,CAACE,EAAE,KAAKP,KAAK,CAACO,EAAE,IAAIF,GAAG,CAACE,EAAE,KAAKL,KAAK,CAACK,EAAE,EAAE,OAAO;QACzD;QACA,OAAO;IACT;AACF"}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return spawnOptions;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
12
|
+
var _envpathkey = /*#__PURE__*/ _interop_require_default(require("env-path-key"));
|
|
13
|
+
var _pathstringprepend = /*#__PURE__*/ _interop_require_default(require("path-string-prepend"));
|
|
14
|
+
var _startsWithFn = /*#__PURE__*/ _interop_require_default(require("./lib/startsWithFn.cjs"));
|
|
2
15
|
function _define_property(obj, key, value) {
|
|
3
16
|
if (key in obj) {
|
|
4
17
|
Object.defineProperty(obj, key, {
|
|
@@ -12,6 +25,11 @@ function _define_property(obj, key, value) {
|
|
|
12
25
|
}
|
|
13
26
|
return obj;
|
|
14
27
|
}
|
|
28
|
+
function _interop_require_default(obj) {
|
|
29
|
+
return obj && obj.__esModule ? obj : {
|
|
30
|
+
default: obj
|
|
31
|
+
};
|
|
32
|
+
}
|
|
15
33
|
function _object_spread(target) {
|
|
16
34
|
for(var i = 1; i < arguments.length; i++){
|
|
17
35
|
var source = arguments[i] != null ? arguments[i] : {};
|
|
@@ -51,23 +69,20 @@ function _object_spread_props(target, source) {
|
|
|
51
69
|
}
|
|
52
70
|
return target;
|
|
53
71
|
}
|
|
54
|
-
var path = require('path');
|
|
55
|
-
var prepend = require('path-string-prepend');
|
|
56
|
-
var pathKey = require('env-path-key');
|
|
57
|
-
var startsCaseInsensitiveFn = require('./startsCaseInsensitiveFn');
|
|
58
72
|
var isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);
|
|
59
73
|
var NODE = isWindows ? 'node.exe' : 'node';
|
|
60
|
-
var startsNPM =
|
|
61
|
-
var startsPath =
|
|
62
|
-
|
|
63
|
-
var
|
|
74
|
+
var startsNPM = (0, _startsWithFn.default)('npm_');
|
|
75
|
+
var startsPath = (0, _startsWithFn.default)('path');
|
|
76
|
+
function spawnOptions(installPath) {
|
|
77
|
+
var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
|
|
78
|
+
var PATH_KEY = (0, _envpathkey.default)();
|
|
64
79
|
var processEnv = process.env;
|
|
65
80
|
var env = {};
|
|
66
|
-
env.npm_config_binroot = isWindows ? installPath :
|
|
67
|
-
env.npm_config_root = isWindows ? installPath :
|
|
68
|
-
env.npm_config_man = isWindows ? installPath :
|
|
81
|
+
env.npm_config_binroot = isWindows ? installPath : _path.default.join(installPath, 'bin');
|
|
82
|
+
env.npm_config_root = isWindows ? installPath : _path.default.join(installPath, 'lib');
|
|
83
|
+
env.npm_config_man = isWindows ? installPath : _path.default.join(installPath, 'man');
|
|
69
84
|
env.npm_config_prefix = installPath;
|
|
70
|
-
env.npm_node_execpath =
|
|
85
|
+
env.npm_node_execpath = _path.default.join(env.npm_config_binroot, NODE);
|
|
71
86
|
// copy the environment not for npm and skip case-insesitive additional paths
|
|
72
87
|
for(var key in processEnv){
|
|
73
88
|
// skip npm_ variants and non-matching path
|
|
@@ -79,10 +94,10 @@ module.exports = function spawnOptions(installPath, options) {
|
|
|
79
94
|
if (env.NODE !== undefined) env.NODE = env.npm_node_execpath;
|
|
80
95
|
if (env.NODE_EXE !== undefined) env.NODE_EXE = env.npm_node_execpath;
|
|
81
96
|
// put the path to node and npm at the front and remove nvs
|
|
82
|
-
env[PATH_KEY] =
|
|
97
|
+
env[PATH_KEY] = (0, _pathstringprepend.default)(env[PATH_KEY] || '', env.npm_config_binroot);
|
|
83
98
|
return _object_spread_props(_object_spread({}, options), {
|
|
84
99
|
cwd: process.cwd(),
|
|
85
100
|
env: env
|
|
86
101
|
});
|
|
87
|
-
}
|
|
102
|
+
}
|
|
88
103
|
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-utils/src/spawnOptions.ts"],"sourcesContent":["import path from 'path';\nimport pathKey from 'env-path-key';\nimport prepend from 'path-string-prepend';\nimport startsWithFn from './lib/startsWithFn';\n\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nconst NODE = isWindows ? 'node.exe' : 'node';\n\nconst startsNPM = startsWithFn('npm_');\nconst startsPath = startsWithFn('path');\n\nimport type { ProcessEnv, SpawnOptions } from './types';\n\nexport default function spawnOptions(installPath: string, options: object = {}): SpawnOptions {\n const PATH_KEY = pathKey();\n const processEnv = process.env;\n const env = {} as ProcessEnv;\n env.npm_config_binroot = isWindows ? installPath : path.join(installPath, 'bin');\n env.npm_config_root = isWindows ? installPath : path.join(installPath, 'lib');\n env.npm_config_man = isWindows ? installPath : path.join(installPath, 'man');\n env.npm_config_prefix = installPath;\n env.npm_node_execpath = path.join(env.npm_config_binroot, NODE);\n\n // copy the environment not for npm and skip case-insesitive additional paths\n for (const key in processEnv) {\n // skip npm_ variants and non-matching path\n if (key.length > 4 && startsNPM(key)) continue;\n if (key.length === 4 && startsPath(key) && key !== PATH_KEY) continue;\n env[key] = processEnv[key];\n }\n\n // override node\n if (env.NODE !== undefined) env.NODE = env.npm_node_execpath;\n if (env.NODE_EXE !== undefined) env.NODE_EXE = env.npm_node_execpath;\n\n // put the path to node and npm at the front and remove nvs\n env[PATH_KEY] = prepend(env[PATH_KEY] || '', env.npm_config_binroot);\n return { ...options, cwd: process.cwd(), env } as SpawnOptions;\n}\n"],"names":["spawnOptions","isWindows","process","platform","test","env","OSTYPE","NODE","startsNPM","startsWithFn","startsPath","installPath","options","PATH_KEY","pathKey","processEnv","npm_config_binroot","path","join","npm_config_root","npm_config_man","npm_config_prefix","npm_node_execpath","key","length","undefined","NODE_EXE","prepend","cwd"],"mappings":";;;;+BAaA;;;eAAwBA;;;2DAbP;iEACG;wEACA;mEACK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEzB,IAAMC,YAAYC,QAAQC,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,CAACF,QAAQG,GAAG,CAACC,MAAM;AAC3F,IAAMC,OAAON,YAAY,aAAa;AAEtC,IAAMO,YAAYC,IAAAA,qBAAY,EAAC;AAC/B,IAAMC,aAAaD,IAAAA,qBAAY,EAAC;AAIjB,SAAST,aAAaW,WAAmB;QAAEC,UAAAA,iEAAkB,CAAC;IAC3E,IAAMC,WAAWC,IAAAA,mBAAO;IACxB,IAAMC,aAAab,QAAQG,GAAG;IAC9B,IAAMA,MAAM,CAAC;IACbA,IAAIW,kBAAkB,GAAGf,YAAYU,cAAcM,aAAI,CAACC,IAAI,CAACP,aAAa;IAC1EN,IAAIc,eAAe,GAAGlB,YAAYU,cAAcM,aAAI,CAACC,IAAI,CAACP,aAAa;IACvEN,IAAIe,cAAc,GAAGnB,YAAYU,cAAcM,aAAI,CAACC,IAAI,CAACP,aAAa;IACtEN,IAAIgB,iBAAiB,GAAGV;IACxBN,IAAIiB,iBAAiB,GAAGL,aAAI,CAACC,IAAI,CAACb,IAAIW,kBAAkB,EAAET;IAE1D,6EAA6E;IAC7E,IAAK,IAAMgB,OAAOR,WAAY;QAC5B,2CAA2C;QAC3C,IAAIQ,IAAIC,MAAM,GAAG,KAAKhB,UAAUe,MAAM;QACtC,IAAIA,IAAIC,MAAM,KAAK,KAAKd,WAAWa,QAAQA,QAAQV,UAAU;QAC7DR,GAAG,CAACkB,IAAI,GAAGR,UAAU,CAACQ,IAAI;IAC5B;IAEA,gBAAgB;IAChB,IAAIlB,IAAIE,IAAI,KAAKkB,WAAWpB,IAAIE,IAAI,GAAGF,IAAIiB,iBAAiB;IAC5D,IAAIjB,IAAIqB,QAAQ,KAAKD,WAAWpB,IAAIqB,QAAQ,GAAGrB,IAAIiB,iBAAiB;IAEpE,2DAA2D;IAC3DjB,GAAG,CAACQ,SAAS,GAAGc,IAAAA,0BAAO,EAACtB,GAAG,CAACQ,SAAS,IAAI,IAAIR,IAAIW,kBAAkB;IACnE,OAAO,wCAAKJ;QAASgB,KAAK1B,QAAQ0B,GAAG;QAAIvB,KAAAA;;AAC3C"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
return crossSpawn.sync(command, args, spawnOptions(installPath, options));
|
|
6
|
-
};
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
7
5
|
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default as spawnOptions } from './spawnOptions.mjs';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-utils/src/index.ts"],"sourcesContent":["export type * from './types';\nexport { default as spawnOptions } from './spawnOptions';\n"],"names":["default","spawnOptions"],"mappings":"AACA,SAASA,WAAWC,YAAY,QAAQ,iBAAiB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export default function startsWithFn(string) {
|
|
2
|
+
const lower = string.toLowerCase();
|
|
3
|
+
const upper = string.toUpperCase();
|
|
4
|
+
return function startsCaseInsensitive(key) {
|
|
5
|
+
if (key.length < string.length) return false;
|
|
6
|
+
for(let i = 0; i < string.length; i++){
|
|
7
|
+
if (key[i] !== lower[i] && key[i] !== upper[i]) return false;
|
|
8
|
+
}
|
|
9
|
+
return true;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-utils/src/lib/startsWithFn.ts"],"sourcesContent":["export default function startsWithFn(string) {\n const lower = string.toLowerCase();\n const upper = string.toUpperCase();\n return function startsCaseInsensitive(key) {\n if (key.length < string.length) return false;\n for (let i = 0; i < string.length; i++) {\n if (key[i] !== lower[i] && key[i] !== upper[i]) return false;\n }\n return true;\n };\n}\n"],"names":["startsWithFn","string","lower","toLowerCase","upper","toUpperCase","startsCaseInsensitive","key","length","i"],"mappings":"AAAA,eAAe,SAASA,aAAaC,MAAM;IACzC,MAAMC,QAAQD,OAAOE,WAAW;IAChC,MAAMC,QAAQH,OAAOI,WAAW;IAChC,OAAO,SAASC,sBAAsBC,GAAG;QACvC,IAAIA,IAAIC,MAAM,GAAGP,OAAOO,MAAM,EAAE,OAAO;QACvC,IAAK,IAAIC,IAAI,GAAGA,IAAIR,OAAOO,MAAM,EAAEC,IAAK;YACtC,IAAIF,GAAG,CAACE,EAAE,KAAKP,KAAK,CAACO,EAAE,IAAIF,GAAG,CAACE,EAAE,KAAKL,KAAK,CAACK,EAAE,EAAE,OAAO;QACzD;QACA,OAAO;IACT;AACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import pathKey from 'env-path-key';
|
|
3
|
+
import prepend from 'path-string-prepend';
|
|
4
|
+
import startsWithFn from './lib/startsWithFn.mjs';
|
|
5
|
+
const isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);
|
|
6
|
+
const NODE = isWindows ? 'node.exe' : 'node';
|
|
7
|
+
const startsNPM = startsWithFn('npm_');
|
|
8
|
+
const startsPath = startsWithFn('path');
|
|
9
|
+
export default function spawnOptions(installPath, options = {}) {
|
|
10
|
+
const PATH_KEY = pathKey();
|
|
11
|
+
const processEnv = process.env;
|
|
12
|
+
const env = {};
|
|
13
|
+
env.npm_config_binroot = isWindows ? installPath : path.join(installPath, 'bin');
|
|
14
|
+
env.npm_config_root = isWindows ? installPath : path.join(installPath, 'lib');
|
|
15
|
+
env.npm_config_man = isWindows ? installPath : path.join(installPath, 'man');
|
|
16
|
+
env.npm_config_prefix = installPath;
|
|
17
|
+
env.npm_node_execpath = path.join(env.npm_config_binroot, NODE);
|
|
18
|
+
// copy the environment not for npm and skip case-insesitive additional paths
|
|
19
|
+
for(const key in processEnv){
|
|
20
|
+
// skip npm_ variants and non-matching path
|
|
21
|
+
if (key.length > 4 && startsNPM(key)) continue;
|
|
22
|
+
if (key.length === 4 && startsPath(key) && key !== PATH_KEY) continue;
|
|
23
|
+
env[key] = processEnv[key];
|
|
24
|
+
}
|
|
25
|
+
// override node
|
|
26
|
+
if (env.NODE !== undefined) env.NODE = env.npm_node_execpath;
|
|
27
|
+
if (env.NODE_EXE !== undefined) env.NODE_EXE = env.npm_node_execpath;
|
|
28
|
+
// put the path to node and npm at the front and remove nvs
|
|
29
|
+
env[PATH_KEY] = prepend(env[PATH_KEY] || '', env.npm_config_binroot);
|
|
30
|
+
return {
|
|
31
|
+
...options,
|
|
32
|
+
cwd: process.cwd(),
|
|
33
|
+
env
|
|
34
|
+
};
|
|
35
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-utils/src/spawnOptions.ts"],"sourcesContent":["import path from 'path';\nimport pathKey from 'env-path-key';\nimport prepend from 'path-string-prepend';\nimport startsWithFn from './lib/startsWithFn';\n\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nconst NODE = isWindows ? 'node.exe' : 'node';\n\nconst startsNPM = startsWithFn('npm_');\nconst startsPath = startsWithFn('path');\n\nimport type { ProcessEnv, SpawnOptions } from './types';\n\nexport default function spawnOptions(installPath: string, options: object = {}): SpawnOptions {\n const PATH_KEY = pathKey();\n const processEnv = process.env;\n const env = {} as ProcessEnv;\n env.npm_config_binroot = isWindows ? installPath : path.join(installPath, 'bin');\n env.npm_config_root = isWindows ? installPath : path.join(installPath, 'lib');\n env.npm_config_man = isWindows ? installPath : path.join(installPath, 'man');\n env.npm_config_prefix = installPath;\n env.npm_node_execpath = path.join(env.npm_config_binroot, NODE);\n\n // copy the environment not for npm and skip case-insesitive additional paths\n for (const key in processEnv) {\n // skip npm_ variants and non-matching path\n if (key.length > 4 && startsNPM(key)) continue;\n if (key.length === 4 && startsPath(key) && key !== PATH_KEY) continue;\n env[key] = processEnv[key];\n }\n\n // override node\n if (env.NODE !== undefined) env.NODE = env.npm_node_execpath;\n if (env.NODE_EXE !== undefined) env.NODE_EXE = env.npm_node_execpath;\n\n // put the path to node and npm at the front and remove nvs\n env[PATH_KEY] = prepend(env[PATH_KEY] || '', env.npm_config_binroot);\n return { ...options, cwd: process.cwd(), env } as SpawnOptions;\n}\n"],"names":["path","pathKey","prepend","startsWithFn","isWindows","process","platform","test","env","OSTYPE","NODE","startsNPM","startsPath","spawnOptions","installPath","options","PATH_KEY","processEnv","npm_config_binroot","join","npm_config_root","npm_config_man","npm_config_prefix","npm_node_execpath","key","length","undefined","NODE_EXE","cwd"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,aAAa,eAAe;AACnC,OAAOC,aAAa,sBAAsB;AAC1C,OAAOC,kBAAkB,qBAAqB;AAE9C,MAAMC,YAAYC,QAAQC,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,CAACF,QAAQG,GAAG,CAACC,MAAM;AAC3F,MAAMC,OAAON,YAAY,aAAa;AAEtC,MAAMO,YAAYR,aAAa;AAC/B,MAAMS,aAAaT,aAAa;AAIhC,eAAe,SAASU,aAAaC,WAAmB,EAAEC,UAAkB,CAAC,CAAC;IAC5E,MAAMC,WAAWf;IACjB,MAAMgB,aAAaZ,QAAQG,GAAG;IAC9B,MAAMA,MAAM,CAAC;IACbA,IAAIU,kBAAkB,GAAGd,YAAYU,cAAcd,KAAKmB,IAAI,CAACL,aAAa;IAC1EN,IAAIY,eAAe,GAAGhB,YAAYU,cAAcd,KAAKmB,IAAI,CAACL,aAAa;IACvEN,IAAIa,cAAc,GAAGjB,YAAYU,cAAcd,KAAKmB,IAAI,CAACL,aAAa;IACtEN,IAAIc,iBAAiB,GAAGR;IACxBN,IAAIe,iBAAiB,GAAGvB,KAAKmB,IAAI,CAACX,IAAIU,kBAAkB,EAAER;IAE1D,6EAA6E;IAC7E,IAAK,MAAMc,OAAOP,WAAY;QAC5B,2CAA2C;QAC3C,IAAIO,IAAIC,MAAM,GAAG,KAAKd,UAAUa,MAAM;QACtC,IAAIA,IAAIC,MAAM,KAAK,KAAKb,WAAWY,QAAQA,QAAQR,UAAU;QAC7DR,GAAG,CAACgB,IAAI,GAAGP,UAAU,CAACO,IAAI;IAC5B;IAEA,gBAAgB;IAChB,IAAIhB,IAAIE,IAAI,KAAKgB,WAAWlB,IAAIE,IAAI,GAAGF,IAAIe,iBAAiB;IAC5D,IAAIf,IAAImB,QAAQ,KAAKD,WAAWlB,IAAImB,QAAQ,GAAGnB,IAAIe,iBAAiB;IAEpE,2DAA2D;IAC3Df,GAAG,CAACQ,SAAS,GAAGd,QAAQM,GAAG,CAACQ,SAAS,IAAI,IAAIR,IAAIU,kBAAkB;IACnE,OAAO;QAAE,GAAGH,OAAO;QAAEa,KAAKvB,QAAQuB,GAAG;QAAIpB;IAAI;AAC/C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-utils/src/types.ts"],"sourcesContent":["import type cp from 'child_process';\n\nexport type SpawnOptions = cp.SpawnOptions;\nexport interface ProcessEnv extends NodeJS.ProcessEnv {\n npm_config_binroot: string;\n npm_config_root: string;\n npm_config_man: string;\n npm_config_prefix: string;\n npm_node_execpath: string;\n NODE: string;\n NODE_EXE?: string;\n}\n"],"names":[],"mappings":"AAGA,WAQC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function startsWithFn(string: any): (key: any) => boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
1
|
+
import type { SpawnOptions } from './types';
|
|
2
|
+
export default function spawnOptions(installPath: string, options?: object): SpawnOptions;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type cp from 'child_process';
|
|
2
|
+
export type SpawnOptions = cp.SpawnOptions;
|
|
3
|
+
export interface ProcessEnv extends NodeJS.ProcessEnv {
|
|
4
|
+
npm_config_binroot: string;
|
|
5
|
+
npm_config_root: string;
|
|
6
|
+
npm_config_man: string;
|
|
7
|
+
npm_config_prefix: string;
|
|
8
|
+
npm_node_execpath: string;
|
|
9
|
+
NODE: string;
|
|
10
|
+
NODE_EXE?: string;
|
|
11
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-version-utils",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Utilities for running commands on a specific version of node by installed path",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"node",
|
|
@@ -19,7 +19,17 @@
|
|
|
19
19
|
"url": "git@github.com:kmalakoff/node-version-utils.git"
|
|
20
20
|
},
|
|
21
21
|
"license": "MIT",
|
|
22
|
-
"
|
|
22
|
+
"type": "module",
|
|
23
|
+
"exports": {
|
|
24
|
+
".": {
|
|
25
|
+
"import": "./dist/esm/index.mjs",
|
|
26
|
+
"require": "./dist/cjs/index.cjs",
|
|
27
|
+
"types": "./dist/types/index.d.ts"
|
|
28
|
+
},
|
|
29
|
+
"./*": "./*"
|
|
30
|
+
},
|
|
31
|
+
"main": "dist/cjs/index.cjs",
|
|
32
|
+
"module": "dist/esm/index.mjs",
|
|
23
33
|
"types": "dist/types/index.d.ts",
|
|
24
34
|
"files": [
|
|
25
35
|
"dist"
|
|
@@ -33,7 +43,7 @@
|
|
|
33
43
|
"version": "tsds version"
|
|
34
44
|
},
|
|
35
45
|
"dependencies": {
|
|
36
|
-
"cross-spawn-cb": "^1.5.
|
|
46
|
+
"cross-spawn-cb": "^1.5.8",
|
|
37
47
|
"env-path-key": "^1.0.0",
|
|
38
48
|
"path-string-prepend": "^1.0.0"
|
|
39
49
|
},
|
|
@@ -44,18 +54,14 @@
|
|
|
44
54
|
"cr": "^0.1.0",
|
|
45
55
|
"depcheck": "^1.4.7",
|
|
46
56
|
"is-version": "^0.2.1",
|
|
47
|
-
"node-install-release": "^1.
|
|
57
|
+
"node-install-release": "^1.6.3",
|
|
48
58
|
"node-resolve-versions": "^1.0.5",
|
|
49
|
-
"pinkie-promise": "^2.0.1",
|
|
50
59
|
"rimraf2": "^2.8.2"
|
|
51
60
|
},
|
|
52
61
|
"engines": {
|
|
53
62
|
"node": ">=0.8"
|
|
54
63
|
},
|
|
55
64
|
"tsds": {
|
|
56
|
-
"source": "src/index.
|
|
57
|
-
"targets": [
|
|
58
|
-
"cjs"
|
|
59
|
-
]
|
|
65
|
+
"source": "src/index.ts"
|
|
60
66
|
}
|
|
61
67
|
}
|
package/dist/cjs/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-utils/src/index.mjs"],"sourcesContent":["export { default as spawn } from './spawn';\nexport { default as spawnSync } from './spawnSync';\nexport { default as spawnOptions } from './spawnOptions';\n"],"names":["spawn","spawnOptions","spawnSync"],"mappings":";;;;;;;;;;;IAAoBA,KAAK;eAALA,cAAK;;IAELC,YAAY;eAAZA,qBAAY;;IADZC,SAAS;eAATA,kBAAS;;;4DADI;gEACI;mEACG"}
|
package/dist/cjs/package.json
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"type":"commonjs"}
|
package/dist/cjs/spawn.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var crossSpawn = require('cross-spawn-cb');
|
|
3
|
-
var spawnOptions = require('./spawnOptions');
|
|
4
|
-
module.exports = function spawn(installPath, command, args, options, callback) {
|
|
5
|
-
if (typeof options === 'function') {
|
|
6
|
-
callback = options;
|
|
7
|
-
options = {};
|
|
8
|
-
}
|
|
9
|
-
if (typeof callback === 'function') {
|
|
10
|
-
return crossSpawn(command, args, spawnOptions(installPath, options || {}), callback);
|
|
11
|
-
}
|
|
12
|
-
return new Promise(function(resolve, reject) {
|
|
13
|
-
spawn(installPath, command, args, options, function spawnCallback(err, res) {
|
|
14
|
-
err ? reject(err) : resolve(res);
|
|
15
|
-
});
|
|
16
|
-
});
|
|
17
|
-
};
|
|
18
|
-
/* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
|
package/dist/cjs/spawn.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-utils/src/spawn.js"],"sourcesContent":["const crossSpawn = require('cross-spawn-cb');\nconst spawnOptions = require('./spawnOptions');\n\nmodule.exports = function spawn(installPath, command, args, options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (typeof callback === 'function') {\n return crossSpawn(command, args, spawnOptions(installPath, options || {}), callback);\n }\n return new Promise((resolve, reject) => {\n spawn(installPath, command, args, options, function spawnCallback(err, res) {\n err ? reject(err) : resolve(res);\n });\n });\n};\n"],"names":["crossSpawn","require","spawnOptions","module","exports","spawn","installPath","command","args","options","callback","Promise","resolve","reject","spawnCallback","err","res"],"mappings":";AAAA,IAAMA,aAAaC,QAAQ;AAC3B,IAAMC,eAAeD,QAAQ;AAE7BE,OAAOC,OAAO,GAAG,SAASC,MAAMC,WAAW,EAAEC,OAAO,EAAEC,IAAI,EAAEC,OAAO,EAAEC,QAAQ;IAC3E,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IAEA,IAAI,OAAOC,aAAa,YAAY;QAClC,OAAOV,WAAWO,SAASC,MAAMN,aAAaI,aAAaG,WAAW,CAAC,IAAIC;IAC7E;IACA,OAAO,IAAIC,QAAQ,SAACC,SAASC;QAC3BR,MAAMC,aAAaC,SAASC,MAAMC,SAAS,SAASK,cAAcC,GAAG,EAAEC,GAAG;YACxED,MAAMF,OAAOE,OAAOH,QAAQI;QAC9B;IACF;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-utils/src/spawnOptions.js"],"sourcesContent":["const path = require('path');\nconst prepend = require('path-string-prepend');\nconst pathKey = require('env-path-key');\nconst startsCaseInsensitiveFn = require('./startsCaseInsensitiveFn');\n\nconst isWindows = process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE);\nconst NODE = isWindows ? 'node.exe' : 'node';\n\nconst startsNPM = startsCaseInsensitiveFn('npm_');\nconst startsPath = startsCaseInsensitiveFn('path');\n\nmodule.exports = function spawnOptions(installPath, options) {\n const PATH_KEY = pathKey();\n const processEnv = process.env;\n const env = {};\n env.npm_config_binroot = isWindows ? installPath : path.join(installPath, 'bin');\n env.npm_config_root = isWindows ? installPath : path.join(installPath, 'lib');\n env.npm_config_man = isWindows ? installPath : path.join(installPath, 'man');\n env.npm_config_prefix = installPath;\n env.npm_node_execpath = path.join(env.npm_config_binroot, NODE);\n\n // copy the environment not for npm and skip case-insesitive additional paths\n for (const key in processEnv) {\n // skip npm_ variants and non-matching path\n if (key.length > 4 && startsNPM(key)) continue;\n if (key.length === 4 && startsPath(key) && key !== PATH_KEY) continue;\n env[key] = processEnv[key];\n }\n\n // override node\n if (env.NODE !== undefined) env.NODE = env.npm_node_execpath;\n if (env.NODE_EXE !== undefined) env.NODE_EXE = env.npm_node_execpath;\n\n // put the path to node and npm at the front and remove nvs\n env[PATH_KEY] = prepend(env[PATH_KEY] || '', env.npm_config_binroot);\n return { ...options, cwd: process.cwd(), env };\n};\n"],"names":["path","require","prepend","pathKey","startsCaseInsensitiveFn","isWindows","process","platform","test","env","OSTYPE","NODE","startsNPM","startsPath","module","exports","spawnOptions","installPath","options","PATH_KEY","processEnv","npm_config_binroot","join","npm_config_root","npm_config_man","npm_config_prefix","npm_node_execpath","key","length","undefined","NODE_EXE","cwd"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAMA,OAAOC,QAAQ;AACrB,IAAMC,UAAUD,QAAQ;AACxB,IAAME,UAAUF,QAAQ;AACxB,IAAMG,0BAA0BH,QAAQ;AAExC,IAAMI,YAAYC,QAAQC,QAAQ,KAAK,WAAW,kBAAkBC,IAAI,CAACF,QAAQG,GAAG,CAACC,MAAM;AAC3F,IAAMC,OAAON,YAAY,aAAa;AAEtC,IAAMO,YAAYR,wBAAwB;AAC1C,IAAMS,aAAaT,wBAAwB;AAE3CU,OAAOC,OAAO,GAAG,SAASC,aAAaC,WAAW,EAAEC,OAAO;IACzD,IAAMC,WAAWhB;IACjB,IAAMiB,aAAad,QAAQG,GAAG;IAC9B,IAAMA,MAAM,CAAC;IACbA,IAAIY,kBAAkB,GAAGhB,YAAYY,cAAcjB,KAAKsB,IAAI,CAACL,aAAa;IAC1ER,IAAIc,eAAe,GAAGlB,YAAYY,cAAcjB,KAAKsB,IAAI,CAACL,aAAa;IACvER,IAAIe,cAAc,GAAGnB,YAAYY,cAAcjB,KAAKsB,IAAI,CAACL,aAAa;IACtER,IAAIgB,iBAAiB,GAAGR;IACxBR,IAAIiB,iBAAiB,GAAG1B,KAAKsB,IAAI,CAACb,IAAIY,kBAAkB,EAAEV;IAE1D,6EAA6E;IAC7E,IAAK,IAAMgB,OAAOP,WAAY;QAC5B,2CAA2C;QAC3C,IAAIO,IAAIC,MAAM,GAAG,KAAKhB,UAAUe,MAAM;QACtC,IAAIA,IAAIC,MAAM,KAAK,KAAKf,WAAWc,QAAQA,QAAQR,UAAU;QAC7DV,GAAG,CAACkB,IAAI,GAAGP,UAAU,CAACO,IAAI;IAC5B;IAEA,gBAAgB;IAChB,IAAIlB,IAAIE,IAAI,KAAKkB,WAAWpB,IAAIE,IAAI,GAAGF,IAAIiB,iBAAiB;IAC5D,IAAIjB,IAAIqB,QAAQ,KAAKD,WAAWpB,IAAIqB,QAAQ,GAAGrB,IAAIiB,iBAAiB;IAEpE,2DAA2D;IAC3DjB,GAAG,CAACU,SAAS,GAAGjB,QAAQO,GAAG,CAACU,SAAS,IAAI,IAAIV,IAAIY,kBAAkB;IACnE,OAAO,wCAAKH;QAASa,KAAKzB,QAAQyB,GAAG;QAAItB,KAAAA;;AAC3C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-utils/src/spawnSync.js"],"sourcesContent":["const crossSpawn = require('cross-spawn-cb');\nconst spawnOptions = require('./spawnOptions');\n\nmodule.exports = function spawnSync(installPath, command, args, options) {\n return crossSpawn.sync(command, args, spawnOptions(installPath, options));\n};\n"],"names":["crossSpawn","require","spawnOptions","module","exports","spawnSync","installPath","command","args","options","sync"],"mappings":";AAAA,IAAMA,aAAaC,QAAQ;AAC3B,IAAMC,eAAeD,QAAQ;AAE7BE,OAAOC,OAAO,GAAG,SAASC,UAAUC,WAAW,EAAEC,OAAO,EAAEC,IAAI,EAAEC,OAAO;IACrE,OAAOT,WAAWU,IAAI,CAACH,SAASC,MAAMN,aAAaI,aAAaG;AAClE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-utils/src/startsCaseInsensitiveFn.js"],"sourcesContent":["module.exports = function startsCaseInsensitiveFn(string) {\n const lower = string.toLowerCase();\n const upper = string.toUpperCase();\n return function startsCaseInsensitive(key) {\n if (key.length < string.length) return false;\n for (let i = 0; i < string.length; i++) {\n if (key[i] !== lower[i] && key[i] !== upper[i]) return false;\n }\n return true;\n };\n};\n"],"names":["module","exports","startsCaseInsensitiveFn","string","lower","toLowerCase","upper","toUpperCase","startsCaseInsensitive","key","length","i"],"mappings":";AAAAA,OAAOC,OAAO,GAAG,SAASC,wBAAwBC,MAAM;IACtD,IAAMC,QAAQD,OAAOE,WAAW;IAChC,IAAMC,QAAQH,OAAOI,WAAW;IAChC,OAAO,SAASC,sBAAsBC,GAAG;QACvC,IAAIA,IAAIC,MAAM,GAAGP,OAAOO,MAAM,EAAE,OAAO;QACvC,IAAK,IAAIC,IAAI,GAAGA,IAAIR,OAAOO,MAAM,EAAEC,IAAK;YACtC,IAAIF,GAAG,CAACE,EAAE,KAAKP,KAAK,CAACO,EAAE,IAAIF,GAAG,CAACE,EAAE,KAAKL,KAAK,CAACK,EAAE,EAAE,OAAO;QACzD;QACA,OAAO;IACT;AACF"}
|
package/dist/types/index.d.mts
DELETED
package/dist/types/spawn.d.ts
DELETED