@sliit-foss/automatic-versioning
Version:
A script which will automatically increment your app package version in accordance with conventional commits
7 lines (4 loc) • 3.55 kB
JavaScript
var B=Object.create;var d=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var D=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty;var w=(n,i)=>d(n,"name",{value:i,configurable:!0});var E=(n,i)=>{for(var t in i)d(n,t,{get:i[t],enumerable:!0})},b=(n,i,t,a)=>{if(i&&typeof i=="object"||typeof i=="function")for(let e of x(i))!A.call(n,e)&&e!==t&&d(n,e,{get:()=>i[e],enumerable:!(a=N(i,e))||a.enumerable});return n};var H=(n,i,t)=>(t=n!=null?B(D(n)):{},b(i||!n||!n.__esModule?d(t,"default",{value:n,enumerable:!0}):t,n)),I=n=>b(d({},"__esModule",{value:!0}),n);var q={};E(q,{default:()=>U});module.exports=I(q);var l=H(require("../utils/runner"));const $=w(async(n,i,t=1)=>{var h,u,m,g,p,f;const a=await(0,l.default)(`git show -s --format='%s' -${t} ./`),o=(h=((a==null?void 0:a.split(`
`))||[]).pop())==null?void 0:h.trim().replace(/^'|'$/g,"");let s=o!=null&&o.includes(":")?(g=(m=(u=o==null?void 0:o.split(":"))==null?void 0:u[0])==null?void 0:m.trim())==null?void 0:g.toLowerCase():"";s!=null&&s.includes("https")&&(s=""),s!=null&&s.includes("(")&&(s=(f=(p=s.split("("))==null?void 0:p[0])==null?void 0:f.trim());const v=o==null?void 0:o.includes("--no-bump");return s&&!i.includes(s)||!n?{commitPrefix:s,commitMessage:o,noBump:v}:$(n,i,t+1)},"getCommitPrefix"),y=w(async()=>{var n,i,t,a,e,o;return(o=(e=(a=(t=(i=(n=await(0,l.default)("npm version"))==null?void 0:n.split(","))==null?void 0:i[0])==null?void 0:t.split(":"))==null?void 0:a[1])==null?void 0:e.replace(/'/g,""))==null?void 0:o.trim()},"getCurrentVersion"),L=w((n,i)=>{if(i)return y();try{return(0,l.default)(`npm view ${n} version`)}catch{return y()}},"getPackageVersion"),S=w((n,i,t=!1,a,e,o,s,v)=>(0,l.default)("git log -p -1 -- ./").then(async h=>{var u,m,g;if(h){console.info(`Diff found, running versioning for ${n}`.green);const{commitMessage:p,commitPrefix:f,noBump:k}=await $(t,v);if(k)console.info("No bump found in commit message, skipping versioning and editing commit message".yellow),await(0,l.default)(`git commit --amend -m "${p==null?void 0:p.replace(/--no-bump/g,"")}"`).then(()=>console.info("Successfully edited commit message".green));else{let r;if(["feature!","feat!","f!","fix!","patch!"].includes(f))r="major";else if(["feature","feat","f"].includes(f))r="minor";else if(["fix","patch"].includes(f))r="patch";else if(["prerelease","prepatch","preminor","premajor"].includes(f))r=f;else{console.info("No suitable commit prefix found in commit message, skipping version bump".yellow);return}if((e||s)&&["major","minor","patch"].includes(r)&&(e||(e=((u=await(0,l.default)("git rev-parse --abbrev-ref HEAD"))==null?void 0:u.trim())===s),e)){e=!1;const c=await L(n,a);if(c!=null&&c.includes(o)){await(0,l.default)(`npm --workspaces-update=false --no-git-tag-version version --allow-same-version ${c}`);const[,j,C]=((g=(m=c==null?void 0:c.split("-"))==null?void 0:m[0])==null?void 0:g.split("."))??[];(r==="patch"||r==="minor"&&C==="0"||r==="major"&&j==="0")&&(e=!0)}r=e?"prerelease":`pre${r}`}await(0,l.default)(`npm --workspaces-update=false --no-git-tag-version version ${r} ${o?`--preid=${o}`:""}`).then(async()=>{if(!i){const c=`"CI: ${n} - ${r==="prerelease"?r:`${r} release`}
skip-checks: true"`;await(0,l.default)("git add .").then(async()=>{await(0,l.default)(`git commit -m ${c} --no-verify --cleanup=verbatim`).then(()=>console.info(c.green))})}})}}else console.info(`No diff found, skipping versioning for ${n}`.yellow)}),"runner");var U=S;0&&(module.exports={});
//# sourceMappingURL=default.js.map