UNPKG

@alessiofrittoli/node-scripts

Version:
4 lines 2.4 kB
import {execSync,execFileSync}from'child_process';import P from'fs';import N from'path';var g=()=>{let e=execSync("git remote -v",{encoding:"buffer"}).toString().split(` `),r=new Map;return e.map(s=>{var m;let[n,o]=s.split(" ");if(!n||!o)return null;let a=r.get(n)||new Map,p=a.get("urls")||new Map,c=o.split(" "),i=((m=c.at(1))==null?void 0:m.replace(/\(|\)/g,""))||"fetch",x=p.has(i)?i==="fetch"?"push":"fetch":i,u=c.at(0);if(!u)return null;p.set(x,u),a.set("name",n),a.set("urls",p),r.has(n)||r.set(n,a);}),r},h=()=>{var t,e,r;return ((r=(e=(t=execSync("git branch -rl '*/HEAD'"))==null?void 0:t.toString().split(` `).filter(Boolean).at(0))==null?void 0:e.split(" -> ").at(1))==null?void 0:r.split("/"))||[null,null]},w=()=>{var e;let[t]=h();return t?g().get(t):(e=g().entries().next().value)==null?void 0:e[1]},S=()=>execSync("git stash list").toString().split(` `).map(f).filter(Boolean),f=t=>{var o;if(!t)return null;let e=t.split(": "),r=Number(e.at(0).split("@{").pop().split("}").at(0)||"invalid");if(isNaN(r))return null;let s=(e.at(2)?e.at(1).split(" ").pop():null)||"main",n=e.at(2)||((o=e.at(1))==null?void 0:o.split(" ").pop())||null;return {index:r,branch:s,name:n}},M=t=>t.map(f),R=t=>S().find(e=>"name"in t?e.name===t.name:e.index===t.index),b=t=>execFileSync("git",["stash","pop","--index",t.toString()],{stdio:"inherit"});var v=t=>JSON.parse(execSync(`npm list --json${t?" -g":""}`).toString()),T=(t,e)=>t in(v(e).dependencies||{});var k=t=>JSON.parse(P.readFileSync(N.resolve(t,"package.json")).toString()),O=({root:t,name:e})=>{try{return !k(t).name.endsWith(e)}catch(r){throw new Error("Couldn't check if script is running in an external project.",{cause:r})}},I=t=>{let e=t.match(/-(\w+)\.\d+/);return e?e[1]:null};var E=()=>process.env.INIT_CWD||process.cwd(),K=()=>new Map(process.argv.map(t=>({value:t,isValue:!t.startsWith("-")})).map((t,e,r)=>{switch(e){case 0:return ["--executable",t.value];case 1:return ["--scriptPath",t.value];default:{let s=r[e+1];if(!t.isValue)return s!=null&&s.isValue?[t.value,s.value]:[t.value,"true"]}}}).filter(Boolean));export{f as formatStash,M as formatStashList,w as getDefaultRemote,h as getDefaultRemoteAndBranch,v as getPackage,k as getPackageJson,I as getPreReleaseTag,K as getProcessOptions,E as getProcessRoot,g as getRemotes,R as getStashBy,S as getStashList,O as isExternalPackage,T as isPackageInstalled,b as popStashByIndex};