{"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":["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;AAE7B,MAAMC,aAAa;AAEnB,eAAe,CAAA,CAACC,MAAMC;IACpB,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,SAAS,CAACkB,KAAKC;QACzD,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"}