@ycmd/helpers
Version:
LSK.js CLI Creds is the easiest way to manage GitHub / Gitlab secrets and credentials
22 lines (20 loc) • 4.64 kB
JavaScript
import j from 'yargs';
import { Err } from '@lsk4/err';
import { log, getCwdInfo, loadConfig, joinArgs } from '@ycmd/utils';
import { colorize } from '@lsk4/colors';
import { mapValues } from '@lsk4/algos';
import y, { stage, version, isDev, tryJSONparse } from '@lsk4/env';
import { readFile } from 'node:fs/promises';
var S=Object.defineProperty;var _=(a,o)=>S(a,"name",{value:o,configurable:!0});var T=_((a={})=>{let o=[];return Object.keys(a).forEach(r=>{if(r==="_"||r==="$0")return;let s=a[r];s===!0?o.push(`--${r}`):s===!1||o.push(`--${r}=${s}`);}),o},"argvToArgs");function h({commands:a}){return (o,r,s)=>{let i=a.map(f=>f.command.split(" ")[0]).filter(Boolean);s(i);}}_(h,"createOnComplete");function w(a,o){let r=a||Err.getMessage(o),s=!!a;if(r){log.fatal("");!s&&Err.getCode(o)!=="YCMD_MISSING_SCRIPT";let f=Err.getCode(o);f==="err_unknown"&&(f=""),f===r&&(f="");let t=o?.proc?.exitCode;f&&log.fatal("[Code] ",f),r&&t!==r&&log.fatal("[Message] ",r),o?.data&&Object.entries(o.data).forEach(([m,e])=>{log.fatal(`${m}:`,e);}),o?.cwd&&log.fatal("Cwd:",o.cwd),o?.proc?.spawnargs?log.fatal("[Command]",o.proc.spawnargs.join(" ")):o?.command&&(t&&log.fatal("[ExitCode]",t),log.fatal("[Command]",o.command)),o?.proc?.pid&&log.fatal("[PID]",o?.proc?.pid);let $=o?.stack||o?.options?.ctx?.stack;$&&(log.fatal(""),log.fatal("[Stack]"),($||[]).reverse().forEach(m=>{log.fatal(" ",m?.command),m?.filename&&log.fatal(" \u276F",m?.filename);})),log.fatal("");}o&&(log.warn("For more info add DEBUG=* before command"),log.trace(""),log.trace("\u2193\u2193\u2193\u2193\u2193\u2193\u2193\u2193\u2193\u2193\u2193 Error Message \u2193\u2193\u2193\u2193\u2193\u2193\u2193\u2193\u2193\u2193\u2193"),log.trace(""),log.trace(o),log.trace(""),log.trace("\u2191\u2191\u2191\u2191\u2191\u2191\u2191\u2191\u2191\u2191\u2191 Error Message \u2191\u2191\u2191\u2191\u2191\u2191\u2191\u2191\u2191\u2191\u2191")),s&&(console.log(""),String(this.showHelp()),console.log("")),process.exit(1);}_(w,"onFail");async function eo({name:a,argv:o=process.argv.slice(2),commands:r=[]}={}){process.ycmdStartedAt=new Date;let s=await r,i=j(o).scriptName(a||"cli").usage("Usage: $0 <command> [options]").command(s||[]).strict().demandCommand().alias("h","help").help("h").completion("completion",h({commands:s}));return i.fail(w.bind(i)),o.length===0?i.showHelp():i.parse(),i}_(eo,"createCli");var v=`
__ __ $ _____ $ __ __ $ _____
\\ \\ / / $ / ____| $ | \\/ | $ | __ \\
\\ \\_/ / $| | $ | \\ / | $ | | | |
\\ / $| | $ | |\\/| | $ | | | |
| | $| |____ $ | | | | $ | |__| |
|_| $ \\_____| $ |_| |_| $ |_____/
`,E=[["bold","red"],["bold","blue"],["bold","cyan"],["bold","yellow"]];function co({color:a=1}={}){return a?v.split(`
`).map(r=>r.split("$").map((s,i)=>s==="#"?colorize(" ",["bgYellow"]):E[i]?colorize(s.replace(/#/g,colorize(" ",["bgYellow"])),E[i]):"").join("")).join(`
`):v}_(co,"getLogo");async function lo({cmdName:a,cmdVersion:o,config:r,configPath:s,nodeBin:i,ycmdBin:f,log:t,cwd:$,cwdInfo:m}){let e=_(c=>`${c} `.padEnd(14),"pad");t(e("[Name] "),a),t(e("[Version] "),o),t(e("[nodeBin] "),i),t(e("[ycmdBin] "),f),t(e("")),t(e("[CWD] "),$),mapValues(m,(c,p)=>{t(e(`${p}`),c);}),t(e("")),t(e("[ENV] "));let g=Object.keys(y).sort().filter(c=>c!=="stage"&&c!=="version");if(t(e("stage"),stage),t(e("version"),version),g.forEach(c=>{let p=y[c];t(e(`${c}`),p);}),t(e("")),t(e("[CONFIG]"),s||"Not found, using default"),mapValues(r,(c,p)=>{Array.isArray(c)?c.forEach((u,D)=>{t(e(D?"":p),u);}):t(e(p),c);}),isDev){t(e("")),t(e("[DEBUG]"));let c=process.ycmdStartedAt?new Date().getTime()-process.ycmdStartedAt.getTime():0;c&&t(e("time"),c,"ms");}}_(lo,"printInfo");var Y=_(a=>a.split("/").reverse()[0].split(".")[0],"getCmdName"),G=_(a=>`${a.split("/").reverse().slice(2).reverse().join("/")}/package.json`,"getCmdPackageJsonPath");async function wo({cwd:a=process.cwd()}={}){let[o,r,...s]=process.argv,[i,f,t]=await Promise.all([getCwdInfo({cwd:a}),loadConfig({cwd:a,default:!0}),readFile(G(r)).then(u=>u.toString()).catch(()=>"{}")]),{path:$,config:m={}}=f,e=tryJSONparse(t),g=e?.version,c=e?.name||Y(r),p={stack:[{command:`${c} ${joinArgs(s)}`}]};return {startedAt:new Date,cwd:a,cwdInfo:i,isRoot:i.isRoot,configPath:$,config:m,log:log,ctx:p,cmdName:c,cmdVersion:g,cmdPackage:e,nodeBin:o,ycmdBin:r,args:s,argv:{unexpected:1}}}_(wo,"loadMainOptions");
export { T as argvToArgs, eo as createCli, h as createOnComplete, co as getLogo, wo as loadMainOptions, w as onFail, lo as printInfo };
//# sourceMappingURL=out.js.map
//# sourceMappingURL=index.js.map