node-version-install 0.1.1 → 0.1.2
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/{installPaths.js → createPaths.js} +2 -2
- package/dist/cjs/createPaths.js.map +1 -0
- package/dist/cjs/index.js +4 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/{worker.js → workers/install.js} +14 -16
- package/dist/cjs/workers/install.js.map +1 -0
- package/dist/esm/{installPaths.mjs → createPaths.mjs} +1 -1
- package/dist/esm/createPaths.mjs.map +1 -0
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/types.mjs.map +1 -1
- package/dist/esm/{worker.mjs → workers/install.mjs} +15 -17
- package/dist/esm/workers/install.mjs.map +1 -0
- package/dist/types/createPaths.d.ts +2 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/types.d.ts +1 -1
- package/dist/types/workers/install.d.ts +2 -0
- package/package.json +3 -3
- package/dist/cjs/installPaths.js.map +0 -1
- package/dist/cjs/worker.js.map +0 -1
- package/dist/esm/installPaths.mjs.map +0 -1
- package/dist/esm/worker.mjs.map +0 -1
- package/dist/types/installPaths.d.ts +0 -2
- package/dist/types/worker.d.ts +0 -2
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
Object.defineProperty(exports, "default", {
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: function() {
|
|
8
|
-
return
|
|
8
|
+
return createPaths;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
@@ -14,7 +14,7 @@ function _interop_require_default(obj) {
|
|
|
14
14
|
default: obj
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function createPaths(installPath) {
|
|
18
18
|
return {
|
|
19
19
|
cachePath: _path.default.join(installPath, 'cache'),
|
|
20
20
|
buildPath: _path.default.join(installPath, 'build'),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/createPaths.ts"],"sourcesContent":["import path from 'path';\n\nimport type { InstallPaths } from './types.js';\n\nexport default function createPaths(installPath: string): InstallPaths {\n return {\n cachePath: path.join(installPath, 'cache'),\n buildPath: path.join(installPath, 'build'),\n installPath: path.join(installPath, 'installed'),\n };\n}\n"],"names":["createPaths","installPath","cachePath","path","join","buildPath"],"mappings":";;;;+BAIA;;;eAAwBA;;;2DAJP;;;;;;AAIF,SAASA,YAAYC,WAAmB;IACrD,OAAO;QACLC,WAAWC,aAAI,CAACC,IAAI,CAACH,aAAa;QAClCI,WAAWF,aAAI,CAACC,IAAI,CAACH,aAAa;QAClCA,aAAaE,aAAI,CAACC,IAAI,CAACH,aAAa;IACtC;AACF"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -19,7 +19,7 @@ _export(exports, {
|
|
|
19
19
|
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
20
20
|
var _url = /*#__PURE__*/ _interop_require_default(require("url"));
|
|
21
21
|
var _modulerootsync = /*#__PURE__*/ _interop_require_default(require("module-root-sync"));
|
|
22
|
-
var
|
|
22
|
+
var _install = /*#__PURE__*/ _interop_require_default(require("./workers/install.js"));
|
|
23
23
|
_export_star(require("./types.js"), exports);
|
|
24
24
|
var _module = /*#__PURE__*/ _interop_require_default(require("module"));
|
|
25
25
|
var _lazycache = /*#__PURE__*/ _interop_require_default(require("lazy-cache"));
|
|
@@ -47,9 +47,9 @@ function install(versionExpression, options, callback) {
|
|
|
47
47
|
options = {};
|
|
48
48
|
}
|
|
49
49
|
options = options || {};
|
|
50
|
-
if (typeof callback === 'function') return (0,
|
|
50
|
+
if (typeof callback === 'function') return (0, _install.default)(versionExpression, options, callback);
|
|
51
51
|
return new Promise(function(resolve, reject) {
|
|
52
|
-
return (0,
|
|
52
|
+
return (0, _install.default)(versionExpression, options, function(err, result) {
|
|
53
53
|
err ? reject(err) : resolve(result);
|
|
54
54
|
});
|
|
55
55
|
});
|
|
@@ -59,7 +59,7 @@ var execFunction = (0, _lazycache.default)(_require)('function-exec-sync');
|
|
|
59
59
|
var SLEEP_MS = 200;
|
|
60
60
|
var __dirname = _path.default.dirname(typeof __filename === 'undefined' ? _url.default.fileURLToPath(require("url").pathToFileURL(__filename).toString()) : __filename);
|
|
61
61
|
var root = (0, _modulerootsync.default)(__dirname);
|
|
62
|
-
var workerPath = _path.default.join(root, 'dist', 'cjs', '
|
|
62
|
+
var workerPath = _path.default.join(root, 'dist', 'cjs', 'workers', 'install.js');
|
|
63
63
|
function sync(versionExpression, options) {
|
|
64
64
|
options = options || {};
|
|
65
65
|
return execFunction().default({
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/index.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport moduleRoot from 'module-root-sync';\nimport worker from './
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/index.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport moduleRoot from 'module-root-sync';\nimport worker from './workers/install.js';\n\nimport type { InstallCallback, InstallOptions, InstallResult } from './types.js';\n\nexport * from './types.js';\nexport default function install(versionExpression: string, options?: InstallOptions, callback?: InstallCallback): undefined | Promise<InstallResult[]> {\n if (typeof options === 'function') {\n callback = options as InstallCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(versionExpression, options, callback) as undefined;\n return new Promise((resolve, reject) =>\n worker(versionExpression, options, (err, result) => {\n err ? reject(err) : resolve(result);\n })\n );\n}\n\nimport Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst execFunction = lazy(_require)('function-exec-sync');\n\nconst SLEEP_MS = 200;\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst root = moduleRoot(__dirname);\nconst workerPath = path.join(root, 'dist', 'cjs', 'workers', 'install.js');\n\nexport function sync(versionExpression: string, options?: InstallOptions): InstallResult[] {\n options = options || {};\n return execFunction().default({ cwd: process.cwd(), sleep: SLEEP_MS, callbacks: true }, workerPath, versionExpression, options);\n}\n"],"names":["install","sync","versionExpression","options","callback","worker","Promise","resolve","reject","err","result","_require","require","Module","createRequire","execFunction","lazy","SLEEP_MS","__dirname","path","dirname","__filename","url","fileURLToPath","root","moduleRoot","workerPath","join","default","cwd","process","sleep","callbacks"],"mappings":";;;;;;;;;;;IAQA,OAaC;eAbuBA;;IAyBRC,IAAI;eAAJA;;;2DAjCC;0DACD;qEACO;8DACJ;qBAIL;6DAgBK;gEACF;;;;;;;;;;;;;;;;;;;AAhBF,SAASD,QAAQE,iBAAyB,EAAEC,OAAwB,EAAEC,QAA0B;IAC7G,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IACAA,UAAUA,WAAW,CAAC;IAEtB,IAAI,OAAOC,aAAa,YAAY,OAAOC,IAAAA,gBAAM,EAACH,mBAAmBC,SAASC;IAC9E,OAAO,IAAIE,QAAQ,SAACC,SAASC;eAC3BH,IAAAA,gBAAM,EAACH,mBAAmBC,SAAS,SAACM,KAAKC;YACvCD,MAAMD,OAAOC,OAAOF,QAAQG;QAC9B;;AAEJ;AAIA,IAAMC,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAC1F,IAAMG,eAAeC,IAAAA,kBAAI,EAACL,UAAU;AAEpC,IAAMM,WAAW;AACjB,IAAMC,YAAYC,aAAI,CAACC,OAAO,CAAC,OAAOC,eAAe,cAAcC,YAAG,CAACC,aAAa,CAAC,uDAAmBF;AACxG,IAAMG,OAAOC,IAAAA,uBAAU,EAACP;AACxB,IAAMQ,aAAaP,aAAI,CAACQ,IAAI,CAACH,MAAM,QAAQ,OAAO,WAAW;AAEtD,SAASvB,KAAKC,iBAAyB,EAAEC,OAAwB;IACtEA,UAAUA,WAAW,CAAC;IACtB,OAAOY,eAAea,OAAO,CAAC;QAAEC,KAAKC,QAAQD,GAAG;QAAIE,OAAOd;QAAUe,WAAW;IAAK,GAAGN,YAAYxB,mBAAmBC;AACzH"}
|
|
@@ -5,15 +5,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
Object.defineProperty(exports, "default", {
|
|
6
6
|
enumerable: true,
|
|
7
7
|
get: function() {
|
|
8
|
-
return
|
|
8
|
+
return installWorker;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
var _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
|
|
12
12
|
var _path = /*#__PURE__*/ _interop_require_default(require("path"));
|
|
13
13
|
var _queuecb = /*#__PURE__*/ _interop_require_default(require("queue-cb"));
|
|
14
|
-
var _constants = require("
|
|
14
|
+
var _constants = require("../constants.js");
|
|
15
15
|
var _homedirpolyfill = /*#__PURE__*/ _interop_require_default(require("homedir-polyfill"));
|
|
16
|
-
var
|
|
16
|
+
var _createPaths = /*#__PURE__*/ _interop_require_default(require("../createPaths.js"));
|
|
17
17
|
var _module = /*#__PURE__*/ _interop_require_default(require("module"));
|
|
18
18
|
var _lazycache = /*#__PURE__*/ _interop_require_default(require("lazy-cache"));
|
|
19
19
|
function _define_property(obj, key, value) {
|
|
@@ -49,45 +49,43 @@ function _object_spread(target) {
|
|
|
49
49
|
}
|
|
50
50
|
return target;
|
|
51
51
|
}
|
|
52
|
-
var
|
|
53
|
-
var
|
|
52
|
+
var DEFAULT_ROOT_PATH = _path.default.join((0, _homedirpolyfill.default)(), '.nvu');
|
|
53
|
+
var DEFAULT_INSTALL_PATHS = (0, _createPaths.default)(DEFAULT_ROOT_PATH);
|
|
54
54
|
var _require = typeof require === 'undefined' ? _module.default.createRequire(require("url").pathToFileURL(__filename).toString()) : require;
|
|
55
55
|
var resolveVersions = (0, _lazycache.default)(_require)('node-resolve-versions');
|
|
56
56
|
var installRelease = (0, _lazycache.default)(_require)('node-install-release');
|
|
57
|
-
function
|
|
58
|
-
var _ref = options.installPath ? (0,
|
|
57
|
+
function installWorker(versionExpression, options, callback) {
|
|
58
|
+
var _ref = options.installPath ? (0, _createPaths.default)(options.installPath) : DEFAULT_INSTALL_PATHS, buildPath = _ref.buildPath, cachePath = _ref.cachePath, rootInstallPath = _ref.installPath;
|
|
59
59
|
resolveVersions()(versionExpression, _object_spread({}, options), function(err, versions) {
|
|
60
60
|
if (err) return callback(err);
|
|
61
61
|
if (!versions.length) return callback(new Error("No versions found from expression: ".concat(versionExpression)));
|
|
62
62
|
var results = [];
|
|
63
63
|
var queue = new _queuecb.default(options.concurrency || 1);
|
|
64
64
|
versions.forEach(function(version) {
|
|
65
|
-
|
|
65
|
+
queue.defer(function(cb) {
|
|
66
66
|
var done = function done(err) {
|
|
67
|
-
if (err) return
|
|
67
|
+
if (err) return cb(err);
|
|
68
68
|
results.push({
|
|
69
69
|
version: version,
|
|
70
70
|
installPath: installPath,
|
|
71
71
|
execPath: execPath
|
|
72
72
|
});
|
|
73
|
-
|
|
73
|
+
cb();
|
|
74
74
|
};
|
|
75
75
|
var installPath = _path.default.join(rootInstallPath, version);
|
|
76
76
|
var binRoot = _constants.isWindows ? installPath : _path.default.join(installPath, 'bin');
|
|
77
77
|
var execPath = _path.default.join(binRoot, _constants.NODE);
|
|
78
|
-
_fs.default.stat(execPath, function(
|
|
78
|
+
_fs.default.stat(execPath, function(_, stat) {
|
|
79
79
|
// TODO remove redundant options
|
|
80
|
-
|
|
80
|
+
stat ? done() : installRelease()(version, installPath, {
|
|
81
81
|
cachePath: cachePath,
|
|
82
82
|
buildPath: buildPath
|
|
83
|
-
}, done)
|
|
83
|
+
}, done);
|
|
84
84
|
});
|
|
85
85
|
});
|
|
86
86
|
});
|
|
87
87
|
queue.await(function(err) {
|
|
88
|
-
|
|
89
|
-
var result = versions.length === 1 ? results[0] : results;
|
|
90
|
-
callback(null, result);
|
|
88
|
+
return err ? callback(err) : callback(null, results);
|
|
91
89
|
});
|
|
92
90
|
});
|
|
93
91
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/workers/install.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport { NODE, isWindows } from '../constants.js';\n\nimport home from 'homedir-polyfill';\nimport createPaths from '../createPaths.js';\nconst DEFAULT_ROOT_PATH = path.join(home(), '.nvu');\nconst DEFAULT_INSTALL_PATHS = createPaths(DEFAULT_ROOT_PATH);\n\nimport Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst resolveVersions = lazy(_require)('node-resolve-versions');\nconst installRelease = lazy(_require)('node-install-release');\n\nimport type { InstallOptions, InstallResult } from '../types.js';\n\nexport default function installWorker(versionExpression: string, options: InstallOptions, callback) {\n const { buildPath, cachePath, installPath: rootInstallPath } = options.installPath ? createPaths(options.installPath) : DEFAULT_INSTALL_PATHS;\n\n resolveVersions()(versionExpression, { ...options }, (err, versions) => {\n if (err) return callback(err);\n if (!versions.length) return callback(new Error(`No versions found from expression: ${versionExpression}`));\n\n const results: InstallResult[] = [];\n const queue = new Queue(options.concurrency || 1);\n versions.forEach((version) => {\n queue.defer((cb) => {\n const installPath = path.join(rootInstallPath, version);\n const binRoot = isWindows ? installPath : path.join(installPath, 'bin');\n const execPath = path.join(binRoot, NODE);\n\n function done(err?) {\n if (err) return cb(err);\n results.push({ version, installPath, execPath });\n cb();\n }\n\n fs.stat(execPath, (_, stat) => {\n // TODO remove redundant options\n stat ? done() : installRelease()(version, installPath, { cachePath, buildPath }, done);\n });\n });\n });\n queue.await((err) => (err ? callback(err) : callback(null, results)));\n });\n}\n"],"names":["installWorker","DEFAULT_ROOT_PATH","path","join","home","DEFAULT_INSTALL_PATHS","createPaths","_require","require","Module","createRequire","resolveVersions","lazy","installRelease","versionExpression","options","callback","installPath","buildPath","cachePath","rootInstallPath","err","versions","length","Error","results","queue","Queue","concurrency","forEach","version","defer","cb","done","push","execPath","binRoot","isWindows","NODE","fs","stat","_","await"],"mappings":";;;;+BAkBA;;;eAAwBA;;;yDAlBT;2DACE;8DACC;yBACc;sEAEf;kEACO;6DAIL;gEACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAJjB,IAAMC,oBAAoBC,aAAI,CAACC,IAAI,CAACC,IAAAA,wBAAI,KAAI;AAC5C,IAAMC,wBAAwBC,IAAAA,oBAAW,EAACL;AAI1C,IAAMM,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAC1F,IAAMG,kBAAkBC,IAAAA,kBAAI,EAACL,UAAU;AACvC,IAAMM,iBAAiBD,IAAAA,kBAAI,EAACL,UAAU;AAIvB,SAASP,cAAcc,iBAAyB,EAAEC,OAAuB,EAAEC,QAAQ;IAChG,IAA+DD,OAAAA,QAAQE,WAAW,GAAGX,IAAAA,oBAAW,EAACS,QAAQE,WAAW,IAAIZ,uBAAhHa,YAAuDH,KAAvDG,WAAWC,YAA4CJ,KAA5CI,WAAWF,AAAaG,kBAAoBL,KAAjCE;IAE9BN,kBAAkBG,mBAAmB,mBAAKC,UAAW,SAACM,KAAKC;QACzD,IAAID,KAAK,OAAOL,SAASK;QACzB,IAAI,CAACC,SAASC,MAAM,EAAE,OAAOP,SAAS,IAAIQ,MAAM,AAAC,sCAAuD,OAAlBV;QAEtF,IAAMW,UAA2B,EAAE;QACnC,IAAMC,QAAQ,IAAIC,gBAAK,CAACZ,QAAQa,WAAW,IAAI;QAC/CN,SAASO,OAAO,CAAC,SAACC;YAChBJ,MAAMK,KAAK,CAAC,SAACC;oBAKFC,OAAT,SAASA,KAAKZ,GAAI;oBAChB,IAAIA,KAAK,OAAOW,GAAGX;oBACnBI,QAAQS,IAAI,CAAC;wBAAEJ,SAAAA;wBAASb,aAAAA;wBAAakB,UAAAA;oBAAS;oBAC9CH;gBACF;gBARA,IAAMf,cAAcf,aAAI,CAACC,IAAI,CAACiB,iBAAiBU;gBAC/C,IAAMM,UAAUC,oBAAS,GAAGpB,cAAcf,aAAI,CAACC,IAAI,CAACc,aAAa;gBACjE,IAAMkB,WAAWjC,aAAI,CAACC,IAAI,CAACiC,SAASE,eAAI;gBAQxCC,WAAE,CAACC,IAAI,CAACL,UAAU,SAACM,GAAGD;oBACpB,gCAAgC;oBAChCA,OAAOP,SAASpB,iBAAiBiB,SAASb,aAAa;wBAAEE,WAAAA;wBAAWD,WAAAA;oBAAU,GAAGe;gBACnF;YACF;QACF;QACAP,MAAMgB,KAAK,CAAC,SAACrB;mBAASA,MAAML,SAASK,OAAOL,SAAS,MAAMS;;IAC7D;AACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/createPaths.ts"],"sourcesContent":["import path from 'path';\n\nimport type { InstallPaths } from './types.js';\n\nexport default function createPaths(installPath: string): InstallPaths {\n return {\n cachePath: path.join(installPath, 'cache'),\n buildPath: path.join(installPath, 'build'),\n installPath: path.join(installPath, 'installed'),\n };\n}\n"],"names":["path","createPaths","installPath","cachePath","join","buildPath"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AAIxB,eAAe,SAASC,YAAYC,WAAmB;IACrD,OAAO;QACLC,WAAWH,KAAKI,IAAI,CAACF,aAAa;QAClCG,WAAWL,KAAKI,IAAI,CAACF,aAAa;QAClCA,aAAaF,KAAKI,IAAI,CAACF,aAAa;IACtC;AACF"}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
import url from 'url';
|
|
3
3
|
import moduleRoot from 'module-root-sync';
|
|
4
|
-
import worker from './
|
|
4
|
+
import worker from './workers/install.mjs';
|
|
5
5
|
export * from './types.mjs';
|
|
6
6
|
export default function install(versionExpression, options, callback) {
|
|
7
7
|
if (typeof options === 'function') {
|
|
@@ -21,7 +21,7 @@ const execFunction = lazy(_require)('function-exec-sync');
|
|
|
21
21
|
const SLEEP_MS = 200;
|
|
22
22
|
const __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);
|
|
23
23
|
const root = moduleRoot(__dirname);
|
|
24
|
-
const workerPath = path.join(root, 'dist', 'cjs', '
|
|
24
|
+
const workerPath = path.join(root, 'dist', 'cjs', 'workers', 'install.js');
|
|
25
25
|
export function sync(versionExpression, options) {
|
|
26
26
|
options = options || {};
|
|
27
27
|
return execFunction().default({
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/index.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport moduleRoot from 'module-root-sync';\nimport worker from './
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/index.ts"],"sourcesContent":["import path from 'path';\nimport url from 'url';\nimport moduleRoot from 'module-root-sync';\nimport worker from './workers/install.js';\n\nimport type { InstallCallback, InstallOptions, InstallResult } from './types.js';\n\nexport * from './types.js';\nexport default function install(versionExpression: string, options?: InstallOptions, callback?: InstallCallback): undefined | Promise<InstallResult[]> {\n if (typeof options === 'function') {\n callback = options as InstallCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(versionExpression, options, callback) as undefined;\n return new Promise((resolve, reject) =>\n worker(versionExpression, options, (err, result) => {\n err ? reject(err) : resolve(result);\n })\n );\n}\n\nimport Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst execFunction = lazy(_require)('function-exec-sync');\n\nconst SLEEP_MS = 200;\nconst __dirname = path.dirname(typeof __filename === 'undefined' ? url.fileURLToPath(import.meta.url) : __filename);\nconst root = moduleRoot(__dirname);\nconst workerPath = path.join(root, 'dist', 'cjs', 'workers', 'install.js');\n\nexport function sync(versionExpression: string, options?: InstallOptions): InstallResult[] {\n options = options || {};\n return execFunction().default({ cwd: process.cwd(), sleep: SLEEP_MS, callbacks: true }, workerPath, versionExpression, options);\n}\n"],"names":["path","url","moduleRoot","worker","install","versionExpression","options","callback","Promise","resolve","reject","err","result","Module","lazy","_require","require","createRequire","execFunction","SLEEP_MS","__dirname","dirname","__filename","fileURLToPath","root","workerPath","join","sync","default","cwd","process","sleep","callbacks"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,SAAS,MAAM;AACtB,OAAOC,gBAAgB,mBAAmB;AAC1C,OAAOC,YAAY,uBAAuB;AAI1C,cAAc,aAAa;AAC3B,eAAe,SAASC,QAAQC,iBAAyB,EAAEC,OAAwB,EAAEC,QAA0B;IAC7G,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IACAA,UAAUA,WAAW,CAAC;IAEtB,IAAI,OAAOC,aAAa,YAAY,OAAOJ,OAAOE,mBAAmBC,SAASC;IAC9E,OAAO,IAAIC,QAAQ,CAACC,SAASC,SAC3BP,OAAOE,mBAAmBC,SAAS,CAACK,KAAKC;YACvCD,MAAMD,OAAOC,OAAOF,QAAQG;QAC9B;AAEJ;AAEA,OAAOC,YAAY,SAAS;AAC5B,OAAOC,UAAU,aAAa;AAC9B,MAAMC,WAAW,OAAOC,YAAY,cAAcH,OAAOI,aAAa,CAAC,YAAYhB,GAAG,IAAIe;AAC1F,MAAME,eAAeJ,KAAKC,UAAU;AAEpC,MAAMI,WAAW;AACjB,MAAMC,YAAYpB,KAAKqB,OAAO,CAAC,OAAOC,eAAe,cAAcrB,IAAIsB,aAAa,CAAC,YAAYtB,GAAG,IAAIqB;AACxG,MAAME,OAAOtB,WAAWkB;AACxB,MAAMK,aAAazB,KAAK0B,IAAI,CAACF,MAAM,QAAQ,OAAO,WAAW;AAE7D,OAAO,SAASG,KAAKtB,iBAAyB,EAAEC,OAAwB;IACtEA,UAAUA,WAAW,CAAC;IACtB,OAAOY,eAAeU,OAAO,CAAC;QAAEC,KAAKC,QAAQD,GAAG;QAAIE,OAAOZ;QAAUa,WAAW;IAAK,GAAGP,YAAYpB,mBAAmBC;AACzH"}
|
package/dist/esm/types.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/types.ts"],"sourcesContent":["export type InstallPaths = {\n cachePath: string;\n buildPath: string;\n installPath: string;\n};\n\nexport type InstallResult = {\n version: string;\n installPath: string;\n execPath: string;\n};\n\nexport interface InstallOptions {\n installPath?: string;\n concurrency?: number;\n}\n\nexport type InstallCallback = (err?: Error, results?: InstallResult
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/types.ts"],"sourcesContent":["export type InstallPaths = {\n cachePath: string;\n buildPath: string;\n installPath: string;\n};\n\nexport type InstallResult = {\n version: string;\n installPath: string;\n execPath: string;\n};\n\nexport interface InstallOptions {\n installPath?: string;\n concurrency?: number;\n}\n\nexport type InstallCallback = (err?: Error, results?: InstallResult[]) => void;\n"],"names":[],"mappings":"AAiBA,WAA+E"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import Queue from 'queue-cb';
|
|
4
|
-
import { NODE, isWindows } from '
|
|
4
|
+
import { NODE, isWindows } from '../constants.mjs';
|
|
5
5
|
import home from 'homedir-polyfill';
|
|
6
|
-
import
|
|
7
|
-
const
|
|
8
|
-
const
|
|
6
|
+
import createPaths from '../createPaths.mjs';
|
|
7
|
+
const DEFAULT_ROOT_PATH = path.join(home(), '.nvu');
|
|
8
|
+
const DEFAULT_INSTALL_PATHS = createPaths(DEFAULT_ROOT_PATH);
|
|
9
9
|
import Module from 'module';
|
|
10
10
|
import lazy from 'lazy-cache';
|
|
11
11
|
const _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;
|
|
12
12
|
const resolveVersions = lazy(_require)('node-resolve-versions');
|
|
13
13
|
const installRelease = lazy(_require)('node-install-release');
|
|
14
|
-
export default function
|
|
15
|
-
const { buildPath, cachePath, installPath: rootInstallPath } = options.installPath ?
|
|
14
|
+
export default function installWorker(versionExpression, options, callback) {
|
|
15
|
+
const { buildPath, cachePath, installPath: rootInstallPath } = options.installPath ? createPaths(options.installPath) : DEFAULT_INSTALL_PATHS;
|
|
16
16
|
resolveVersions()(versionExpression, {
|
|
17
17
|
...options
|
|
18
18
|
}, (err, versions)=>{
|
|
@@ -20,31 +20,29 @@ export default function worker(versionExpression, options, callback) {
|
|
|
20
20
|
if (!versions.length) return callback(new Error(`No versions found from expression: ${versionExpression}`));
|
|
21
21
|
const results = [];
|
|
22
22
|
const queue = new Queue(options.concurrency || 1);
|
|
23
|
-
versions.forEach((version)=>
|
|
23
|
+
versions.forEach((version)=>{
|
|
24
|
+
queue.defer((cb)=>{
|
|
24
25
|
const installPath = path.join(rootInstallPath, version);
|
|
25
26
|
const binRoot = isWindows ? installPath : path.join(installPath, 'bin');
|
|
26
27
|
const execPath = path.join(binRoot, NODE);
|
|
27
28
|
function done(err) {
|
|
28
|
-
if (err) return
|
|
29
|
+
if (err) return cb(err);
|
|
29
30
|
results.push({
|
|
30
31
|
version,
|
|
31
32
|
installPath,
|
|
32
33
|
execPath
|
|
33
34
|
});
|
|
34
|
-
|
|
35
|
+
cb();
|
|
35
36
|
}
|
|
36
|
-
fs.stat(execPath, (
|
|
37
|
+
fs.stat(execPath, (_, stat)=>{
|
|
37
38
|
// TODO remove redundant options
|
|
38
|
-
|
|
39
|
+
stat ? done() : installRelease()(version, installPath, {
|
|
39
40
|
cachePath,
|
|
40
41
|
buildPath
|
|
41
|
-
}, done)
|
|
42
|
+
}, done);
|
|
42
43
|
});
|
|
43
|
-
})
|
|
44
|
-
queue.await((err)=>{
|
|
45
|
-
if (err) return callback(err);
|
|
46
|
-
const result = versions.length === 1 ? results[0] : results;
|
|
47
|
-
callback(null, result);
|
|
44
|
+
});
|
|
48
45
|
});
|
|
46
|
+
queue.await((err)=>err ? callback(err) : callback(null, results));
|
|
49
47
|
});
|
|
50
48
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/workers/install.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport { NODE, isWindows } from '../constants.js';\n\nimport home from 'homedir-polyfill';\nimport createPaths from '../createPaths.js';\nconst DEFAULT_ROOT_PATH = path.join(home(), '.nvu');\nconst DEFAULT_INSTALL_PATHS = createPaths(DEFAULT_ROOT_PATH);\n\nimport Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst resolveVersions = lazy(_require)('node-resolve-versions');\nconst installRelease = lazy(_require)('node-install-release');\n\nimport type { InstallOptions, InstallResult } from '../types.js';\n\nexport default function installWorker(versionExpression: string, options: InstallOptions, callback) {\n const { buildPath, cachePath, installPath: rootInstallPath } = options.installPath ? createPaths(options.installPath) : DEFAULT_INSTALL_PATHS;\n\n resolveVersions()(versionExpression, { ...options }, (err, versions) => {\n if (err) return callback(err);\n if (!versions.length) return callback(new Error(`No versions found from expression: ${versionExpression}`));\n\n const results: InstallResult[] = [];\n const queue = new Queue(options.concurrency || 1);\n versions.forEach((version) => {\n queue.defer((cb) => {\n const installPath = path.join(rootInstallPath, version);\n const binRoot = isWindows ? installPath : path.join(installPath, 'bin');\n const execPath = path.join(binRoot, NODE);\n\n function done(err?) {\n if (err) return cb(err);\n results.push({ version, installPath, execPath });\n cb();\n }\n\n fs.stat(execPath, (_, stat) => {\n // TODO remove redundant options\n stat ? done() : installRelease()(version, installPath, { cachePath, buildPath }, done);\n });\n });\n });\n queue.await((err) => (err ? callback(err) : callback(null, results)));\n });\n}\n"],"names":["fs","path","Queue","NODE","isWindows","home","createPaths","DEFAULT_ROOT_PATH","join","DEFAULT_INSTALL_PATHS","Module","lazy","_require","require","createRequire","url","resolveVersions","installRelease","installWorker","versionExpression","options","callback","buildPath","cachePath","installPath","rootInstallPath","err","versions","length","Error","results","queue","concurrency","forEach","version","defer","cb","binRoot","execPath","done","push","stat","_","await"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,SAASC,IAAI,EAAEC,SAAS,QAAQ,kBAAkB;AAElD,OAAOC,UAAU,mBAAmB;AACpC,OAAOC,iBAAiB,oBAAoB;AAC5C,MAAMC,oBAAoBN,KAAKO,IAAI,CAACH,QAAQ;AAC5C,MAAMI,wBAAwBH,YAAYC;AAE1C,OAAOG,YAAY,SAAS;AAC5B,OAAOC,UAAU,aAAa;AAC9B,MAAMC,WAAW,OAAOC,YAAY,cAAcH,OAAOI,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAC1F,MAAMG,kBAAkBL,KAAKC,UAAU;AACvC,MAAMK,iBAAiBN,KAAKC,UAAU;AAItC,eAAe,SAASM,cAAcC,iBAAyB,EAAEC,OAAuB,EAAEC,QAAQ;IAChG,MAAM,EAAEC,SAAS,EAAEC,SAAS,EAAEC,aAAaC,eAAe,EAAE,GAAGL,QAAQI,WAAW,GAAGlB,YAAYc,QAAQI,WAAW,IAAIf;IAExHO,kBAAkBG,mBAAmB;QAAE,GAAGC,OAAO;IAAC,GAAG,CAACM,KAAKC;QACzD,IAAID,KAAK,OAAOL,SAASK;QACzB,IAAI,CAACC,SAASC,MAAM,EAAE,OAAOP,SAAS,IAAIQ,MAAM,CAAC,mCAAmC,EAAEV,mBAAmB;QAEzG,MAAMW,UAA2B,EAAE;QACnC,MAAMC,QAAQ,IAAI7B,MAAMkB,QAAQY,WAAW,IAAI;QAC/CL,SAASM,OAAO,CAAC,CAACC;YAChBH,MAAMI,KAAK,CAAC,CAACC;gBACX,MAAMZ,cAAcvB,KAAKO,IAAI,CAACiB,iBAAiBS;gBAC/C,MAAMG,UAAUjC,YAAYoB,cAAcvB,KAAKO,IAAI,CAACgB,aAAa;gBACjE,MAAMc,WAAWrC,KAAKO,IAAI,CAAC6B,SAASlC;gBAEpC,SAASoC,KAAKb,GAAI;oBAChB,IAAIA,KAAK,OAAOU,GAAGV;oBACnBI,QAAQU,IAAI,CAAC;wBAAEN;wBAASV;wBAAac;oBAAS;oBAC9CF;gBACF;gBAEApC,GAAGyC,IAAI,CAACH,UAAU,CAACI,GAAGD;oBACpB,gCAAgC;oBAChCA,OAAOF,SAAStB,iBAAiBiB,SAASV,aAAa;wBAAED;wBAAWD;oBAAU,GAAGiB;gBACnF;YACF;QACF;QACAR,MAAMY,KAAK,CAAC,CAACjB,MAASA,MAAML,SAASK,OAAOL,SAAS,MAAMS;IAC7D;AACF"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { InstallCallback, InstallOptions, InstallResult } from './types.js';
|
|
2
2
|
export * from './types.js';
|
|
3
|
-
export default function install(versionExpression: string, options?: InstallOptions, callback?: InstallCallback): undefined | Promise<InstallResult
|
|
4
|
-
export declare function sync(versionExpression: string, options?: InstallOptions): InstallResult
|
|
3
|
+
export default function install(versionExpression: string, options?: InstallOptions, callback?: InstallCallback): undefined | Promise<InstallResult[]>;
|
|
4
|
+
export declare function sync(versionExpression: string, options?: InstallOptions): InstallResult[];
|
package/dist/types/types.d.ts
CHANGED
|
@@ -12,4 +12,4 @@ export interface InstallOptions {
|
|
|
12
12
|
installPath?: string;
|
|
13
13
|
concurrency?: number;
|
|
14
14
|
}
|
|
15
|
-
export type InstallCallback = (err?: Error, results?: InstallResult
|
|
15
|
+
export type InstallCallback = (err?: Error, results?: InstallResult[]) => void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-version-install",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Install NodeJs by version string asynchronously or synchronously",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"node",
|
|
@@ -47,11 +47,11 @@
|
|
|
47
47
|
"version": "tsds version"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"function-exec-sync": "^1.1.
|
|
50
|
+
"function-exec-sync": "^1.1.5",
|
|
51
51
|
"homedir-polyfill": "^1.0.3",
|
|
52
52
|
"lazy-cache": "^2.0.2",
|
|
53
53
|
"module-root-sync": "^0.1.1",
|
|
54
|
-
"node-install-release": "^1.6.
|
|
54
|
+
"node-install-release": "^1.6.3",
|
|
55
55
|
"node-resolve-versions": "^1.0.5",
|
|
56
56
|
"queue-cb": "^1.4.4"
|
|
57
57
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/installPaths.ts"],"sourcesContent":["import path from 'path';\n\nimport type { InstallPaths } from './types.js';\n\nexport default function installPaths(installPath: string): InstallPaths {\n return {\n cachePath: path.join(installPath, 'cache'),\n buildPath: path.join(installPath, 'build'),\n installPath: path.join(installPath, 'installed'),\n };\n}\n"],"names":["installPaths","installPath","cachePath","path","join","buildPath"],"mappings":";;;;+BAIA;;;eAAwBA;;;2DAJP;;;;;;AAIF,SAASA,aAAaC,WAAmB;IACtD,OAAO;QACLC,WAAWC,aAAI,CAACC,IAAI,CAACH,aAAa;QAClCI,WAAWF,aAAI,CAACC,IAAI,CAACH,aAAa;QAClCA,aAAaE,aAAI,CAACC,IAAI,CAACH,aAAa;IACtC;AACF"}
|
package/dist/cjs/worker.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/worker.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport { NODE, isWindows } from './constants.js';\n\nimport home from 'homedir-polyfill';\nimport installPaths from './installPaths.js';\nconst DEFAULT_INSTALL_DIRECTORY = path.join(home(), '.nvu');\nconst DEFAULT_INSTALL_DIRECTORIES = installPaths(DEFAULT_INSTALL_DIRECTORY);\n\nimport Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst resolveVersions = lazy(_require)('node-resolve-versions');\nconst installRelease = lazy(_require)('node-install-release');\n\nimport type { InstallOptions, InstallResult } from './types.js';\n\nexport default function worker(versionExpression: string, options: InstallOptions, callback) {\n const { buildPath, cachePath, installPath: rootInstallPath } = options.installPath ? installPaths(options.installPath) : DEFAULT_INSTALL_DIRECTORIES;\n\n resolveVersions()(versionExpression, { ...options }, (err, versions) => {\n if (err) return callback(err);\n if (!versions.length) return callback(new Error(`No versions found from expression: ${versionExpression}`));\n\n const results: InstallResult[] = [];\n const queue = new Queue(options.concurrency || 1);\n versions.forEach((version) =>\n queue.defer((callback) => {\n const installPath = path.join(rootInstallPath, version);\n const binRoot = isWindows ? installPath : path.join(installPath, 'bin');\n const execPath = path.join(binRoot, NODE);\n\n function done(err?) {\n if (err) return callback(err);\n results.push({ version, installPath, execPath });\n callback();\n }\n\n fs.stat(execPath, (err) => {\n // TODO remove redundant options\n err ? installRelease()(version, installPath, { cachePath, buildPath }, done) : done();\n });\n })\n );\n queue.await((err) => {\n if (err) return callback(err);\n const result = versions.length === 1 ? results[0] : results;\n callback(null, result);\n });\n });\n}\n"],"names":["worker","DEFAULT_INSTALL_DIRECTORY","path","join","home","DEFAULT_INSTALL_DIRECTORIES","installPaths","_require","require","Module","createRequire","resolveVersions","lazy","installRelease","versionExpression","options","callback","installPath","buildPath","cachePath","rootInstallPath","err","versions","length","Error","results","queue","Queue","concurrency","forEach","version","defer","done","push","execPath","binRoot","isWindows","NODE","fs","stat","await","result"],"mappings":";;;;+BAkBA;;;eAAwBA;;;yDAlBT;2DACE;8DACC;yBACc;sEAEf;mEACQ;6DAIN;gEACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAJjB,IAAMC,4BAA4BC,aAAI,CAACC,IAAI,CAACC,IAAAA,wBAAI,KAAI;AACpD,IAAMC,8BAA8BC,IAAAA,qBAAY,EAACL;AAIjD,IAAMM,WAAW,OAAOC,YAAY,cAAcC,eAAM,CAACC,aAAa,CAAC,uDAAmBF;AAC1F,IAAMG,kBAAkBC,IAAAA,kBAAI,EAACL,UAAU;AACvC,IAAMM,iBAAiBD,IAAAA,kBAAI,EAACL,UAAU;AAIvB,SAASP,OAAOc,iBAAyB,EAAEC,OAAuB,EAAEC,QAAQ;IACzF,IAA+DD,OAAAA,QAAQE,WAAW,GAAGX,IAAAA,qBAAY,EAACS,QAAQE,WAAW,IAAIZ,6BAAjHa,YAAuDH,KAAvDG,WAAWC,YAA4CJ,KAA5CI,WAAWF,AAAaG,kBAAoBL,KAAjCE;IAE9BN,kBAAkBG,mBAAmB,mBAAKC,UAAW,SAACM,KAAKC;QACzD,IAAID,KAAK,OAAOL,SAASK;QACzB,IAAI,CAACC,SAASC,MAAM,EAAE,OAAOP,SAAS,IAAIQ,MAAM,AAAC,sCAAuD,OAAlBV;QAEtF,IAAMW,UAA2B,EAAE;QACnC,IAAMC,QAAQ,IAAIC,gBAAK,CAACZ,QAAQa,WAAW,IAAI;QAC/CN,SAASO,OAAO,CAAC,SAACC;mBAChBJ,MAAMK,KAAK,CAAC,SAACf;oBAKFgB,OAAT,SAASA,KAAKX,GAAI;oBAChB,IAAIA,KAAK,OAAOL,SAASK;oBACzBI,QAAQQ,IAAI,CAAC;wBAAEH,SAAAA;wBAASb,aAAAA;wBAAaiB,UAAAA;oBAAS;oBAC9ClB;gBACF;gBARA,IAAMC,cAAcf,aAAI,CAACC,IAAI,CAACiB,iBAAiBU;gBAC/C,IAAMK,UAAUC,oBAAS,GAAGnB,cAAcf,aAAI,CAACC,IAAI,CAACc,aAAa;gBACjE,IAAMiB,WAAWhC,aAAI,CAACC,IAAI,CAACgC,SAASE,eAAI;gBAQxCC,WAAE,CAACC,IAAI,CAACL,UAAU,SAACb;oBACjB,gCAAgC;oBAChCA,MAAMR,iBAAiBiB,SAASb,aAAa;wBAAEE,WAAAA;wBAAWD,WAAAA;oBAAU,GAAGc,QAAQA;gBACjF;YACF;;QAEFN,MAAMc,KAAK,CAAC,SAACnB;YACX,IAAIA,KAAK,OAAOL,SAASK;YACzB,IAAMoB,SAASnB,SAASC,MAAM,KAAK,IAAIE,OAAO,CAAC,EAAE,GAAGA;YACpDT,SAAS,MAAMyB;QACjB;IACF;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/installPaths.ts"],"sourcesContent":["import path from 'path';\n\nimport type { InstallPaths } from './types.js';\n\nexport default function installPaths(installPath: string): InstallPaths {\n return {\n cachePath: path.join(installPath, 'cache'),\n buildPath: path.join(installPath, 'build'),\n installPath: path.join(installPath, 'installed'),\n };\n}\n"],"names":["path","installPaths","installPath","cachePath","join","buildPath"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AAIxB,eAAe,SAASC,aAAaC,WAAmB;IACtD,OAAO;QACLC,WAAWH,KAAKI,IAAI,CAACF,aAAa;QAClCG,WAAWL,KAAKI,IAAI,CAACF,aAAa;QAClCA,aAAaF,KAAKI,IAAI,CAACF,aAAa;IACtC;AACF"}
|
package/dist/esm/worker.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-install/src/worker.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport Queue from 'queue-cb';\nimport { NODE, isWindows } from './constants.js';\n\nimport home from 'homedir-polyfill';\nimport installPaths from './installPaths.js';\nconst DEFAULT_INSTALL_DIRECTORY = path.join(home(), '.nvu');\nconst DEFAULT_INSTALL_DIRECTORIES = installPaths(DEFAULT_INSTALL_DIRECTORY);\n\nimport Module from 'module';\nimport lazy from 'lazy-cache';\nconst _require = typeof require === 'undefined' ? Module.createRequire(import.meta.url) : require;\nconst resolveVersions = lazy(_require)('node-resolve-versions');\nconst installRelease = lazy(_require)('node-install-release');\n\nimport type { InstallOptions, InstallResult } from './types.js';\n\nexport default function worker(versionExpression: string, options: InstallOptions, callback) {\n const { buildPath, cachePath, installPath: rootInstallPath } = options.installPath ? installPaths(options.installPath) : DEFAULT_INSTALL_DIRECTORIES;\n\n resolveVersions()(versionExpression, { ...options }, (err, versions) => {\n if (err) return callback(err);\n if (!versions.length) return callback(new Error(`No versions found from expression: ${versionExpression}`));\n\n const results: InstallResult[] = [];\n const queue = new Queue(options.concurrency || 1);\n versions.forEach((version) =>\n queue.defer((callback) => {\n const installPath = path.join(rootInstallPath, version);\n const binRoot = isWindows ? installPath : path.join(installPath, 'bin');\n const execPath = path.join(binRoot, NODE);\n\n function done(err?) {\n if (err) return callback(err);\n results.push({ version, installPath, execPath });\n callback();\n }\n\n fs.stat(execPath, (err) => {\n // TODO remove redundant options\n err ? installRelease()(version, installPath, { cachePath, buildPath }, done) : done();\n });\n })\n );\n queue.await((err) => {\n if (err) return callback(err);\n const result = versions.length === 1 ? results[0] : results;\n callback(null, result);\n });\n });\n}\n"],"names":["fs","path","Queue","NODE","isWindows","home","installPaths","DEFAULT_INSTALL_DIRECTORY","join","DEFAULT_INSTALL_DIRECTORIES","Module","lazy","_require","require","createRequire","url","resolveVersions","installRelease","worker","versionExpression","options","callback","buildPath","cachePath","installPath","rootInstallPath","err","versions","length","Error","results","queue","concurrency","forEach","version","defer","binRoot","execPath","done","push","stat","await","result"],"mappings":"AAAA,OAAOA,QAAQ,KAAK;AACpB,OAAOC,UAAU,OAAO;AACxB,OAAOC,WAAW,WAAW;AAC7B,SAASC,IAAI,EAAEC,SAAS,QAAQ,iBAAiB;AAEjD,OAAOC,UAAU,mBAAmB;AACpC,OAAOC,kBAAkB,oBAAoB;AAC7C,MAAMC,4BAA4BN,KAAKO,IAAI,CAACH,QAAQ;AACpD,MAAMI,8BAA8BH,aAAaC;AAEjD,OAAOG,YAAY,SAAS;AAC5B,OAAOC,UAAU,aAAa;AAC9B,MAAMC,WAAW,OAAOC,YAAY,cAAcH,OAAOI,aAAa,CAAC,YAAYC,GAAG,IAAIF;AAC1F,MAAMG,kBAAkBL,KAAKC,UAAU;AACvC,MAAMK,iBAAiBN,KAAKC,UAAU;AAItC,eAAe,SAASM,OAAOC,iBAAyB,EAAEC,OAAuB,EAAEC,QAAQ;IACzF,MAAM,EAAEC,SAAS,EAAEC,SAAS,EAAEC,aAAaC,eAAe,EAAE,GAAGL,QAAQI,WAAW,GAAGlB,aAAac,QAAQI,WAAW,IAAIf;IAEzHO,kBAAkBG,mBAAmB;QAAE,GAAGC,OAAO;IAAC,GAAG,CAACM,KAAKC;QACzD,IAAID,KAAK,OAAOL,SAASK;QACzB,IAAI,CAACC,SAASC,MAAM,EAAE,OAAOP,SAAS,IAAIQ,MAAM,CAAC,mCAAmC,EAAEV,mBAAmB;QAEzG,MAAMW,UAA2B,EAAE;QACnC,MAAMC,QAAQ,IAAI7B,MAAMkB,QAAQY,WAAW,IAAI;QAC/CL,SAASM,OAAO,CAAC,CAACC,UAChBH,MAAMI,KAAK,CAAC,CAACd;gBACX,MAAMG,cAAcvB,KAAKO,IAAI,CAACiB,iBAAiBS;gBAC/C,MAAME,UAAUhC,YAAYoB,cAAcvB,KAAKO,IAAI,CAACgB,aAAa;gBACjE,MAAMa,WAAWpC,KAAKO,IAAI,CAAC4B,SAASjC;gBAEpC,SAASmC,KAAKZ,GAAI;oBAChB,IAAIA,KAAK,OAAOL,SAASK;oBACzBI,QAAQS,IAAI,CAAC;wBAAEL;wBAASV;wBAAaa;oBAAS;oBAC9ChB;gBACF;gBAEArB,GAAGwC,IAAI,CAACH,UAAU,CAACX;oBACjB,gCAAgC;oBAChCA,MAAMT,iBAAiBiB,SAASV,aAAa;wBAAED;wBAAWD;oBAAU,GAAGgB,QAAQA;gBACjF;YACF;QAEFP,MAAMU,KAAK,CAAC,CAACf;YACX,IAAIA,KAAK,OAAOL,SAASK;YACzB,MAAMgB,SAASf,SAASC,MAAM,KAAK,IAAIE,OAAO,CAAC,EAAE,GAAGA;YACpDT,SAAS,MAAMqB;QACjB;IACF;AACF"}
|
package/dist/types/worker.d.ts
DELETED