cli-handler
Version:
A command line interface handler for the CLI
2 lines (1 loc) • 1.22 kB
JavaScript
var g=Object.defineProperty;var h=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var $=Object.prototype.hasOwnProperty;var R=(s,e)=>{for(var n in e)g(s,n,{get:e[n],enumerable:!0})},x=(s,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of v(e))!$.call(s,t)&&t!==n&&g(s,t,{get:()=>e[t],enumerable:!(r=h(e,t))||r.enumerable});return s};var b=s=>x(g({},"__esModule",{value:!0}),s);var m={};R(m,{parse:()=>F});module.exports=b(m);const c="(?<value>[^\\s]+)";function f(s,e){var r,t;const n=s.exec(e);return(r=n==null?void 0:n.groups)!=null&&r.value?(t=n==null?void 0:n.groups)==null?void 0:t.value:n&&(n[1]||!0)}function u(s,e){const n={};for(const r of s){const t=r.replace("$","");if(r.includes("$")){const o=new RegExp(`-?-${t}[=\\s]${c}`).exec(e);o&&(n[t]=o[1]||!0)}else{const o=new RegExp(`-?-${t}`).exec(e);n[r]=!!o}}return n}function p(s,e){return new RegExp(`${s} ${e?c:""}`)}const E=process.argv.slice(2).join(" ");function F(s,e=E){for(const{path:n,children:r,input:t,handler:l,flags:o}of s)if(r)for(const a of r){const i=f(p(`(${n}) (${a.path})`,a.input),e),d=a.flags?u(a.flags,e):{};i&&a.handler&&a.handler(i,d)}else{const a=f(p(`(${n})`,t),e),i=o?u(o,e):{};a&&l&&l(a,i)}}