@mindblowing/commitlint-plugin-jira-rules
Version:
A plugin that implement all jira commits messages style rules and validate commit messages
1 lines • 5.86 kB
JavaScript
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define("commitlintPluginJira",[],e):"object"==typeof exports?exports.commitlintPluginJira=e():t.commitlintPluginJira=e()}(this,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=1)}([function(t,e,n){t.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=0)}([function(t,e,n){"use strict";n.r(e);var r={};n.r(r),n.d(r,"JIRA_RULES",(function(){return o})),n.d(r,"COMMIT_TASK_STATUS_PATTERN",(function(){return i})),n.d(r,"TASK_ID_SEPARATOR",(function(){return s})),n.d(r,"UPPERCASE",(function(){return a})),n.d(r,"LOWERCASE",(function(){return u})),n.d(r,"COMMIT_DESCRIPTION_SEPARATOR",(function(){return m})),n.d(r,"COMMIT_TASK_ID_PATTERN",(function(){return c}));const o={commitStatusCase:"jira-commit-status-case",taskIdCase:"jira-task-id-case",taskIdEmpty:"jira-task-id-empty",taskIdMaxLength:"jira-task-id-max-length",taskIdMinLength:"jira-task-id-min-length",taskIdProjectKey:"jira-task-id-project-key"},i=/\[.*\]/gi,s="-",a="uppercase",u="lowercase",m="\n",c=/([A-Z]{2,}-\d+)/g;var l=t=>{const e=t.split(m).filter(Boolean)[0],n=e.match(i),r=n?n[0].replace(/\[|\]/g,""):"";return{commitTaskIds:(e.match(c)||[]).map(t=>t.trim()).filter(t=>t),commitStatus:r}};n.d(e,"commitlintJiraConstants",(function(){return r})),n.d(e,"parseCommitMessage",(function(){return l}));const f={commitlintJiraConstants:r,parseCommitMessage:l};e.default=f}]).default},function(t,e,n){"use strict";n.r(e);var r=n(0);var o=(t,e,n=9)=>{const o=t.raw;if(!o)return[!1,"Commit message should not be empty"];const i=Object(r.parseCommitMessage)(o).commitTaskIds.find(t=>t.length>n);return[!i,`${i} taskId must not be longer than ${n} characters`]};var i=(t,e,n=3)=>{const o=t.raw;if(!o)return[!1,"Commit message should not be empty"];const i=Object(r.parseCommitMessage)(o).commitTaskIds.find(t=>t.length<n);return[!i,`${i} taskId must not be shorter than ${n} characters`]};var s=t=>{const e=t.raw;return e?[Object(r.parseCommitMessage)(e).commitTaskIds.length>0,"the commit message must provide minimum one task id symbol, This format is two or more uppercase letters, followed by a hyphen and the issue number, for example: JRA-123."]:[!1,"Commit message should not be empty"]};var a=(t,e,n="uppercase")=>{const o=t.raw;if(!o)return[!1,"Commit message should not be empty"];const i=Object(r.parseCommitMessage)(o);let s="";return n===r.commitlintJiraConstants.UPPERCASE&&(s=i.commitTaskIds.find(t=>t!==t.toUpperCase())||""),n===r.commitlintJiraConstants.LOWERCASE&&(s=i.commitTaskIds.find(t=>t!==t.toLowerCase())||""),[!s,`${s} taskId must be ${n} case`]};var u=(t,e,n=r.commitlintJiraConstants.UPPERCASE)=>{const o=t.raw;if(!o)return[!1,"Commit message should not be empty"];const i=Object(r.parseCommitMessage)(o);if(!i.commitStatus)return[!0];let s=!1;return n===r.commitlintJiraConstants.UPPERCASE&&i.commitStatus===i.commitStatus.toUpperCase()&&(s=!0),n===r.commitlintJiraConstants.LOWERCASE&&i.commitStatus===i.commitStatus.toLowerCase()&&(s=!0),[s,`${i.commitStatus} commitStatus must be ${n} case`]};var m=(t,e,n)=>{const o=t.raw;if(!o)return[!1,"Commit message should not be empty"];const i=Object(r.parseCommitMessage)(o);let s=!1,a=null;return n?"string"!=typeof n&&!Array.isArray(n)&&n?[!1,"invalid rule option - jira project key should be a string or an array of strings"]:(i.commitTaskIds.forEach(t=>{let e=!1;"string"==typeof n&&(e=e||new RegExp(`^${n}`).test(t)),Array.isArray(n)&&(n.forEach(n=>{e=e||new RegExp(`^${n}`).test(t)}),e||(a=t)),e||(a=t)}),[s=null===a,`${a} taskId must start with project key ${"string"==typeof n?n:Array(n).join(" or ")}`]):[!0]};n.d(e,"commitlintPluginJira",(function(){return c}));const c={rules:{[r.commitlintJiraConstants.JIRA_RULES.taskIdEmpty]:s,[r.commitlintJiraConstants.JIRA_RULES.taskIdMinLength]:i,[r.commitlintJiraConstants.JIRA_RULES.taskIdMaxLength]:o,[r.commitlintJiraConstants.JIRA_RULES.taskIdCase]:a,[r.commitlintJiraConstants.JIRA_RULES.taskIdProjectKey]:m,[r.commitlintJiraConstants.JIRA_RULES.commitStatusCase]:u}};e.default=c}]).default}));