node-version-install 1.5.0 → 1.5.1
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/workers/install.js +12 -12
- package/dist/cjs/workers/install.js.map +1 -1
- package/dist/cjs/workers/installSync.js +11 -6
- package/dist/cjs/workers/installSync.js.map +1 -1
- package/dist/esm/workers/install.js +10 -8
- package/dist/esm/workers/install.js.map +1 -1
- package/dist/esm/workers/installSync.js +11 -6
- package/dist/esm/workers/installSync.js.map +1 -1
- package/package.json +6 -6
|
@@ -8,12 +8,10 @@ Object.defineProperty(exports, "default", {
|
|
|
8
8
|
return installWorker;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
-
var
|
|
12
|
-
var _nodeinstallrelease = require("node-install-release");
|
|
11
|
+
var _module = /*#__PURE__*/ _interop_require_default(require("module"));
|
|
13
12
|
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
14
13
|
var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
|
|
15
14
|
var _compatts = require("../compat.js");
|
|
16
|
-
var _module = /*#__PURE__*/ _interop_require_default(require("module"));
|
|
17
15
|
function _define_property(obj, key, value) {
|
|
18
16
|
if (key in obj) {
|
|
19
17
|
Object.defineProperty(obj, key, {
|
|
@@ -73,12 +71,15 @@ function _object_spread_props(target, source) {
|
|
|
73
71
|
}
|
|
74
72
|
var DEFAULT_STORAGE_PATH = _path.default.join((0, _compatts.homedir)(), '.nvu');
|
|
75
73
|
var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
|
|
74
|
+
var resolveVersionsFn = null; // break dependencies
|
|
75
|
+
var installReleaseFn = null; // break dependencies
|
|
76
76
|
function installWorker(versionExpression, options, callback) {
|
|
77
77
|
var storagePath = options.storagePath || DEFAULT_STORAGE_PATH;
|
|
78
78
|
options = _object_spread({
|
|
79
79
|
storagePath: storagePath
|
|
80
80
|
}, options);
|
|
81
|
-
_require('node-resolve-versions')
|
|
81
|
+
if (!resolveVersionsFn) resolveVersionsFn = _require('node-resolve-versions');
|
|
82
|
+
resolveVersionsFn(versionExpression, options, function(err, versions) {
|
|
82
83
|
if (err) {
|
|
83
84
|
callback(err);
|
|
84
85
|
return;
|
|
@@ -91,18 +92,17 @@ function installWorker(versionExpression, options, callback) {
|
|
|
91
92
|
var queue = new _queuecb.default(options.concurrency || 1);
|
|
92
93
|
versions.forEach(function(version) {
|
|
93
94
|
queue.defer(function(cb) {
|
|
94
|
-
var
|
|
95
|
+
var versionOptions = _object_spread({
|
|
96
|
+
name: version
|
|
97
|
+
}, options);
|
|
98
|
+
if (!installReleaseFn) installReleaseFn = _require('node-install-release');
|
|
99
|
+
var result = installReleaseFn.createResult(versionOptions, version);
|
|
100
|
+
// Always call node-install-release - it will check what's missing (node, npm, or both)
|
|
101
|
+
installReleaseFn(version, versionOptions, function(error) {
|
|
95
102
|
results.push(_object_spread_props(_object_spread({}, result), {
|
|
96
103
|
error: error
|
|
97
104
|
}));
|
|
98
105
|
cb();
|
|
99
|
-
};
|
|
100
|
-
var versionOptions = _object_spread({
|
|
101
|
-
name: version
|
|
102
|
-
}, options);
|
|
103
|
-
var result = (0, _nodeinstallrelease.createResult)(versionOptions, version);
|
|
104
|
-
_fs.default.stat(result.execPath, function(_, stat) {
|
|
105
|
-
return stat ? done() : _require('node-install-release')(version, versionOptions, done);
|
|
106
106
|
});
|
|
107
107
|
});
|
|
108
108
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/workers/install.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/workers/install.ts"],"sourcesContent":["import Module from 'module';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport { homedir } from '../compat.ts';\nimport type { InstallCallback, InstallOptions, InstallResult } from '../types.ts';\n\nconst DEFAULT_STORAGE_PATH = path.join(homedir(), '.nvu');\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nlet resolveVersionsFn = null; // break dependencies\nlet installReleaseFn = null; // break dependencies\nexport default function installWorker(versionExpression: string, options: InstallOptions, callback: InstallCallback): void {\n const storagePath = options.storagePath || DEFAULT_STORAGE_PATH;\n options = { storagePath, ...options };\n\n if (!resolveVersionsFn) resolveVersionsFn = _require('node-resolve-versions');\n resolveVersionsFn(versionExpression, options, (err, versions): undefined => {\n if (err) {\n callback(err);\n return;\n }\n if (!versions.length) {\n callback(new Error(`No versions found from expression: ${versionExpression}`));\n return;\n }\n\n const results: InstallResult[] = [];\n const queue = new Queue(options.concurrency || 1);\n versions.forEach((version) => {\n queue.defer((cb) => {\n const versionOptions = { name: version, ...options };\n if (!installReleaseFn) installReleaseFn = _require('node-install-release');\n const result = installReleaseFn.createResult(versionOptions as InstallOptions, version as string);\n\n // Always call node-install-release - it will check what's missing (node, npm, or both)\n installReleaseFn(version, versionOptions, (error?) => {\n results.push({ ...result, error });\n cb();\n });\n });\n });\n queue.await((err) => (err ? callback(err) : callback(null, results)));\n });\n}\n"],"names":["installWorker","DEFAULT_STORAGE_PATH","path","join","homedir","_require","require","Module","createRequire","resolveVersionsFn","installReleaseFn","versionExpression","options","callback","storagePath","err","versions","length","Error","results","queue","Queue","concurrency","forEach","version","defer","cb","versionOptions","name","result","createResult","error","push","await"],"mappings":";;;;+BAWA;;;eAAwBA;;;6DAXL;2DACF;8DACC;wBACM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGxB,IAAMC,uBAAuBC,aAAI,CAACC,IAAI,CAACC,IAAAA,iBAAO,KAAI;AAClD,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAE1F,IAAIG,oBAAoB,MAAM,qBAAqB;AACnD,IAAIC,mBAAmB,MAAM,qBAAqB;AACnC,SAASV,cAAcW,iBAAyB,EAAEC,OAAuB,EAAEC,QAAyB;IACjH,IAAMC,cAAcF,QAAQE,WAAW,IAAIb;IAC3CW,UAAU;QAAEE,aAAAA;OAAgBF;IAE5B,IAAI,CAACH,mBAAmBA,oBAAoBJ,SAAS;IACrDI,kBAAkBE,mBAAmBC,SAAS,SAACG,KAAKC;QAClD,IAAID,KAAK;YACPF,SAASE;YACT;QACF;QACA,IAAI,CAACC,SAASC,MAAM,EAAE;YACpBJ,SAAS,IAAIK,MAAM,AAAC,sCAAuD,OAAlBP;YACzD;QACF;QAEA,IAAMQ,UAA2B,EAAE;QACnC,IAAMC,QAAQ,IAAIC,gBAAK,CAACT,QAAQU,WAAW,IAAI;QAC/CN,SAASO,OAAO,CAAC,SAACC;YAChBJ,MAAMK,KAAK,CAAC,SAACC;gBACX,IAAMC,iBAAiB;oBAAEC,MAAMJ;mBAAYZ;gBAC3C,IAAI,CAACF,kBAAkBA,mBAAmBL,SAAS;gBACnD,IAAMwB,SAASnB,iBAAiBoB,YAAY,CAACH,gBAAkCH;gBAE/E,uFAAuF;gBACvFd,iBAAiBc,SAASG,gBAAgB,SAACI;oBACzCZ,QAAQa,IAAI,CAAC,wCAAKH;wBAAQE,OAAAA;;oBAC1BL;gBACF;YACF;QACF;QACAN,MAAMa,KAAK,CAAC,SAAClB;mBAASA,MAAMF,SAASE,OAAOF,SAAS,MAAMM;;IAC7D;AACF"}
|
|
@@ -9,7 +9,6 @@ Object.defineProperty(exports, "default", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
12
|
-
var _nodeinstallrelease = require("node-install-release");
|
|
13
12
|
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
14
13
|
var _url = /*#__PURE__*/ _interop_require_default(require("url"));
|
|
15
14
|
var _compatts = require("../compat.js");
|
|
@@ -51,11 +50,15 @@ var DEFAULT_STORAGE_PATH = _path.default.join((0, _compatts.homedir)(), '.nvu');
|
|
|
51
50
|
var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
|
|
52
51
|
var SLEEP_MS = 200;
|
|
53
52
|
var __dirname = _path.default.dirname(typeof __filename === 'undefined' ? _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString()) : __filename);
|
|
54
|
-
|
|
55
|
-
var workerPath = _path.default.join(
|
|
53
|
+
// Worker MUST always load from dist/cjs/ for old Node compatibility
|
|
54
|
+
var workerPath = _path.default.join(__dirname, '..', '..', 'cjs', 'workers', 'install.js');
|
|
55
|
+
var functionExec = null; // break dependencies
|
|
56
|
+
var resolveVersionsFn = null; // break dependencies
|
|
57
|
+
var createResultFn = null; // break dependencies
|
|
56
58
|
function installSyncWorker(versionExpression, options) {
|
|
57
59
|
try {
|
|
58
|
-
|
|
60
|
+
if (!resolveVersionsFn) resolveVersionsFn = _require('node-resolve-versions');
|
|
61
|
+
var versions = resolveVersionsFn.sync(versionExpression, options);
|
|
59
62
|
if (!versions.length) throw new Error("No versions found from expression: ".concat(versionExpression));
|
|
60
63
|
// shortcut to not spawn a worker if it's a simple case
|
|
61
64
|
if (versions.length === 1) {
|
|
@@ -64,7 +67,8 @@ function installSyncWorker(versionExpression, options) {
|
|
|
64
67
|
options = _object_spread({
|
|
65
68
|
storagePath: storagePath
|
|
66
69
|
}, options);
|
|
67
|
-
|
|
70
|
+
if (!createResultFn) createResultFn = _require('node-install-release').createResult;
|
|
71
|
+
var result = createResultFn(_object_spread({
|
|
68
72
|
name: version
|
|
69
73
|
}, options), version);
|
|
70
74
|
_fs.default.statSync(result.execPath);
|
|
@@ -73,7 +77,8 @@ function installSyncWorker(versionExpression, options) {
|
|
|
73
77
|
];
|
|
74
78
|
}
|
|
75
79
|
} catch (_) {}
|
|
76
|
-
|
|
80
|
+
if (!functionExec) functionExec = _require('function-exec-sync');
|
|
81
|
+
return functionExec({
|
|
77
82
|
cwd: process.cwd(),
|
|
78
83
|
sleep: SLEEP_MS,
|
|
79
84
|
callbacks: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/workers/installSync.ts"],"sourcesContent":["import fs from 'fs';\nimport
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/workers/installSync.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport url from 'url';\nimport { homedir } from '../compat.ts';\n\nconst DEFAULT_STORAGE_PATH = path.join(homedir(), '.nvu');\n\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nconst SLEEP_MS = 200;\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\n\nimport type { InstallOptions, InstallResult } from '../types.ts';\n\n// Worker MUST always load from dist/cjs/ for old Node compatibility\nconst workerPath = path.join(__dirname, '..', '..', 'cjs', 'workers', 'install.js');\n\nlet functionExec = null; // break dependencies\nlet resolveVersionsFn = null; // break dependencies\nlet createResultFn = null; // break dependencies\nexport default function installSyncWorker(versionExpression: string, options: InstallOptions): InstallResult[] {\n try {\n if (!resolveVersionsFn) resolveVersionsFn = _require('node-resolve-versions');\n const versions = resolveVersionsFn.sync(versionExpression, options);\n if (!versions.length) throw new Error(`No versions found from expression: ${versionExpression}`);\n\n // shortcut to not spawn a worker if it's a simple case\n if (versions.length === 1) {\n const version = versions[0];\n const storagePath = options.storagePath || DEFAULT_STORAGE_PATH;\n options = { storagePath, ...options };\n\n if (!createResultFn) createResultFn = _require('node-install-release').createResult;\n const result = createResultFn({ name: version, ...options }, version);\n\n fs.statSync(result.execPath);\n return [result];\n }\n } catch (_) {}\n\n if (!functionExec) functionExec = _require('function-exec-sync');\n return functionExec({ cwd: process.cwd(), sleep: SLEEP_MS, callbacks: true }, workerPath, versionExpression, options);\n}\n"],"names":["installSyncWorker","DEFAULT_STORAGE_PATH","path","join","homedir","_require","require","Module","createRequire","SLEEP_MS","__dirname","dirname","__filename","url","fileURLToPath","workerPath","functionExec","resolveVersionsFn","createResultFn","versionExpression","options","versions","sync","length","Error","version","storagePath","createResult","result","name","fs","statSync","execPath","_","cwd","process","sleep","callbacks"],"mappings":";;;;+BAsBA;;;eAAwBA;;;yDAtBT;2DACE;0DACD;wBACQ;6DAIL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAFnB,IAAMC,uBAAuBC,aAAI,CAACC,IAAI,CAACC,IAAAA,iBAAO,KAAI;AAIlD,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAE1F,IAAMG,WAAW;AACjB,IAAMC,YAAYR,aAAI,CAACS,OAAO,CAAC,OAAOC,eAAe,cAAcC,YAAG,CAACC,aAAa,CAAC,uDAAmBF;AAIxG,oEAAoE;AACpE,IAAMG,aAAab,aAAI,CAACC,IAAI,CAACO,WAAW,MAAM,MAAM,OAAO,WAAW;AAEtE,IAAIM,eAAe,MAAM,qBAAqB;AAC9C,IAAIC,oBAAoB,MAAM,qBAAqB;AACnD,IAAIC,iBAAiB,MAAM,qBAAqB;AACjC,SAASlB,kBAAkBmB,iBAAyB,EAAEC,OAAuB;IAC1F,IAAI;QACF,IAAI,CAACH,mBAAmBA,oBAAoBZ,SAAS;QACrD,IAAMgB,WAAWJ,kBAAkBK,IAAI,CAACH,mBAAmBC;QAC3D,IAAI,CAACC,SAASE,MAAM,EAAE,MAAM,IAAIC,MAAM,AAAC,sCAAuD,OAAlBL;QAE5E,uDAAuD;QACvD,IAAIE,SAASE,MAAM,KAAK,GAAG;YACzB,IAAME,UAAUJ,QAAQ,CAAC,EAAE;YAC3B,IAAMK,cAAcN,QAAQM,WAAW,IAAIzB;YAC3CmB,UAAU;gBAAEM,aAAAA;eAAgBN;YAE5B,IAAI,CAACF,gBAAgBA,iBAAiBb,SAAS,wBAAwBsB,YAAY;YACnF,IAAMC,SAASV,eAAe;gBAAEW,MAAMJ;eAAYL,UAAWK;YAE7DK,WAAE,CAACC,QAAQ,CAACH,OAAOI,QAAQ;YAC3B,OAAO;gBAACJ;aAAO;QACjB;IACF,EAAE,OAAOK,GAAG,CAAC;IAEb,IAAI,CAACjB,cAAcA,eAAeX,SAAS;IAC3C,OAAOW,aAAa;QAAEkB,KAAKC,QAAQD,GAAG;QAAIE,OAAO3B;QAAU4B,WAAW;IAAK,GAAGtB,YAAYI,mBAAmBC;AAC/G"}
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { createResult } from 'node-install-release';
|
|
1
|
+
import Module from 'module';
|
|
3
2
|
import path from 'path';
|
|
4
3
|
import Queue from 'queue-cb';
|
|
5
4
|
import { homedir } from '../compat.js';
|
|
6
5
|
const DEFAULT_STORAGE_PATH = path.join(homedir(), '.nvu');
|
|
7
|
-
import Module from 'module';
|
|
8
6
|
const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
|
|
7
|
+
let resolveVersionsFn = null; // break dependencies
|
|
8
|
+
let installReleaseFn = null; // break dependencies
|
|
9
9
|
export default function installWorker(versionExpression, options, callback) {
|
|
10
10
|
const storagePath = options.storagePath || DEFAULT_STORAGE_PATH;
|
|
11
11
|
options = {
|
|
12
12
|
storagePath,
|
|
13
13
|
...options
|
|
14
14
|
};
|
|
15
|
-
_require('node-resolve-versions')
|
|
15
|
+
if (!resolveVersionsFn) resolveVersionsFn = _require('node-resolve-versions');
|
|
16
|
+
resolveVersionsFn(versionExpression, options, (err, versions)=>{
|
|
16
17
|
if (err) {
|
|
17
18
|
callback(err);
|
|
18
19
|
return;
|
|
@@ -29,15 +30,16 @@ export default function installWorker(versionExpression, options, callback) {
|
|
|
29
30
|
name: version,
|
|
30
31
|
...options
|
|
31
32
|
};
|
|
32
|
-
|
|
33
|
-
|
|
33
|
+
if (!installReleaseFn) installReleaseFn = _require('node-install-release');
|
|
34
|
+
const result = installReleaseFn.createResult(versionOptions, version);
|
|
35
|
+
// Always call node-install-release - it will check what's missing (node, npm, or both)
|
|
36
|
+
installReleaseFn(version, versionOptions, (error)=>{
|
|
34
37
|
results.push({
|
|
35
38
|
...result,
|
|
36
39
|
error
|
|
37
40
|
});
|
|
38
41
|
cb();
|
|
39
|
-
}
|
|
40
|
-
fs.stat(result.execPath, (_, stat)=>stat ? done() : _require('node-install-release')(version, versionOptions, done));
|
|
42
|
+
});
|
|
41
43
|
});
|
|
42
44
|
});
|
|
43
45
|
queue.await((err)=>err ? callback(err) : callback(null, results));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/workers/install.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/workers/install.ts"],"sourcesContent":["import Module from 'module';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport { homedir } from '../compat.ts';\nimport type { InstallCallback, InstallOptions, InstallResult } from '../types.ts';\n\nconst DEFAULT_STORAGE_PATH = path.join(homedir(), '.nvu');\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nlet resolveVersionsFn = null; // break dependencies\nlet installReleaseFn = null; // break dependencies\nexport default function installWorker(versionExpression: string, options: InstallOptions, callback: InstallCallback): void {\n const storagePath = options.storagePath || DEFAULT_STORAGE_PATH;\n options = { storagePath, ...options };\n\n if (!resolveVersionsFn) resolveVersionsFn = _require('node-resolve-versions');\n resolveVersionsFn(versionExpression, options, (err, versions): undefined => {\n if (err) {\n callback(err);\n return;\n }\n if (!versions.length) {\n callback(new Error(`No versions found from expression: ${versionExpression}`));\n return;\n }\n\n const results: InstallResult[] = [];\n const queue = new Queue(options.concurrency || 1);\n versions.forEach((version) => {\n queue.defer((cb) => {\n const versionOptions = { name: version, ...options };\n if (!installReleaseFn) installReleaseFn = _require('node-install-release');\n const result = installReleaseFn.createResult(versionOptions as InstallOptions, version as string);\n\n // Always call node-install-release - it will check what's missing (node, npm, or both)\n installReleaseFn(version, versionOptions, (error?) => {\n results.push({ ...result, error });\n cb();\n });\n });\n });\n queue.await((err) => (err ? callback(err) : callback(null, results)));\n });\n}\n"],"names":["Module","path","Queue","homedir","DEFAULT_STORAGE_PATH","join","_require","require","createRequire","url","resolveVersionsFn","installReleaseFn","installWorker","versionExpression","options","callback","storagePath","err","versions","length","Error","results","queue","concurrency","forEach","version","defer","cb","versionOptions","name","result","createResult","error","push","await"],"mappings":"AAAA,OAAOA,YAAY,SAAS;AAC5B,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,SAASC,OAAO,QAAQ,eAAe;AAGvC,MAAMC,uBAAuBH,KAAKI,IAAI,CAACF,WAAW;AAClD,MAAMG,WAAW,OAAOC,YAAY,cAAcP,OAAOQ,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAE1F,IAAIG,oBAAoB,MAAM,qBAAqB;AACnD,IAAIC,mBAAmB,MAAM,qBAAqB;AAClD,eAAe,SAASC,cAAcC,iBAAyB,EAAEC,OAAuB,EAAEC,QAAyB;IACjH,MAAMC,cAAcF,QAAQE,WAAW,IAAIZ;IAC3CU,UAAU;QAAEE;QAAa,GAAGF,OAAO;IAAC;IAEpC,IAAI,CAACJ,mBAAmBA,oBAAoBJ,SAAS;IACrDI,kBAAkBG,mBAAmBC,SAAS,CAACG,KAAKC;QAClD,IAAID,KAAK;YACPF,SAASE;YACT;QACF;QACA,IAAI,CAACC,SAASC,MAAM,EAAE;YACpBJ,SAAS,IAAIK,MAAM,CAAC,mCAAmC,EAAEP,mBAAmB;YAC5E;QACF;QAEA,MAAMQ,UAA2B,EAAE;QACnC,MAAMC,QAAQ,IAAIpB,MAAMY,QAAQS,WAAW,IAAI;QAC/CL,SAASM,OAAO,CAAC,CAACC;YAChBH,MAAMI,KAAK,CAAC,CAACC;gBACX,MAAMC,iBAAiB;oBAAEC,MAAMJ;oBAAS,GAAGX,OAAO;gBAAC;gBACnD,IAAI,CAACH,kBAAkBA,mBAAmBL,SAAS;gBACnD,MAAMwB,SAASnB,iBAAiBoB,YAAY,CAACH,gBAAkCH;gBAE/E,uFAAuF;gBACvFd,iBAAiBc,SAASG,gBAAgB,CAACI;oBACzCX,QAAQY,IAAI,CAAC;wBAAE,GAAGH,MAAM;wBAAEE;oBAAM;oBAChCL;gBACF;YACF;QACF;QACAL,MAAMY,KAAK,CAAC,CAACjB,MAASA,MAAMF,SAASE,OAAOF,SAAS,MAAMM;IAC7D;AACF"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
|
-
import { createResult } from 'node-install-release';
|
|
3
2
|
import path from 'path';
|
|
4
3
|
import url from 'url';
|
|
5
4
|
import { homedir } from '../compat.js';
|
|
@@ -8,11 +7,15 @@ import Module from 'module';
|
|
|
8
7
|
const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
|
|
9
8
|
const SLEEP_MS = 200;
|
|
10
9
|
const __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);
|
|
11
|
-
|
|
12
|
-
const workerPath = path.join(
|
|
10
|
+
// Worker MUST always load from dist/cjs/ for old Node compatibility
|
|
11
|
+
const workerPath = path.join(__dirname, '..', '..', 'cjs', 'workers', 'install.js');
|
|
12
|
+
let functionExec = null; // break dependencies
|
|
13
|
+
let resolveVersionsFn = null; // break dependencies
|
|
14
|
+
let createResultFn = null; // break dependencies
|
|
13
15
|
export default function installSyncWorker(versionExpression, options) {
|
|
14
16
|
try {
|
|
15
|
-
|
|
17
|
+
if (!resolveVersionsFn) resolveVersionsFn = _require('node-resolve-versions');
|
|
18
|
+
const versions = resolveVersionsFn.sync(versionExpression, options);
|
|
16
19
|
if (!versions.length) throw new Error(`No versions found from expression: ${versionExpression}`);
|
|
17
20
|
// shortcut to not spawn a worker if it's a simple case
|
|
18
21
|
if (versions.length === 1) {
|
|
@@ -22,7 +25,8 @@ export default function installSyncWorker(versionExpression, options) {
|
|
|
22
25
|
storagePath,
|
|
23
26
|
...options
|
|
24
27
|
};
|
|
25
|
-
|
|
28
|
+
if (!createResultFn) createResultFn = _require('node-install-release').createResult;
|
|
29
|
+
const result = createResultFn({
|
|
26
30
|
name: version,
|
|
27
31
|
...options
|
|
28
32
|
}, version);
|
|
@@ -32,7 +36,8 @@ export default function installSyncWorker(versionExpression, options) {
|
|
|
32
36
|
];
|
|
33
37
|
}
|
|
34
38
|
} catch (_) {}
|
|
35
|
-
|
|
39
|
+
if (!functionExec) functionExec = _require('function-exec-sync');
|
|
40
|
+
return functionExec({
|
|
36
41
|
cwd: process.cwd(),
|
|
37
42
|
sleep: SLEEP_MS,
|
|
38
43
|
callbacks: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/workers/installSync.ts"],"sourcesContent":["import fs from 'fs';\nimport
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/workers/installSync.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport url from 'url';\nimport { homedir } from '../compat.ts';\n\nconst DEFAULT_STORAGE_PATH = path.join(homedir(), '.nvu');\n\nimport Module from 'module';\n\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\n\nconst SLEEP_MS = 200;\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\n\nimport type { InstallOptions, InstallResult } from '../types.ts';\n\n// Worker MUST always load from dist/cjs/ for old Node compatibility\nconst workerPath = path.join(__dirname, '..', '..', 'cjs', 'workers', 'install.js');\n\nlet functionExec = null; // break dependencies\nlet resolveVersionsFn = null; // break dependencies\nlet createResultFn = null; // break dependencies\nexport default function installSyncWorker(versionExpression: string, options: InstallOptions): InstallResult[] {\n try {\n if (!resolveVersionsFn) resolveVersionsFn = _require('node-resolve-versions');\n const versions = resolveVersionsFn.sync(versionExpression, options);\n if (!versions.length) throw new Error(`No versions found from expression: ${versionExpression}`);\n\n // shortcut to not spawn a worker if it's a simple case\n if (versions.length === 1) {\n const version = versions[0];\n const storagePath = options.storagePath || DEFAULT_STORAGE_PATH;\n options = { storagePath, ...options };\n\n if (!createResultFn) createResultFn = _require('node-install-release').createResult;\n const result = createResultFn({ name: version, ...options }, version);\n\n fs.statSync(result.execPath);\n return [result];\n }\n } catch (_) {}\n\n if (!functionExec) functionExec = _require('function-exec-sync');\n return functionExec({ cwd: process.cwd(), sleep: SLEEP_MS, callbacks: true }, workerPath, versionExpression, options);\n}\n"],"names":["fs","path","url","homedir","DEFAULT_STORAGE_PATH","join","Module","_require","require","createRequire","SLEEP_MS","__dirname","dirname","__filename","fileURLToPath","workerPath","functionExec","resolveVersionsFn","createResultFn","installSyncWorker","versionExpression","options","versions","sync","length","Error","version","storagePath","createResult","result","name","statSync","execPath","_","cwd","process","sleep","callbacks"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AACtB,SAASC,OAAO,QAAQ,eAAe;AAEvC,MAAMC,uBAAuBH,KAAKI,IAAI,CAACF,WAAW;AAElD,OAAOG,YAAY,SAAS;AAE5B,MAAMC,WAAW,OAAOC,YAAY,cAAcF,OAAOG,aAAa,CAAC,YAAYP,GAAG,IAAIM;AAE1F,MAAME,WAAW;AACjB,MAAMC,YAAYV,KAAKW,OAAO,CAAC,OAAOC,eAAe,cAAcX,IAAIY,aAAa,CAAC,YAAYZ,GAAG,IAAIW;AAIxG,oEAAoE;AACpE,MAAME,aAAad,KAAKI,IAAI,CAACM,WAAW,MAAM,MAAM,OAAO,WAAW;AAEtE,IAAIK,eAAe,MAAM,qBAAqB;AAC9C,IAAIC,oBAAoB,MAAM,qBAAqB;AACnD,IAAIC,iBAAiB,MAAM,qBAAqB;AAChD,eAAe,SAASC,kBAAkBC,iBAAyB,EAAEC,OAAuB;IAC1F,IAAI;QACF,IAAI,CAACJ,mBAAmBA,oBAAoBV,SAAS;QACrD,MAAMe,WAAWL,kBAAkBM,IAAI,CAACH,mBAAmBC;QAC3D,IAAI,CAACC,SAASE,MAAM,EAAE,MAAM,IAAIC,MAAM,CAAC,mCAAmC,EAAEL,mBAAmB;QAE/F,uDAAuD;QACvD,IAAIE,SAASE,MAAM,KAAK,GAAG;YACzB,MAAME,UAAUJ,QAAQ,CAAC,EAAE;YAC3B,MAAMK,cAAcN,QAAQM,WAAW,IAAIvB;YAC3CiB,UAAU;gBAAEM;gBAAa,GAAGN,OAAO;YAAC;YAEpC,IAAI,CAACH,gBAAgBA,iBAAiBX,SAAS,wBAAwBqB,YAAY;YACnF,MAAMC,SAASX,eAAe;gBAAEY,MAAMJ;gBAAS,GAAGL,OAAO;YAAC,GAAGK;YAE7D1B,GAAG+B,QAAQ,CAACF,OAAOG,QAAQ;YAC3B,OAAO;gBAACH;aAAO;QACjB;IACF,EAAE,OAAOI,GAAG,CAAC;IAEb,IAAI,CAACjB,cAAcA,eAAeT,SAAS;IAC3C,OAAOS,aAAa;QAAEkB,KAAKC,QAAQD,GAAG;QAAIE,OAAO1B;QAAU2B,WAAW;IAAK,GAAGtB,YAAYK,mBAAmBC;AAC/G"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-version-install",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"description": "Install NodeJs by version string asynchronously or synchronously",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"node",
|
|
@@ -46,20 +46,20 @@
|
|
|
46
46
|
"version": "tsds version"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"function-exec-sync": "^1.5.
|
|
49
|
+
"function-exec-sync": "^1.5.2",
|
|
50
50
|
"homedir-polyfill": "^1.0.3",
|
|
51
|
-
"node-install-release": "^1.
|
|
51
|
+
"node-install-release": "^1.16.0",
|
|
52
52
|
"node-resolve-versions": "^1.3.11",
|
|
53
53
|
"queue-cb": "^1.6.1"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
56
|
"@types/mocha": "^10.0.10",
|
|
57
|
-
"@types/node": "^25.0.
|
|
57
|
+
"@types/node": "^25.0.1",
|
|
58
58
|
"cr": "^0.1.0",
|
|
59
|
-
"cross-spawn-cb": "^2.4.
|
|
59
|
+
"cross-spawn-cb": "^2.4.11",
|
|
60
60
|
"fs-remove-compat": "^0.2.1",
|
|
61
61
|
"is-version": "^1.0.7",
|
|
62
|
-
"node-version-use": "^2.1.
|
|
62
|
+
"node-version-use": "^2.1.4",
|
|
63
63
|
"node-version-utils": "^1.3.15",
|
|
64
64
|
"pinkie-promise": "^2.0.1",
|
|
65
65
|
"ts-dev-stack": "^1.21.3",
|