UNPKG

@mediamonks/commitlint-issue-reference

Version:

Ensures your commit messages always include the same issue key as in your branch name

35 lines (34 loc) 1.16 kB
export function getIssuePattern(prefixOrRegex) { if (typeof prefixOrRegex === 'string') { const sanitizedPrefix = prefixOrRegex.replaceAll('#', ''); return { commitPattern: new RegExp(`${prefixOrRegex}\\d+`, 'gu').source, branchPattern: new RegExp(`${sanitizedPrefix}\\d+`, 'gu').source, issuePrefix: extractIssuePrefix(prefixOrRegex, sanitizedPrefix), }; } if (prefixOrRegex) { const branchPattern = prefixOrRegex.branch ?? prefixOrRegex.commit; return { commitPattern: prefixOrRegex.commit, branchPattern, issuePrefix: extractIssuePrefix(prefixOrRegex.commit, branchPattern), }; } // return default const commitPattern = /[A-Z\d]+-\d+/gu.source; return { commitPattern, branchPattern: commitPattern, issuePrefix: '', }; } function extractIssuePrefix(commitPrefix, branchPrefix) { if (commitPrefix === branchPrefix) { return ''; } if (commitPrefix.includes(branchPrefix)) { return commitPrefix.replace(branchPrefix, ''); } return undefined; }