clean-package
Version:
Removes and replaces configuration keys in 'package.json' before creating an NPM package.
2 lines • 1.76 kB
JavaScript
/*! clean-package/cli v2.2.0 | (c) roydukkey | https://roydukkey@github.com/roydukkey/clean-package/blob/v2.2.0/LICENSE */
;var e=require("./main");const s="restore"===process.argv[2]||"r"===process.argv[2];let r=s?"restore":"clean";const c={},a=process.argv.slice(2+Number(s));let t;a.length&&(a[0].startsWith("-")||(c.backupPath=a.shift()),a[0]&&!a[0].startsWith("-")&&([c.sourcePath,c.backupPath]=[c.backupPath,a.shift()])),a.forEach((e=>{if(e.startsWith("-")){const a=s?"@restore":"";switch(e+a){case"-i":case"--indent":t="indent";break;case"-rm":case"--remove":t="remove",c[t]=[];break;case"--remove-add":t="removeAdd",c[t]=[];break;case"-r":case"--replace":t="replace";break;case"--replace-add":t="replaceAdd";break;case`-c${a}`:case`--config${a}`:t="config";break;case`-e${a}`:case`--extends${a}`:t="extends",c[t]=[];break;case`-v${a}`:case`--version${a}`:r="version";case`--print-config${a}`:"version"!==r&&(r="show-config");default:t=void 0}}else if(t)switch(t){case"config":c[t]=e,t=void 0;break;case"extends":case"remove":case"removeAdd":c[t]?.push(e);break;case"indent":c[t]=Number(e)||e,t=void 0;break;case"replace":case"replaceAdd":{const s=e.indexOf("=");if(s>=1&&s<e.length-1){const r=e.substring(0,s);e=e.substring(s+1);const a=c[t]??{};a[r]=Number(e)||"true"===e||"false"!==e&&("null"===e?null:e),c[t]=a}}}}));const o=Object.keys(c).length?c:void 0,n=r;if("version"===n)console.log(e.version());else{let s;if(o){const{remove:e,removeAdd:r,replace:c,replaceAdd:a}=o;s=o,s.remove=s=>{var c;return e&&(s=e),r&&(c=s.concat(r),s=[...new Set(c)]),s},s.replace=e=>(c&&(e=c),a&&(e={...e,...a}),e)}const[r,c]=e.load(o?.sourcePath,o?.config??s);"restore"===n?e.restore(c):"show-config"===n?console.log(JSON.stringify(c,null,2)):e.clean(r,c)}