UNPKG

@sliit-foss/automatic-versioning

Version:

A script which will automatically increment your app package version in accordance with conventional commits

8 lines (5 loc) 3.85 kB
var D=Object.create;var d=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,A=Object.prototype.hasOwnProperty;var g=(i,t)=>d(i,"name",{value:t,configurable:!0});var E=(i,t)=>{for(var s in t)d(i,s,{get:t[s],enumerable:!0})},y=(i,t,s,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of N(t))!A.call(i,n)&&n!==s&&d(i,n,{get:()=>t[n],enumerable:!(o=B(t,n))||o.enumerable});return i};var H=(i,t,s)=>(s=i!=null?D(x(i)):{},y(t||!i||!i.__esModule?d(s,"default",{value:i,enumerable:!0}):s,i)),I=i=>y(d({},"__esModule",{value:!0}),i);var q={};E(q,{default:()=>U});module.exports=I(q);var l=H(require("../utils/runner"));const b=g(async(i,t,s=1)=>{var w,f,m,u,h,p,v;const o=await(0,l.default)(`git show -s --format='%s' -${s} ./`),n=(o==null?void 0:o.split(` `))||[];n.splice(-1);const e=(f=(w=n.pop())==null?void 0:w.trim())==null?void 0:f.slice(1,-1);let r=e!=null&&e.includes(":")?(h=(u=(m=e==null?void 0:e.split(":"))==null?void 0:m[0])==null?void 0:u.trim())==null?void 0:h.toLowerCase():"";r!=null&&r.includes("https")&&(r=""),r!=null&&r.includes("(")&&(r=(v=(p=r.split("("))==null?void 0:p[0])==null?void 0:v.trim());const $=e==null?void 0:e.includes("--no-bump");return r&&!t.includes(r)||!i?{commitPrefix:r,commitMessage:e,noBump:$}:b(i,t,s+1)},"getCommitPrefix"),k=g(async()=>{var i,t,s,o,n,e;return(e=(n=(o=(s=(t=(i=await(0,l.default)("npm version"))==null?void 0:i.split(","))==null?void 0:t[0])==null?void 0:s.split(":"))==null?void 0:o[1])==null?void 0:n.replace(/'/g,""))==null?void 0:e.trim()},"getCurrentVersion"),L=g(async(i,t)=>{var s;if(t)return k();try{const o=await(0,l.default)(`npm view ${i} time`).then(n=>n.replace(/{|}|,|'/g,"").trim().split(` `).filter(e=>!e.includes("modified:")&&!e.includes("created:")));return o.sort((n,e)=>new Date(n.trim().split(" ")[1]).getTime()-new Date(e.trim().split(" ")[1]).getTime()),(s=o.pop().split(":"))==null?void 0:s[0].trim()}catch{return k()}},"getPackageVersion"),S=g((i,t,s=!1,o,n,e,r,$)=>(0,l.default)("git show --first-parent ./").then(async w=>{var f,m,u;if(w){console.info(`Diff found, running versioning for ${i}`.green);const{commitMessage:h,commitPrefix:p,noBump:v}=await b(s,$);if(v)console.info("No bump found in commit message, skipping versioning and editing commit message".yellow),await(0,l.default)(`git commit --amend -m "${h.replace(/--no-bump/g,"")}"`).then(()=>console.info("Successfully edited commit message".green));else{let a;if(["feature!","feat!","f!","fix!","patch!"].includes(p))a="major";else if(["feature","feat","f"].includes(p))a="minor";else if(["fix","patch"].includes(p))a="patch";else if(["prerelease","prepatch","preminor","premajor"].includes(p))a=p;else{console.info("No suitable commit prefix found in commit message, skipping version bump".yellow);return}if((n||r)&&["major","minor","patch"].includes(a)&&(n||(n=((f=await(0,l.default)("git rev-parse --abbrev-ref HEAD"))==null?void 0:f.trim())===r),n)){n=!1;const c=await L(i,o);if(c!=null&&c.includes(e)){await(0,l.default)(`npm --workspaces-update=false --no-git-tag-version version --allow-same-version ${c}`);const[,j,C]=((u=(m=c==null?void 0:c.split("-"))==null?void 0:m[0])==null?void 0:u.split("."))??[];(a==="patch"||a==="minor"&&C==="0"||a==="major"&&j==="0")&&(n=!0)}a=n?"prerelease":`pre${a}`}await(0,l.default)(`npm --workspaces-update=false --no-git-tag-version version ${a} ${e?`--preid=${e}`:""}`).then(async()=>{if(!t){const c=`"CI: ${i} - ${a==="prerelease"?a:`${a} 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 ${i}`.yellow)}),"runner");var U=S;0&&(module.exports={}); //# sourceMappingURL=default.js.map