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.
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  Object.defineProperty(exports, "default", {
6
6
  enumerable: true,
7
7
  get: function() {
8
- return installPaths;
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 installPaths(installPath) {
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 _worker = /*#__PURE__*/ _interop_require_default(require("./worker.js"));
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, _worker.default)(versionExpression, options, callback);
50
+ if (typeof callback === 'function') return (0, _install.default)(versionExpression, options, callback);
51
51
  return new Promise(function(resolve, reject) {
52
- return (0, _worker.default)(versionExpression, options, function(err, result) {
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', 'worker.js');
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({
@@ -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 './worker.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 | 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', 'worker.js');\n\nexport function sync(versionExpression: string, options?: InstallOptions): InstallResult | 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;6DACJ;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,eAAM,EAACH,mBAAmBC,SAASC;IAC9E,OAAO,IAAIE,QAAQ,SAACC,SAASC;eAC3BH,IAAAA,eAAM,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;AAE3C,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"}
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 worker;
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("./constants.js");
14
+ var _constants = require("../constants.js");
15
15
  var _homedirpolyfill = /*#__PURE__*/ _interop_require_default(require("homedir-polyfill"));
16
- var _installPaths = /*#__PURE__*/ _interop_require_default(require("./installPaths.js"));
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 DEFAULT_INSTALL_DIRECTORY = _path.default.join((0, _homedirpolyfill.default)(), '.nvu');
53
- var DEFAULT_INSTALL_DIRECTORIES = (0, _installPaths.default)(DEFAULT_INSTALL_DIRECTORY);
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 worker(versionExpression, options, callback) {
58
- var _ref = options.installPath ? (0, _installPaths.default)(options.installPath) : DEFAULT_INSTALL_DIRECTORIES, buildPath = _ref.buildPath, cachePath = _ref.cachePath, rootInstallPath = _ref.installPath;
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
- return queue.defer(function(callback) {
65
+ queue.defer(function(cb) {
66
66
  var done = function done(err) {
67
- if (err) return callback(err);
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
- callback();
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(err) {
78
+ _fs.default.stat(execPath, function(_, stat) {
79
79
  // TODO remove redundant options
80
- err ? installRelease()(version, installPath, {
80
+ stat ? done() : installRelease()(version, installPath, {
81
81
  cachePath: cachePath,
82
82
  buildPath: buildPath
83
- }, done) : done();
83
+ }, done);
84
84
  });
85
85
  });
86
86
  });
87
87
  queue.await(function(err) {
88
- if (err) return callback(err);
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"}
@@ -1,5 +1,5 @@
1
1
  import path from 'path';
2
- export default function installPaths(installPath) {
2
+ export default function createPaths(installPath) {
3
3
  return {
4
4
  cachePath: path.join(installPath, 'cache'),
5
5
  buildPath: path.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":["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"}
@@ -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 './worker.mjs';
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', 'worker.js');
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({
@@ -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 './worker.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 | 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', 'worker.js');\n\nexport function sync(versionExpression: string, options?: InstallOptions): InstallResult | 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,cAAc;AAIjC,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;AAElD,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"}
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"}
@@ -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 | InstallResult[]) => void;\n"],"names":[],"mappings":"AAiBA,WAA+F"}
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 './constants.mjs';
4
+ import { NODE, isWindows } from '../constants.mjs';
5
5
  import home from 'homedir-polyfill';
6
- import installPaths from './installPaths.mjs';
7
- const DEFAULT_INSTALL_DIRECTORY = path.join(home(), '.nvu');
8
- const DEFAULT_INSTALL_DIRECTORIES = installPaths(DEFAULT_INSTALL_DIRECTORY);
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 worker(versionExpression, options, callback) {
15
- const { buildPath, cachePath, installPath: rootInstallPath } = options.installPath ? installPaths(options.installPath) : DEFAULT_INSTALL_DIRECTORIES;
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)=>queue.defer((callback)=>{
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 callback(err);
29
+ if (err) return cb(err);
29
30
  results.push({
30
31
  version,
31
32
  installPath,
32
33
  execPath
33
34
  });
34
- callback();
35
+ cb();
35
36
  }
36
- fs.stat(execPath, (err)=>{
37
+ fs.stat(execPath, (_, stat)=>{
37
38
  // TODO remove redundant options
38
- err ? installRelease()(version, installPath, {
39
+ stat ? done() : installRelease()(version, installPath, {
39
40
  cachePath,
40
41
  buildPath
41
- }, done) : 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"}
@@ -0,0 +1,2 @@
1
+ import type { InstallPaths } from './types.js';
2
+ export default function createPaths(installPath: string): InstallPaths;
@@ -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 | InstallResult[]>;
4
- export declare function sync(versionExpression: string, options?: InstallOptions): InstallResult | 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[];
@@ -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 | InstallResult[]) => void;
15
+ export type InstallCallback = (err?: Error, results?: InstallResult[]) => void;
@@ -0,0 +1,2 @@
1
+ import type { InstallOptions } from '../types.js';
2
+ export default function installWorker(versionExpression: string, options: InstallOptions, callback: any): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-version-install",
3
- "version": "0.1.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.2",
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.0",
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"}
@@ -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"}
@@ -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"}
@@ -1,2 +0,0 @@
1
- import type { InstallPaths } from './types.js';
2
- export default function installPaths(installPath: string): InstallPaths;
@@ -1,2 +0,0 @@
1
- import type { InstallOptions } from './types.js';
2
- export default function worker(versionExpression: string, options: InstallOptions, callback: any): void;