node-version-use
Version:
Cross-platform solution for using multiple versions of node. Useful for compatibility testing
1 lines • 4.29 kB
Source Map (JSON)
{"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.js';\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, (err, results) => {\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":";;;;+BAOA;;;eAAA;;;2DAPiB;oEACG;iEACgC;4DACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEhB,IAAMA,aAAa;IAEnB,WAAe,SAACC,MAAMC;IACpB,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,cAAG,EAACP,IAAI,CAAC,EAAE,EAAEA,IAAI,CAAC,EAAE,EAAEA,KAAKQ,KAAK,CAAC,IAAIpB,SAAS,SAACqB,KAAKC;QACzD,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"}