cz-git-gitmoji
Version:
A few configurations for using gitmojis in cz
25 lines (20 loc) • 927 B
text/typescript
import type { LintOptions } from '@commitlint/types'
import { emojiRegex, gitmojiCodeRegex, gitmojiUnicodeRegex } from '@gitmoji/gitmoji-regex'
import { gitmojiPlugin } from './plugin'
const gitmojiCodeStr = gitmojiCodeRegex.source
const gitmojiUnicodeStr = gitmojiUnicodeRegex.source
const emojiStr = emojiRegex.source
const headerPattern = new RegExp(`^(?<emojiType>${gitmojiCodeStr}|(?:${gitmojiUnicodeStr})|(?:${emojiStr}))\\s?(?:\\((?<scope>.*)\\))?!?:?\\s(?<subject>.+)$`)
const parserOpts: LintOptions['parserOpts'] = {
headerPattern,
headerCorrespondence: ['emojiType', 'scope', 'subject'],
noteKeywords: ['BREAKING CHANGE', 'BREAKING CHANGES'],
revertPattern: /^(?<emojiType>⏪️|:rewind:):\s(?<subject>[\s\S]*?)\sThis reverts commit (?<hash>\w+)\./i,
revertCorrespondence: ['subject', 'hash'],
}
export const parserPreset: LintOptions = {
parserOpts,
plugins: {
gitmoji: gitmojiPlugin,
},
}