node-version-use 1.6.2 → 1.6.3
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/cli.d.cts +1 -1
- package/dist/cjs/cli.d.ts +1 -1
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/constants.d.cts +1 -1
- package/dist/cjs/constants.d.ts +1 -1
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types.d.cts +7 -3
- package/dist/cjs/types.d.ts +7 -3
- package/dist/cjs/worker.d.cts +2 -1
- package/dist/cjs/worker.d.ts +2 -1
- package/dist/cjs/worker.js +11 -4
- package/dist/cjs/worker.js.map +1 -1
- package/dist/esm/cli.d.ts +1 -1
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/constants.d.ts +1 -1
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types.d.ts +7 -3
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/worker.d.ts +2 -1
- package/dist/esm/worker.js +11 -4
- package/dist/esm/worker.js.map +1 -1
- package/package.json +2 -2
package/dist/cjs/cli.d.cts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: (argv:
|
|
1
|
+
declare const _default: (argv: string[], name: string) => undefined;
|
|
2
2
|
export default _default;
|
package/dist/cjs/cli.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: (argv:
|
|
1
|
+
declare const _default: (argv: string[], name: string) => undefined;
|
|
2
2
|
export default _default;
|
package/dist/cjs/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/cli.ts"],"sourcesContent":["import exit from 'exit';\nimport getopts from 'getopts-compat';\nimport spawnTerm, { figures, formatArguments } from 'spawn-term';\nimport run from './index.ts';\nimport type { UseError, UseOptions, UseResult } from './types.ts';\n\nconst ERROR_CODE = 13;\n\nexport default (argv, name) => {\n const options = getopts(argv, {\n alias: { range: 'r', desc: 'd', expanded: 'e', streaming: 's', silent: 'si' },\n default: { range: 'major,even' },\n boolean: ['silent', 'desc', 'expanded', 'streaming'],\n stopEarly: true,\n });\n\n // define.option('-r, --range [range]', 'range type of major, minor, or patch with filters of lts, even, odd for version string expressions', 'major,even');\n // define.option('-s, --silent', 'suppress logging', false);\n options.sort = options.desc ? -1 : 1;\n\n const args = options._;\n if (args.length === 0) {\n console.log(`Missing version expression. Example usage: ${name} version command arg1 arg2`);\n return exit(ERROR_CODE);\n }\n if (args.length === 1) {\n console.log(`Missing command. Example usage: ${name} version command arg1 arg2`);\n return exit(ERROR_CODE);\n }\n\n options.stdio = 'inherit'; // pass through stdio\n return run(args[0], args[1], args.slice(2), options as unknown as UseOptions, (err: UseError, results: UseResult[]): undefined => {\n if (err && !err.results) {\n console.log(err.message);\n return exit(ERROR_CODE);\n }\n if (err) results = err.results;\n const errors = results.filter((result) => !!result.error);\n\n if (!options.silent) {\n if (!spawnTerm) {\n console.log('\\n======================');\n results.forEach((res) => console.log(`${res.error ? figures.cross : figures.tick} ${res.version}${res.error ? ` Error: ${res.error.message}` : ''}`));\n }\n console.log('\\n----------------------');\n console.log(`${name} ${formatArguments(args).join(' ')}`);\n console.log(`${figures.tick} ${results.length - errors.length} succeeded`);\n if (errors.length) console.log(`${figures.cross} ${errors.length} failed`);\n }\n exit(err || errors.length ? ERROR_CODE : 0);\n });\n};\n"],"names":["ERROR_CODE","argv","name","options","getopts","alias","range","desc","expanded","streaming","silent","default","boolean","stopEarly","sort","args","_","length","console","log","exit","stdio","run","slice","err","results","message","errors","filter","result","error","spawnTerm","forEach","res","figures","cross","tick","version","formatArguments","join"],"mappings":";;;;+BAQA;;;eAAA;;;2DARiB;oEACG;iEACgC;8DACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGhB,IAAMA,aAAa;IAEnB,WAAe,SAACC,
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/cli.ts"],"sourcesContent":["import exit from 'exit';\nimport getopts from 'getopts-compat';\nimport spawnTerm, { figures, formatArguments } from 'spawn-term';\nimport run from './index.ts';\nimport type { UseError, UseOptions, UseResult } from './types.ts';\n\nconst ERROR_CODE = 13;\n\nexport default (argv: string[], name: string): undefined => {\n const options = getopts(argv, {\n alias: { range: 'r', desc: 'd', expanded: 'e', streaming: 's', silent: 'si' },\n default: { range: 'major,even' },\n boolean: ['silent', 'desc', 'expanded', 'streaming'],\n stopEarly: true,\n });\n\n // define.option('-r, --range [range]', 'range type of major, minor, or patch with filters of lts, even, odd for version string expressions', 'major,even');\n // define.option('-s, --silent', 'suppress logging', false);\n options.sort = options.desc ? -1 : 1;\n\n const args = options._;\n if (args.length === 0) {\n console.log(`Missing version expression. Example usage: ${name} version command arg1 arg2`);\n return exit(ERROR_CODE);\n }\n if (args.length === 1) {\n console.log(`Missing command. Example usage: ${name} version command arg1 arg2`);\n return exit(ERROR_CODE);\n }\n\n options.stdio = 'inherit'; // pass through stdio\n return run(args[0], args[1], args.slice(2), options as unknown as UseOptions, (err: UseError, results: UseResult[]): undefined => {\n if (err && !err.results) {\n console.log(err.message);\n return exit(ERROR_CODE);\n }\n if (err) results = err.results;\n const errors = results.filter((result) => !!result.error);\n\n if (!options.silent) {\n if (!spawnTerm) {\n console.log('\\n======================');\n results.forEach((res) => console.log(`${res.error ? figures.cross : figures.tick} ${res.version}${res.error ? ` Error: ${res.error.message}` : ''}`));\n }\n console.log('\\n----------------------');\n console.log(`${name} ${formatArguments(args).join(' ')}`);\n console.log(`${figures.tick} ${results.length - errors.length} succeeded`);\n if (errors.length) console.log(`${figures.cross} ${errors.length} failed`);\n }\n exit(err || errors.length ? ERROR_CODE : 0);\n });\n};\n"],"names":["ERROR_CODE","argv","name","options","getopts","alias","range","desc","expanded","streaming","silent","default","boolean","stopEarly","sort","args","_","length","console","log","exit","stdio","run","slice","err","results","message","errors","filter","result","error","spawnTerm","forEach","res","figures","cross","tick","version","formatArguments","join"],"mappings":";;;;+BAQA;;;eAAA;;;2DARiB;oEACG;iEACgC;8DACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGhB,IAAMA,aAAa;IAEnB,WAAe,SAACC,MAAgBC;IAC9B,IAAMC,UAAUC,IAAAA,sBAAO,EAACH,MAAM;QAC5BI,OAAO;YAAEC,OAAO;YAAKC,MAAM;YAAKC,UAAU;YAAKC,WAAW;YAAKC,QAAQ;QAAK;QAC5EC,SAAS;YAAEL,OAAO;QAAa;QAC/BM,SAAS;YAAC;YAAU;YAAQ;YAAY;SAAY;QACpDC,WAAW;IACb;IAEA,4JAA4J;IAC5J,4DAA4D;IAC5DV,QAAQW,IAAI,GAAGX,QAAQI,IAAI,GAAG,CAAC,IAAI;IAEnC,IAAMQ,OAAOZ,QAAQa,CAAC;IACtB,IAAID,KAAKE,MAAM,KAAK,GAAG;QACrBC,QAAQC,GAAG,CAAC,AAAC,8CAAkD,OAALjB,MAAK;QAC/D,OAAOkB,IAAAA,aAAI,EAACpB;IACd;IACA,IAAIe,KAAKE,MAAM,KAAK,GAAG;QACrBC,QAAQC,GAAG,CAAC,AAAC,mCAAuC,OAALjB,MAAK;QACpD,OAAOkB,IAAAA,aAAI,EAACpB;IACd;IAEAG,QAAQkB,KAAK,GAAG,WAAW,qBAAqB;IAChD,OAAOC,IAAAA,gBAAG,EAACP,IAAI,CAAC,EAAE,EAAEA,IAAI,CAAC,EAAE,EAAEA,KAAKQ,KAAK,CAAC,IAAIpB,SAAkC,SAACqB,KAAeC;QAC5F,IAAID,OAAO,CAACA,IAAIC,OAAO,EAAE;YACvBP,QAAQC,GAAG,CAACK,IAAIE,OAAO;YACvB,OAAON,IAAAA,aAAI,EAACpB;QACd;QACA,IAAIwB,KAAKC,UAAUD,IAAIC,OAAO;QAC9B,IAAME,SAASF,QAAQG,MAAM,CAAC,SAACC;mBAAW,CAAC,CAACA,OAAOC,KAAK;;QAExD,IAAI,CAAC3B,QAAQO,MAAM,EAAE;YACnB,IAAI,CAACqB,kBAAS,EAAE;gBACdb,QAAQC,GAAG,CAAC;gBACZM,QAAQO,OAAO,CAAC,SAACC;2BAAQf,QAAQC,GAAG,CAAC,AAAC,GAA8Cc,OAA5CA,IAAIH,KAAK,GAAGI,kBAAO,CAACC,KAAK,GAAGD,kBAAO,CAACE,IAAI,EAAC,KAAiBH,OAAdA,IAAII,OAAO,EAAmD,OAAhDJ,IAAIH,KAAK,GAAG,AAAC,WAA4B,OAAlBG,IAAIH,KAAK,CAACJ,OAAO,IAAK;;YACjJ;YACAR,QAAQC,GAAG,CAAC;YACZD,QAAQC,GAAG,CAAC,AAAC,GAAUmB,OAARpC,MAAK,KAAmC,OAAhCoC,IAAAA,0BAAe,EAACvB,MAAMwB,IAAI,CAAC;YAClDrB,QAAQC,GAAG,CAAC,AAAC,GAAkBM,OAAhBS,kBAAO,CAACE,IAAI,EAAC,KAAkC,OAA/BX,QAAQR,MAAM,GAAGU,OAAOV,MAAM,EAAC;YAC9D,IAAIU,OAAOV,MAAM,EAAEC,QAAQC,GAAG,CAAC,AAAC,GAAmBQ,OAAjBO,kBAAO,CAACC,KAAK,EAAC,KAAiB,OAAdR,OAAOV,MAAM,EAAC;QACnE;QACAG,IAAAA,aAAI,EAACI,OAAOG,OAAOV,MAAM,GAAGjB,aAAa;IAC3C;AACF"}
|
package/dist/cjs/constants.d.cts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const storagePath:
|
|
1
|
+
export declare const storagePath: string;
|
package/dist/cjs/constants.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const storagePath:
|
|
1
|
+
export declare const storagePath: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/constants.ts"],"sourcesContent":["import homedir from 'homedir-polyfill';\nimport path from 'path';\n\nconst home = homedir();\nexport const storagePath = path.join(home, '.nvu');\n"],"names":["storagePath","home","homedir","path","join"],"mappings":";;;;+BAIaA;;;eAAAA;;;sEAJO;2DACH;;;;;;AAEjB,IAAMC,OAAOC,IAAAA,wBAAO;AACb,IAAMF,cAAcG,aAAI,CAACC,IAAI,CAACH,MAAM"}
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/constants.ts"],"sourcesContent":["import homedir from 'homedir-polyfill';\nimport path from 'path';\n\nconst home = homedir();\nexport const storagePath = path.join(home, '.nvu') as string;\n"],"names":["storagePath","home","homedir","path","join"],"mappings":";;;;+BAIaA;;;eAAAA;;;sEAJO;2DACH;;;;;;AAEjB,IAAMC,OAAOC,IAAAA,wBAAO;AACb,IAAMF,cAAcG,aAAI,CAACC,IAAI,CAACH,MAAM"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -23,7 +23,7 @@ function nodeVersionUse(versionExpression, command, args, options, callback) {
|
|
|
23
23
|
if (typeof callback === 'function') return (0, _workerts.default)(versionExpression, command, args, options, callback);
|
|
24
24
|
return new Promise(function(resolve, reject) {
|
|
25
25
|
return (0, _workerts.default)(versionExpression, command, args, options, function(err, result) {
|
|
26
|
-
|
|
26
|
+
err ? reject(err) : resolve(result);
|
|
27
27
|
});
|
|
28
28
|
});
|
|
29
29
|
}
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/index.ts"],"sourcesContent":["import type { UseCallback, UseOptions, UseResult } from './types.ts';\nimport worker from './worker.ts';\n\nexport type * from './types.ts';\n\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[]): Promise<UseResult[]>;\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], options: UseOptions): Promise<UseResult[]>;\n\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], callback: UseCallback): undefined;\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], options: UseOptions, callback: UseCallback): undefined;\n\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], options?: UseOptions | UseCallback, callback?: UseCallback): undefined | Promise<UseResult[]> {\n if (typeof options === 'function') {\n callback = options as UseCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(versionExpression, command, args, options, callback) as undefined;\n return new Promise((resolve, reject)
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/index.ts"],"sourcesContent":["import type { UseCallback, UseOptions, UseResult } from './types.ts';\nimport worker from './worker.ts';\n\nexport type * from './types.ts';\n\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[]): Promise<UseResult[]>;\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], options: UseOptions): Promise<UseResult[]>;\n\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], callback: UseCallback): undefined;\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], options: UseOptions, callback: UseCallback): undefined;\n\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], options?: UseOptions | UseCallback, callback?: UseCallback): undefined | Promise<UseResult[]> {\n if (typeof options === 'function') {\n callback = options as UseCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(versionExpression, command, args, options, callback) as undefined;\n return new Promise((resolve, reject) =>\n worker(versionExpression, command, args, options, (err, result) => {\n err ? reject(err) : resolve(result);\n })\n );\n}\n"],"names":["nodeVersionUse","versionExpression","command","args","options","callback","worker","Promise","resolve","reject","err","result"],"mappings":";;;;+BAWA;;;eAAwBA;;;+DAVL;;;;;;AAUJ,SAASA,eAAeC,iBAAyB,EAAEC,OAAe,EAAEC,IAAc,EAAEC,OAAkC,EAAEC,QAAsB;IAC3J,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IACAA,UAAUA,WAAW,CAAC;IAEtB,IAAI,OAAOC,aAAa,YAAY,OAAOC,IAAAA,iBAAM,EAACL,mBAAmBC,SAASC,MAAMC,SAASC;IAC7F,OAAO,IAAIE,QAAQ,SAACC,SAASC;eAC3BH,IAAAA,iBAAM,EAACL,mBAAmBC,SAASC,MAAMC,SAAS,SAACM,KAAKC;YACtDD,MAAMD,OAAOC,OAAOF,QAAQG;QAC9B;;AAEJ"}
|
package/dist/cjs/types.d.cts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SpawnOptions, SpawnResult } from 'cross-spawn-cb';
|
|
2
|
-
import type {
|
|
2
|
+
import type { VersionOptions } from 'node-resolve-versions';
|
|
3
|
+
import type { InstallOptions, InstallResult } from 'node-version-install';
|
|
3
4
|
export interface UseResult {
|
|
4
5
|
install: InstallResult;
|
|
5
6
|
command: string;
|
|
@@ -10,9 +11,12 @@ export interface UseResult {
|
|
|
10
11
|
export interface UseError extends Error {
|
|
11
12
|
results: UseResult[] | undefined;
|
|
12
13
|
}
|
|
13
|
-
export interface
|
|
14
|
+
export interface Options {
|
|
14
15
|
range?: string;
|
|
15
16
|
concurrency?: number;
|
|
16
17
|
sort?: number;
|
|
18
|
+
streaming?: boolean;
|
|
19
|
+
expanded?: boolean;
|
|
17
20
|
}
|
|
18
|
-
export type
|
|
21
|
+
export type UseOptions = Options | InstallOptions | VersionOptions | SpawnOptions;
|
|
22
|
+
export type UseCallback = (err?: UseError | Error, results?: UseResult[]) => undefined;
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SpawnOptions, SpawnResult } from 'cross-spawn-cb';
|
|
2
|
-
import type {
|
|
2
|
+
import type { VersionOptions } from 'node-resolve-versions';
|
|
3
|
+
import type { InstallOptions, InstallResult } from 'node-version-install';
|
|
3
4
|
export interface UseResult {
|
|
4
5
|
install: InstallResult;
|
|
5
6
|
command: string;
|
|
@@ -10,9 +11,12 @@ export interface UseResult {
|
|
|
10
11
|
export interface UseError extends Error {
|
|
11
12
|
results: UseResult[] | undefined;
|
|
12
13
|
}
|
|
13
|
-
export interface
|
|
14
|
+
export interface Options {
|
|
14
15
|
range?: string;
|
|
15
16
|
concurrency?: number;
|
|
16
17
|
sort?: number;
|
|
18
|
+
streaming?: boolean;
|
|
19
|
+
expanded?: boolean;
|
|
17
20
|
}
|
|
18
|
-
export type
|
|
21
|
+
export type UseOptions = Options | InstallOptions | VersionOptions | SpawnOptions;
|
|
22
|
+
export type UseCallback = (err?: UseError | Error, results?: UseResult[]) => undefined;
|
package/dist/cjs/worker.d.cts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { UseCallback, UseOptions } from './types.ts';
|
|
2
|
+
export default function worker(versionExpression: string, command: string, args: string[], options: UseOptions, callback: UseCallback): undefined;
|
package/dist/cjs/worker.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { UseCallback, UseOptions } from './types.ts';
|
|
2
|
+
export default function worker(versionExpression: string, command: string, args: string[], options: UseOptions, callback: UseCallback): undefined;
|
package/dist/cjs/worker.js
CHANGED
|
@@ -51,11 +51,18 @@ function _object_spread(target) {
|
|
|
51
51
|
}
|
|
52
52
|
function worker(versionExpression, command, args, options, callback) {
|
|
53
53
|
(0, _noderesolveversions.default)(versionExpression, options, function(err, versions) {
|
|
54
|
-
if (err)
|
|
55
|
-
|
|
54
|
+
if (err) {
|
|
55
|
+
callback(err);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
if (!versions.length) {
|
|
59
|
+
callback(new Error("No versions found from expression: ".concat(versionExpression)));
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
56
62
|
var installOptions = _object_spread({
|
|
57
63
|
storagePath: _constantsts.storagePath
|
|
58
64
|
}, options);
|
|
65
|
+
var streamingOptions = options;
|
|
59
66
|
var results = [];
|
|
60
67
|
var queue = new _queuecb.default(1);
|
|
61
68
|
versions.forEach(function(version) {
|
|
@@ -89,9 +96,9 @@ function worker(versionExpression, command, args, options, callback) {
|
|
|
89
96
|
var spawnOptions = (0, _nodeversionutils.spawnOptions)(install.installPath, options);
|
|
90
97
|
var prefix = install.version;
|
|
91
98
|
if (versions.length < 2) return (0, _crossspawncb.default)(command, args, spawnOptions, next);
|
|
92
|
-
if (_spawnterm.default && !
|
|
99
|
+
if (_spawnterm.default && !streamingOptions.streaming) (0, _spawnterm.default)(command, args, spawnOptions, {
|
|
93
100
|
group: prefix,
|
|
94
|
-
expanded:
|
|
101
|
+
expanded: streamingOptions.expanded
|
|
95
102
|
}, next);
|
|
96
103
|
else (0, _spawnstreaming.default)(command, args, spawnOptions, {
|
|
97
104
|
prefix: prefix
|
package/dist/cjs/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/worker.ts"],"sourcesContent":["import spawn from 'cross-spawn-cb';\nimport resolveVersions from 'node-resolve-versions';\nimport installVersion from 'node-version-install';\nimport { spawnOptions as createSpawnOptions } from 'node-version-utils';\nimport Queue from 'queue-cb';\nimport spawnStreaming from 'spawn-streaming';\nimport spawnTerm from 'spawn-term';\nimport { storagePath } from './constants.ts';\n\nimport type { UseResult } from './types.ts';\n\nexport default function worker(versionExpression, command, args, options, callback) {\n resolveVersions(versionExpression, options, (err, versions) => {\n if (err)
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/worker.ts"],"sourcesContent":["import spawn, { type SpawnOptions } from 'cross-spawn-cb';\nimport resolveVersions, { type VersionOptions } from 'node-resolve-versions';\nimport installVersion from 'node-version-install';\nimport { spawnOptions as createSpawnOptions } from 'node-version-utils';\nimport Queue from 'queue-cb';\nimport spawnStreaming from 'spawn-streaming';\nimport spawnTerm from 'spawn-term';\nimport { storagePath } from './constants.ts';\n\nimport type { Options, UseCallback, UseOptions, UseResult } from './types.ts';\n\nexport default function worker(versionExpression: string, command: string, args: string[], options: UseOptions, callback: UseCallback): undefined {\n resolveVersions(versionExpression, options as VersionOptions, (err?: Error, versions?) => {\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 installOptions = { storagePath, ...options };\n const streamingOptions = options as Options;\n const results: UseResult[] = [];\n const queue = new Queue(1);\n versions.forEach((version: string) =>\n queue.defer((cb) => {\n installVersion(version, installOptions, (_err, installs) => {\n const install = installs && installs.length === 1 ? installs[0] : null;\n if (!install) {\n results.push({ install, command, version, error: new Error(`Unexpected version results for version ${version}. Install ${JSON.stringify(installs)}`), result: null });\n return callback();\n }\n const spawnOptions = createSpawnOptions(install.installPath, options as SpawnOptions);\n const prefix = install.version;\n\n function next(err?, res?): undefined {\n if (err && err.message.indexOf('ExperimentalWarning') >= 0) {\n res = err;\n err = null;\n }\n results.push({ install, command, version, error: err, result: res });\n cb();\n }\n\n if (versions.length < 2) return spawn(command, args, spawnOptions, next);\n if (spawnTerm && !streamingOptions.streaming) spawnTerm(command, args, spawnOptions, { group: prefix, expanded: streamingOptions.expanded }, next);\n else spawnStreaming(command, args, spawnOptions, { prefix }, next);\n });\n })\n );\n queue.await((err) => {\n err ? callback(err) : callback(null, results);\n });\n });\n}\n"],"names":["worker","versionExpression","command","args","options","callback","resolveVersions","err","versions","length","Error","installOptions","storagePath","streamingOptions","results","queue","Queue","forEach","version","defer","cb","installVersion","_err","installs","next","res","message","indexOf","push","install","error","result","JSON","stringify","spawnOptions","createSpawnOptions","installPath","prefix","spawn","spawnTerm","streaming","group","expanded","spawnStreaming","await"],"mappings":";;;;+BAWA;;;eAAwBA;;;mEAXiB;0EACY;yEAC1B;gCACwB;8DACjC;qEACS;gEACL;2BACM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIb,SAASA,OAAOC,iBAAyB,EAAEC,OAAe,EAAEC,IAAc,EAAEC,OAAmB,EAAEC,QAAqB;IACnIC,IAAAA,4BAAe,EAACL,mBAAmBG,SAA2B,SAACG,KAAaC;QAC1E,IAAID,KAAK;YACPF,SAASE;YACT;QACF;QACA,IAAI,CAACC,SAASC,MAAM,EAAE;YACpBJ,SAAS,IAAIK,MAAM,AAAC,sCAAuD,OAAlBT;YACzD;QACF;QAEA,IAAMU,iBAAiB;YAAEC,aAAAA,wBAAW;WAAKR;QACzC,IAAMS,mBAAmBT;QACzB,IAAMU,UAAuB,EAAE;QAC/B,IAAMC,QAAQ,IAAIC,gBAAK,CAAC;QACxBR,SAASS,OAAO,CAAC,SAACC;mBAChBH,MAAMI,KAAK,CAAC,SAACC;gBACXC,IAAAA,2BAAc,EAACH,SAASP,gBAAgB,SAACW,MAAMC;wBASpCC,OAAT,SAASA,KAAKjB,GAAI,EAAEkB,GAAI;wBACtB,IAAIlB,OAAOA,IAAImB,OAAO,CAACC,OAAO,CAAC,0BAA0B,GAAG;4BAC1DF,MAAMlB;4BACNA,MAAM;wBACR;wBACAO,QAAQc,IAAI,CAAC;4BAAEC,SAAAA;4BAAS3B,SAAAA;4BAASgB,SAAAA;4BAASY,OAAOvB;4BAAKwB,QAAQN;wBAAI;wBAClEL;oBACF;oBAfA,IAAMS,UAAUN,YAAYA,SAASd,MAAM,KAAK,IAAIc,QAAQ,CAAC,EAAE,GAAG;oBAClE,IAAI,CAACM,SAAS;wBACZf,QAAQc,IAAI,CAAC;4BAAEC,SAAAA;4BAAS3B,SAAAA;4BAASgB,SAAAA;4BAASY,OAAO,IAAIpB,MAAM,AAAC,0CAA6DsB,OAApBd,SAAQ,cAAqC,OAAzBc,KAAKC,SAAS,CAACV;4BAAcQ,QAAQ;wBAAK;wBACnK,OAAO1B;oBACT;oBACA,IAAM6B,eAAeC,IAAAA,8BAAkB,EAACN,QAAQO,WAAW,EAAEhC;oBAC7D,IAAMiC,SAASR,QAAQX,OAAO;oBAW9B,IAAIV,SAASC,MAAM,GAAG,GAAG,OAAO6B,IAAAA,qBAAK,EAACpC,SAASC,MAAM+B,cAAcV;oBACnE,IAAIe,kBAAS,IAAI,CAAC1B,iBAAiB2B,SAAS,EAAED,IAAAA,kBAAS,EAACrC,SAASC,MAAM+B,cAAc;wBAAEO,OAAOJ;wBAAQK,UAAU7B,iBAAiB6B,QAAQ;oBAAC,GAAGlB;yBACxImB,IAAAA,uBAAc,EAACzC,SAASC,MAAM+B,cAAc;wBAAEG,QAAAA;oBAAO,GAAGb;gBAC/D;YACF;;QAEFT,MAAM6B,KAAK,CAAC,SAACrC;YACXA,MAAMF,SAASE,OAAOF,SAAS,MAAMS;QACvC;IACF;AACF"}
|
package/dist/esm/cli.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: (argv:
|
|
1
|
+
declare const _default: (argv: string[], name: string) => undefined;
|
|
2
2
|
export default _default;
|
package/dist/esm/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/cli.ts"],"sourcesContent":["import exit from 'exit';\nimport getopts from 'getopts-compat';\nimport spawnTerm, { figures, formatArguments } from 'spawn-term';\nimport run from './index.ts';\nimport type { UseError, UseOptions, UseResult } from './types.ts';\n\nconst ERROR_CODE = 13;\n\nexport default (argv, name) => {\n const options = getopts(argv, {\n alias: { range: 'r', desc: 'd', expanded: 'e', streaming: 's', silent: 'si' },\n default: { range: 'major,even' },\n boolean: ['silent', 'desc', 'expanded', 'streaming'],\n stopEarly: true,\n });\n\n // define.option('-r, --range [range]', 'range type of major, minor, or patch with filters of lts, even, odd for version string expressions', 'major,even');\n // define.option('-s, --silent', 'suppress logging', false);\n options.sort = options.desc ? -1 : 1;\n\n const args = options._;\n if (args.length === 0) {\n console.log(`Missing version expression. Example usage: ${name} version command arg1 arg2`);\n return exit(ERROR_CODE);\n }\n if (args.length === 1) {\n console.log(`Missing command. Example usage: ${name} version command arg1 arg2`);\n return exit(ERROR_CODE);\n }\n\n options.stdio = 'inherit'; // pass through stdio\n return run(args[0], args[1], args.slice(2), options as unknown as UseOptions, (err: UseError, results: UseResult[]): undefined => {\n if (err && !err.results) {\n console.log(err.message);\n return exit(ERROR_CODE);\n }\n if (err) results = err.results;\n const errors = results.filter((result) => !!result.error);\n\n if (!options.silent) {\n if (!spawnTerm) {\n console.log('\\n======================');\n results.forEach((res) => console.log(`${res.error ? figures.cross : figures.tick} ${res.version}${res.error ? ` Error: ${res.error.message}` : ''}`));\n }\n console.log('\\n----------------------');\n console.log(`${name} ${formatArguments(args).join(' ')}`);\n console.log(`${figures.tick} ${results.length - errors.length} succeeded`);\n if (errors.length) console.log(`${figures.cross} ${errors.length} failed`);\n }\n exit(err || errors.length ? ERROR_CODE : 0);\n });\n};\n"],"names":["exit","getopts","spawnTerm","figures","formatArguments","run","ERROR_CODE","argv","name","options","alias","range","desc","expanded","streaming","silent","default","boolean","stopEarly","sort","args","_","length","console","log","stdio","slice","err","results","message","errors","filter","result","error","forEach","res","cross","tick","version","join"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,aAAa,iBAAiB;AACrC,OAAOC,aAAaC,OAAO,EAAEC,eAAe,QAAQ,aAAa;AACjE,OAAOC,SAAS,aAAa;AAG7B,MAAMC,aAAa;AAEnB,eAAe,CAAA,CAACC,
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/cli.ts"],"sourcesContent":["import exit from 'exit';\nimport getopts from 'getopts-compat';\nimport spawnTerm, { figures, formatArguments } from 'spawn-term';\nimport run from './index.ts';\nimport type { UseError, UseOptions, UseResult } from './types.ts';\n\nconst ERROR_CODE = 13;\n\nexport default (argv: string[], name: string): undefined => {\n const options = getopts(argv, {\n alias: { range: 'r', desc: 'd', expanded: 'e', streaming: 's', silent: 'si' },\n default: { range: 'major,even' },\n boolean: ['silent', 'desc', 'expanded', 'streaming'],\n stopEarly: true,\n });\n\n // define.option('-r, --range [range]', 'range type of major, minor, or patch with filters of lts, even, odd for version string expressions', 'major,even');\n // define.option('-s, --silent', 'suppress logging', false);\n options.sort = options.desc ? -1 : 1;\n\n const args = options._;\n if (args.length === 0) {\n console.log(`Missing version expression. Example usage: ${name} version command arg1 arg2`);\n return exit(ERROR_CODE);\n }\n if (args.length === 1) {\n console.log(`Missing command. Example usage: ${name} version command arg1 arg2`);\n return exit(ERROR_CODE);\n }\n\n options.stdio = 'inherit'; // pass through stdio\n return run(args[0], args[1], args.slice(2), options as unknown as UseOptions, (err: UseError, results: UseResult[]): undefined => {\n if (err && !err.results) {\n console.log(err.message);\n return exit(ERROR_CODE);\n }\n if (err) results = err.results;\n const errors = results.filter((result) => !!result.error);\n\n if (!options.silent) {\n if (!spawnTerm) {\n console.log('\\n======================');\n results.forEach((res) => console.log(`${res.error ? figures.cross : figures.tick} ${res.version}${res.error ? ` Error: ${res.error.message}` : ''}`));\n }\n console.log('\\n----------------------');\n console.log(`${name} ${formatArguments(args).join(' ')}`);\n console.log(`${figures.tick} ${results.length - errors.length} succeeded`);\n if (errors.length) console.log(`${figures.cross} ${errors.length} failed`);\n }\n exit(err || errors.length ? ERROR_CODE : 0);\n });\n};\n"],"names":["exit","getopts","spawnTerm","figures","formatArguments","run","ERROR_CODE","argv","name","options","alias","range","desc","expanded","streaming","silent","default","boolean","stopEarly","sort","args","_","length","console","log","stdio","slice","err","results","message","errors","filter","result","error","forEach","res","cross","tick","version","join"],"mappings":"AAAA,OAAOA,UAAU,OAAO;AACxB,OAAOC,aAAa,iBAAiB;AACrC,OAAOC,aAAaC,OAAO,EAAEC,eAAe,QAAQ,aAAa;AACjE,OAAOC,SAAS,aAAa;AAG7B,MAAMC,aAAa;AAEnB,eAAe,CAAA,CAACC,MAAgBC;IAC9B,MAAMC,UAAUR,QAAQM,MAAM;QAC5BG,OAAO;YAAEC,OAAO;YAAKC,MAAM;YAAKC,UAAU;YAAKC,WAAW;YAAKC,QAAQ;QAAK;QAC5EC,SAAS;YAAEL,OAAO;QAAa;QAC/BM,SAAS;YAAC;YAAU;YAAQ;YAAY;SAAY;QACpDC,WAAW;IACb;IAEA,4JAA4J;IAC5J,4DAA4D;IAC5DT,QAAQU,IAAI,GAAGV,QAAQG,IAAI,GAAG,CAAC,IAAI;IAEnC,MAAMQ,OAAOX,QAAQY,CAAC;IACtB,IAAID,KAAKE,MAAM,KAAK,GAAG;QACrBC,QAAQC,GAAG,CAAC,CAAC,2CAA2C,EAAEhB,KAAK,0BAA0B,CAAC;QAC1F,OAAOR,KAAKM;IACd;IACA,IAAIc,KAAKE,MAAM,KAAK,GAAG;QACrBC,QAAQC,GAAG,CAAC,CAAC,gCAAgC,EAAEhB,KAAK,0BAA0B,CAAC;QAC/E,OAAOR,KAAKM;IACd;IAEAG,QAAQgB,KAAK,GAAG,WAAW,qBAAqB;IAChD,OAAOpB,IAAIe,IAAI,CAAC,EAAE,EAAEA,IAAI,CAAC,EAAE,EAAEA,KAAKM,KAAK,CAAC,IAAIjB,SAAkC,CAACkB,KAAeC;QAC5F,IAAID,OAAO,CAACA,IAAIC,OAAO,EAAE;YACvBL,QAAQC,GAAG,CAACG,IAAIE,OAAO;YACvB,OAAO7B,KAAKM;QACd;QACA,IAAIqB,KAAKC,UAAUD,IAAIC,OAAO;QAC9B,MAAME,SAASF,QAAQG,MAAM,CAAC,CAACC,SAAW,CAAC,CAACA,OAAOC,KAAK;QAExD,IAAI,CAACxB,QAAQM,MAAM,EAAE;YACnB,IAAI,CAACb,WAAW;gBACdqB,QAAQC,GAAG,CAAC;gBACZI,QAAQM,OAAO,CAAC,CAACC,MAAQZ,QAAQC,GAAG,CAAC,GAAGW,IAAIF,KAAK,GAAG9B,QAAQiC,KAAK,GAAGjC,QAAQkC,IAAI,CAAC,CAAC,EAAEF,IAAIG,OAAO,GAAGH,IAAIF,KAAK,GAAG,CAAC,QAAQ,EAAEE,IAAIF,KAAK,CAACJ,OAAO,EAAE,GAAG,IAAI;YACrJ;YACAN,QAAQC,GAAG,CAAC;YACZD,QAAQC,GAAG,CAAC,GAAGhB,KAAK,CAAC,EAAEJ,gBAAgBgB,MAAMmB,IAAI,CAAC,MAAM;YACxDhB,QAAQC,GAAG,CAAC,GAAGrB,QAAQkC,IAAI,CAAC,CAAC,EAAET,QAAQN,MAAM,GAAGQ,OAAOR,MAAM,CAAC,UAAU,CAAC;YACzE,IAAIQ,OAAOR,MAAM,EAAEC,QAAQC,GAAG,CAAC,GAAGrB,QAAQiC,KAAK,CAAC,CAAC,EAAEN,OAAOR,MAAM,CAAC,OAAO,CAAC;QAC3E;QACAtB,KAAK2B,OAAOG,OAAOR,MAAM,GAAGhB,aAAa;IAC3C;AACF,CAAA,EAAE"}
|
package/dist/esm/constants.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const storagePath:
|
|
1
|
+
export declare const storagePath: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/constants.ts"],"sourcesContent":["import homedir from 'homedir-polyfill';\nimport path from 'path';\n\nconst home = homedir();\nexport const storagePath = path.join(home, '.nvu');\n"],"names":["homedir","path","home","storagePath","join"],"mappings":"AAAA,OAAOA,aAAa,mBAAmB;AACvC,OAAOC,UAAU,OAAO;AAExB,MAAMC,OAAOF;AACb,OAAO,MAAMG,cAAcF,KAAKG,IAAI,CAACF,MAAM,
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/constants.ts"],"sourcesContent":["import homedir from 'homedir-polyfill';\nimport path from 'path';\n\nconst home = homedir();\nexport const storagePath = path.join(home, '.nvu') as string;\n"],"names":["homedir","path","home","storagePath","join"],"mappings":"AAAA,OAAOA,aAAa,mBAAmB;AACvC,OAAOC,UAAU,OAAO;AAExB,MAAMC,OAAOF;AACb,OAAO,MAAMG,cAAcF,KAAKG,IAAI,CAACF,MAAM,QAAkB"}
|
package/dist/esm/index.js
CHANGED
|
@@ -6,5 +6,7 @@ export default function nodeVersionUse(versionExpression, command, args, options
|
|
|
6
6
|
}
|
|
7
7
|
options = options || {};
|
|
8
8
|
if (typeof callback === 'function') return worker(versionExpression, command, args, options, callback);
|
|
9
|
-
return new Promise((resolve, reject)=>worker(versionExpression, command, args, options, (err, result)=>
|
|
9
|
+
return new Promise((resolve, reject)=>worker(versionExpression, command, args, options, (err, result)=>{
|
|
10
|
+
err ? reject(err) : resolve(result);
|
|
11
|
+
}));
|
|
10
12
|
}
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/index.ts"],"sourcesContent":["import type { UseCallback, UseOptions, UseResult } from './types.ts';\nimport worker from './worker.ts';\n\nexport type * from './types.ts';\n\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[]): Promise<UseResult[]>;\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], options: UseOptions): Promise<UseResult[]>;\n\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], callback: UseCallback): undefined;\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], options: UseOptions, callback: UseCallback): undefined;\n\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], options?: UseOptions | UseCallback, callback?: UseCallback): undefined | Promise<UseResult[]> {\n if (typeof options === 'function') {\n callback = options as UseCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(versionExpression, command, args, options, callback) as undefined;\n return new Promise((resolve, reject)
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/index.ts"],"sourcesContent":["import type { UseCallback, UseOptions, UseResult } from './types.ts';\nimport worker from './worker.ts';\n\nexport type * from './types.ts';\n\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[]): Promise<UseResult[]>;\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], options: UseOptions): Promise<UseResult[]>;\n\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], callback: UseCallback): undefined;\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], options: UseOptions, callback: UseCallback): undefined;\n\nexport default function nodeVersionUse(versionExpression: string, command: string, args: string[], options?: UseOptions | UseCallback, callback?: UseCallback): undefined | Promise<UseResult[]> {\n if (typeof options === 'function') {\n callback = options as UseCallback;\n options = {};\n }\n options = options || {};\n\n if (typeof callback === 'function') return worker(versionExpression, command, args, options, callback) as undefined;\n return new Promise((resolve, reject) =>\n worker(versionExpression, command, args, options, (err, result) => {\n err ? reject(err) : resolve(result);\n })\n );\n}\n"],"names":["worker","nodeVersionUse","versionExpression","command","args","options","callback","Promise","resolve","reject","err","result"],"mappings":"AACA,OAAOA,YAAY,cAAc;AAUjC,eAAe,SAASC,eAAeC,iBAAyB,EAAEC,OAAe,EAAEC,IAAc,EAAEC,OAAkC,EAAEC,QAAsB;IAC3J,IAAI,OAAOD,YAAY,YAAY;QACjCC,WAAWD;QACXA,UAAU,CAAC;IACb;IACAA,UAAUA,WAAW,CAAC;IAEtB,IAAI,OAAOC,aAAa,YAAY,OAAON,OAAOE,mBAAmBC,SAASC,MAAMC,SAASC;IAC7F,OAAO,IAAIC,QAAQ,CAACC,SAASC,SAC3BT,OAAOE,mBAAmBC,SAASC,MAAMC,SAAS,CAACK,KAAKC;YACtDD,MAAMD,OAAOC,OAAOF,QAAQG;QAC9B;AAEJ"}
|
package/dist/esm/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { SpawnOptions, SpawnResult } from 'cross-spawn-cb';
|
|
2
|
-
import type {
|
|
2
|
+
import type { VersionOptions } from 'node-resolve-versions';
|
|
3
|
+
import type { InstallOptions, InstallResult } from 'node-version-install';
|
|
3
4
|
export interface UseResult {
|
|
4
5
|
install: InstallResult;
|
|
5
6
|
command: string;
|
|
@@ -10,9 +11,12 @@ export interface UseResult {
|
|
|
10
11
|
export interface UseError extends Error {
|
|
11
12
|
results: UseResult[] | undefined;
|
|
12
13
|
}
|
|
13
|
-
export interface
|
|
14
|
+
export interface Options {
|
|
14
15
|
range?: string;
|
|
15
16
|
concurrency?: number;
|
|
16
17
|
sort?: number;
|
|
18
|
+
streaming?: boolean;
|
|
19
|
+
expanded?: boolean;
|
|
17
20
|
}
|
|
18
|
-
export type
|
|
21
|
+
export type UseOptions = Options | InstallOptions | VersionOptions | SpawnOptions;
|
|
22
|
+
export type UseCallback = (err?: UseError | Error, results?: UseResult[]) => undefined;
|
package/dist/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/types.ts"],"sourcesContent":["import type { SpawnOptions, SpawnResult } from 'cross-spawn-cb';\nimport type { InstallResult } from 'node-version-install';\n\nexport interface UseResult {\n install: InstallResult;\n command: string;\n version: string;\n result?: SpawnResult;\n error?: Error;\n}\n\nexport interface UseError extends Error {\n results: UseResult[] | undefined;\n}\n\nexport interface
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/types.ts"],"sourcesContent":["import type { SpawnOptions, SpawnResult } from 'cross-spawn-cb';\nimport type { VersionOptions } from 'node-resolve-versions';\nimport type { InstallOptions, InstallResult } from 'node-version-install';\n\nexport interface UseResult {\n install: InstallResult;\n command: string;\n version: string;\n result?: SpawnResult;\n error?: Error;\n}\n\nexport interface UseError extends Error {\n results: UseResult[] | undefined;\n}\n\nexport interface Options {\n range?: string;\n concurrency?: number;\n sort?: number;\n streaming?: boolean;\n expanded?: boolean;\n}\nexport type UseOptions = Options | InstallOptions | VersionOptions | SpawnOptions;\n\nexport type UseCallback = (err?: UseError | Error, results?: UseResult[]) => undefined;\n"],"names":[],"mappings":"AAyBA,WAAuF"}
|
package/dist/esm/worker.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
import type { UseCallback, UseOptions } from './types.ts';
|
|
2
|
+
export default function worker(versionExpression: string, command: string, args: string[], options: UseOptions, callback: UseCallback): undefined;
|
package/dist/esm/worker.js
CHANGED
|
@@ -8,12 +8,19 @@ import spawnTerm from 'spawn-term';
|
|
|
8
8
|
import { storagePath } from './constants.js';
|
|
9
9
|
export default function worker(versionExpression, command, args, options, callback) {
|
|
10
10
|
resolveVersions(versionExpression, options, (err, versions)=>{
|
|
11
|
-
if (err)
|
|
12
|
-
|
|
11
|
+
if (err) {
|
|
12
|
+
callback(err);
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (!versions.length) {
|
|
16
|
+
callback(new Error(`No versions found from expression: ${versionExpression}`));
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
13
19
|
const installOptions = {
|
|
14
20
|
storagePath,
|
|
15
21
|
...options
|
|
16
22
|
};
|
|
23
|
+
const streamingOptions = options;
|
|
17
24
|
const results = [];
|
|
18
25
|
const queue = new Queue(1);
|
|
19
26
|
versions.forEach((version)=>queue.defer((cb)=>{
|
|
@@ -46,9 +53,9 @@ export default function worker(versionExpression, command, args, options, callba
|
|
|
46
53
|
cb();
|
|
47
54
|
}
|
|
48
55
|
if (versions.length < 2) return spawn(command, args, spawnOptions, next);
|
|
49
|
-
if (spawnTerm && !
|
|
56
|
+
if (spawnTerm && !streamingOptions.streaming) spawnTerm(command, args, spawnOptions, {
|
|
50
57
|
group: prefix,
|
|
51
|
-
expanded:
|
|
58
|
+
expanded: streamingOptions.expanded
|
|
52
59
|
}, next);
|
|
53
60
|
else spawnStreaming(command, args, spawnOptions, {
|
|
54
61
|
prefix
|
package/dist/esm/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/worker.ts"],"sourcesContent":["import spawn from 'cross-spawn-cb';\nimport resolveVersions from 'node-resolve-versions';\nimport installVersion from 'node-version-install';\nimport { spawnOptions as createSpawnOptions } from 'node-version-utils';\nimport Queue from 'queue-cb';\nimport spawnStreaming from 'spawn-streaming';\nimport spawnTerm from 'spawn-term';\nimport { storagePath } from './constants.ts';\n\nimport type { UseResult } from './types.ts';\n\nexport default function worker(versionExpression, command, args, options, callback) {\n resolveVersions(versionExpression, options, (err, versions) => {\n if (err)
|
|
1
|
+
{"version":3,"sources":["/Users/kevin/Dev/OpenSource/node-version/node-version-use/src/worker.ts"],"sourcesContent":["import spawn, { type SpawnOptions } from 'cross-spawn-cb';\nimport resolveVersions, { type VersionOptions } from 'node-resolve-versions';\nimport installVersion from 'node-version-install';\nimport { spawnOptions as createSpawnOptions } from 'node-version-utils';\nimport Queue from 'queue-cb';\nimport spawnStreaming from 'spawn-streaming';\nimport spawnTerm from 'spawn-term';\nimport { storagePath } from './constants.ts';\n\nimport type { Options, UseCallback, UseOptions, UseResult } from './types.ts';\n\nexport default function worker(versionExpression: string, command: string, args: string[], options: UseOptions, callback: UseCallback): undefined {\n resolveVersions(versionExpression, options as VersionOptions, (err?: Error, versions?) => {\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 installOptions = { storagePath, ...options };\n const streamingOptions = options as Options;\n const results: UseResult[] = [];\n const queue = new Queue(1);\n versions.forEach((version: string) =>\n queue.defer((cb) => {\n installVersion(version, installOptions, (_err, installs) => {\n const install = installs && installs.length === 1 ? installs[0] : null;\n if (!install) {\n results.push({ install, command, version, error: new Error(`Unexpected version results for version ${version}. Install ${JSON.stringify(installs)}`), result: null });\n return callback();\n }\n const spawnOptions = createSpawnOptions(install.installPath, options as SpawnOptions);\n const prefix = install.version;\n\n function next(err?, res?): undefined {\n if (err && err.message.indexOf('ExperimentalWarning') >= 0) {\n res = err;\n err = null;\n }\n results.push({ install, command, version, error: err, result: res });\n cb();\n }\n\n if (versions.length < 2) return spawn(command, args, spawnOptions, next);\n if (spawnTerm && !streamingOptions.streaming) spawnTerm(command, args, spawnOptions, { group: prefix, expanded: streamingOptions.expanded }, next);\n else spawnStreaming(command, args, spawnOptions, { prefix }, next);\n });\n })\n );\n queue.await((err) => {\n err ? callback(err) : callback(null, results);\n });\n });\n}\n"],"names":["spawn","resolveVersions","installVersion","spawnOptions","createSpawnOptions","Queue","spawnStreaming","spawnTerm","storagePath","worker","versionExpression","command","args","options","callback","err","versions","length","Error","installOptions","streamingOptions","results","queue","forEach","version","defer","cb","_err","installs","install","push","error","JSON","stringify","result","installPath","prefix","next","res","message","indexOf","streaming","group","expanded","await"],"mappings":"AAAA,OAAOA,WAAkC,iBAAiB;AAC1D,OAAOC,qBAA8C,wBAAwB;AAC7E,OAAOC,oBAAoB,uBAAuB;AAClD,SAASC,gBAAgBC,kBAAkB,QAAQ,qBAAqB;AACxE,OAAOC,WAAW,WAAW;AAC7B,OAAOC,oBAAoB,kBAAkB;AAC7C,OAAOC,eAAe,aAAa;AACnC,SAASC,WAAW,QAAQ,iBAAiB;AAI7C,eAAe,SAASC,OAAOC,iBAAyB,EAAEC,OAAe,EAAEC,IAAc,EAAEC,OAAmB,EAAEC,QAAqB;IACnIb,gBAAgBS,mBAAmBG,SAA2B,CAACE,KAAaC;QAC1E,IAAID,KAAK;YACPD,SAASC;YACT;QACF;QACA,IAAI,CAACC,SAASC,MAAM,EAAE;YACpBH,SAAS,IAAII,MAAM,CAAC,mCAAmC,EAAER,mBAAmB;YAC5E;QACF;QAEA,MAAMS,iBAAiB;YAAEX;YAAa,GAAGK,OAAO;QAAC;QACjD,MAAMO,mBAAmBP;QACzB,MAAMQ,UAAuB,EAAE;QAC/B,MAAMC,QAAQ,IAAIjB,MAAM;QACxBW,SAASO,OAAO,CAAC,CAACC,UAChBF,MAAMG,KAAK,CAAC,CAACC;gBACXxB,eAAesB,SAASL,gBAAgB,CAACQ,MAAMC;oBAC7C,MAAMC,UAAUD,YAAYA,SAASX,MAAM,KAAK,IAAIW,QAAQ,CAAC,EAAE,GAAG;oBAClE,IAAI,CAACC,SAAS;wBACZR,QAAQS,IAAI,CAAC;4BAAED;4BAASlB;4BAASa;4BAASO,OAAO,IAAIb,MAAM,CAAC,uCAAuC,EAAEM,QAAQ,UAAU,EAAEQ,KAAKC,SAAS,CAACL,WAAW;4BAAGM,QAAQ;wBAAK;wBACnK,OAAOpB;oBACT;oBACA,MAAMX,eAAeC,mBAAmByB,QAAQM,WAAW,EAAEtB;oBAC7D,MAAMuB,SAASP,QAAQL,OAAO;oBAE9B,SAASa,KAAKtB,GAAI,EAAEuB,GAAI;wBACtB,IAAIvB,OAAOA,IAAIwB,OAAO,CAACC,OAAO,CAAC,0BAA0B,GAAG;4BAC1DF,MAAMvB;4BACNA,MAAM;wBACR;wBACAM,QAAQS,IAAI,CAAC;4BAAED;4BAASlB;4BAASa;4BAASO,OAAOhB;4BAAKmB,QAAQI;wBAAI;wBAClEZ;oBACF;oBAEA,IAAIV,SAASC,MAAM,GAAG,GAAG,OAAOjB,MAAMW,SAASC,MAAMT,cAAckC;oBACnE,IAAI9B,aAAa,CAACa,iBAAiBqB,SAAS,EAAElC,UAAUI,SAASC,MAAMT,cAAc;wBAAEuC,OAAON;wBAAQO,UAAUvB,iBAAiBuB,QAAQ;oBAAC,GAAGN;yBACxI/B,eAAeK,SAASC,MAAMT,cAAc;wBAAEiC;oBAAO,GAAGC;gBAC/D;YACF;QAEFf,MAAMsB,KAAK,CAAC,CAAC7B;YACXA,MAAMD,SAASC,OAAOD,SAAS,MAAMO;QACvC;IACF;AACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-version-use",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.3",
|
|
4
4
|
"description": "Cross-platform solution for using multiple versions of node. Useful for compatibility testing",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"node",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"homedir-polyfill": "^1.0.3",
|
|
48
48
|
"node-resolve-versions": "^1.0.52",
|
|
49
49
|
"node-version-install": "^1.2.16",
|
|
50
|
-
"node-version-utils": "^1.
|
|
50
|
+
"node-version-utils": "^1.3.0",
|
|
51
51
|
"queue-cb": "^1.5.5",
|
|
52
52
|
"spawn-streaming": "^1.0.46",
|
|
53
53
|
"spawn-term": "^1.0.12"
|