commitlint-config-czg-gitmoji
Version:
a gitmojis config for commitlint
684 lines (675 loc) โข 15.9 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true});// ../node_modules/.pnpm/@commitlint+types@19.5.0/node_modules/@commitlint/types/lib/rules.js
var RuleConfigSeverity;
(function(RuleConfigSeverity2) {
RuleConfigSeverity2[RuleConfigSeverity2["Disabled"] = 0] = "Disabled";
RuleConfigSeverity2[RuleConfigSeverity2["Warning"] = 1] = "Warning";
RuleConfigSeverity2[RuleConfigSeverity2["Error"] = 2] = "Error";
})(RuleConfigSeverity || (RuleConfigSeverity = {}));
var RuleConfigQuality;
(function(RuleConfigQuality2) {
RuleConfigQuality2[RuleConfigQuality2["User"] = 0] = "User";
RuleConfigQuality2[RuleConfigQuality2["Qualified"] = 1] = "Qualified";
})(RuleConfigQuality || (RuleConfigQuality = {}));
// src/parser.ts
var _gitmojiregex = require('@gitmoji/gitmoji-regex');
// ../node_modules/.pnpm/gitmojis@3.14.0/node_modules/gitmojis/dist/index.mjs
var $schema$1 = "https://gitmoji.dev/api/gitmojis/schema";
var gitmojis$1 = [
{
emoji: "๐จ",
entity: "🎨",
code: ":art:",
description: "Improve structure / format of the code.",
name: "art",
semver: null
},
{
emoji: "โก๏ธ",
entity: "⚡",
code: ":zap:",
description: "Improve performance.",
name: "zap",
semver: "patch"
},
{
emoji: "๐ฅ",
entity: "🔥",
code: ":fire:",
description: "Remove code or files.",
name: "fire",
semver: null
},
{
emoji: "๐",
entity: "🐛",
code: ":bug:",
description: "Fix a bug.",
name: "bug",
semver: "patch"
},
{
emoji: "๐๏ธ",
entity: "🚑",
code: ":ambulance:",
description: "Critical hotfix.",
name: "ambulance",
semver: "patch"
},
{
emoji: "โจ",
entity: "✨",
code: ":sparkles:",
description: "Introduce new features.",
name: "sparkles",
semver: "minor"
},
{
emoji: "๐",
entity: "📝",
code: ":memo:",
description: "Add or update documentation.",
name: "memo",
semver: null
},
{
emoji: "๐",
entity: "🚀",
code: ":rocket:",
description: "Deploy stuff.",
name: "rocket",
semver: null
},
{
emoji: "๐",
entity: "&#ff99cc;",
code: ":lipstick:",
description: "Add or update the UI and style files.",
name: "lipstick",
semver: "patch"
},
{
emoji: "๐",
entity: "🎉",
code: ":tada:",
description: "Begin a project.",
name: "tada",
semver: null
},
{
emoji: "โ
",
entity: "✅",
code: ":white_check_mark:",
description: "Add, update, or pass tests.",
name: "white-check-mark",
semver: null
},
{
emoji: "๐๏ธ",
entity: "🔒",
code: ":lock:",
description: "Fix security or privacy issues.",
name: "lock",
semver: "patch"
},
{
emoji: "๐",
entity: "🔐",
code: ":closed_lock_with_key:",
description: "Add or update secrets.",
name: "closed-lock-with-key",
semver: null
},
{
emoji: "๐",
entity: "🔖",
code: ":bookmark:",
description: "Release / Version tags.",
name: "bookmark",
semver: null
},
{
emoji: "๐จ",
entity: "🚨",
code: ":rotating_light:",
description: "Fix compiler / linter warnings.",
name: "rotating-light",
semver: null
},
{
emoji: "๐ง",
entity: "🚧",
code: ":construction:",
description: "Work in progress.",
name: "construction",
semver: null
},
{
emoji: "๐",
entity: "💚",
code: ":green_heart:",
description: "Fix CI Build.",
name: "green-heart",
semver: null
},
{
emoji: "โฌ๏ธ",
entity: "โฌ๏ธ",
code: ":arrow_down:",
description: "Downgrade dependencies.",
name: "arrow-down",
semver: "patch"
},
{
emoji: "โฌ๏ธ",
entity: "โฌ๏ธ",
code: ":arrow_up:",
description: "Upgrade dependencies.",
name: "arrow-up",
semver: "patch"
},
{
emoji: "๐",
entity: "📌",
code: ":pushpin:",
description: "Pin dependencies to specific versions.",
name: "pushpin",
semver: "patch"
},
{
emoji: "๐ท",
entity: "👷",
code: ":construction_worker:",
description: "Add or update CI build system.",
name: "construction-worker",
semver: null
},
{
emoji: "๐",
entity: "📈",
code: ":chart_with_upwards_trend:",
description: "Add or update analytics or track code.",
name: "chart-with-upwards-trend",
semver: "patch"
},
{
emoji: "โป๏ธ",
entity: "♻",
code: ":recycle:",
description: "Refactor code.",
name: "recycle",
semver: null
},
{
emoji: "โ",
entity: "➕",
code: ":heavy_plus_sign:",
description: "Add a dependency.",
name: "heavy-plus-sign",
semver: "patch"
},
{
emoji: "โ",
entity: "➖",
code: ":heavy_minus_sign:",
description: "Remove a dependency.",
name: "heavy-minus-sign",
semver: "patch"
},
{
emoji: "๐ง",
entity: "🔧",
code: ":wrench:",
description: "Add or update configuration files.",
name: "wrench",
semver: "patch"
},
{
emoji: "๐จ",
entity: "🔨",
code: ":hammer:",
description: "Add or update development scripts.",
name: "hammer",
semver: null
},
{
emoji: "๐",
entity: "🌐",
code: ":globe_with_meridians:",
description: "Internationalization and localization.",
name: "globe-with-meridians",
semver: "patch"
},
{
emoji: "โ๏ธ",
entity: "",
code: ":pencil2:",
description: "Fix typos.",
name: "pencil2",
semver: "patch"
},
{
emoji: "๐ฉ",
entity: "",
code: ":poop:",
description: "Write bad code that needs to be improved.",
name: "poop",
semver: null
},
{
emoji: "โช๏ธ",
entity: "⏪",
code: ":rewind:",
description: "Revert changes.",
name: "rewind",
semver: "patch"
},
{
emoji: "๐",
entity: "🔀",
code: ":twisted_rightwards_arrows:",
description: "Merge branches.",
name: "twisted-rightwards-arrows",
semver: null
},
{
emoji: "๐ฆ๏ธ",
entity: "F4E6;",
code: ":package:",
description: "Add or update compiled files or packages.",
name: "package",
semver: "patch"
},
{
emoji: "๐ฝ๏ธ",
entity: "F47D;",
code: ":alien:",
description: "Update code due to external API changes.",
name: "alien",
semver: "patch"
},
{
emoji: "๐",
entity: "F69A;",
code: ":truck:",
description: "Move or rename resources (e.g.: files, paths, routes).",
name: "truck",
semver: null
},
{
emoji: "๐",
entity: "F4C4;",
code: ":page_facing_up:",
description: "Add or update license.",
name: "page-facing-up",
semver: null
},
{
emoji: "๐ฅ",
entity: "💥",
code: ":boom:",
description: "Introduce breaking changes.",
name: "boom",
semver: "major"
},
{
emoji: "๐ฑ",
entity: "F371",
code: ":bento:",
description: "Add or update assets.",
name: "bento",
semver: "patch"
},
{
emoji: "โฟ๏ธ",
entity: "♿",
code: ":wheelchair:",
description: "Improve accessibility.",
name: "wheelchair",
semver: "patch"
},
{
emoji: "๐ก",
entity: "💡",
code: ":bulb:",
description: "Add or update comments in source code.",
name: "bulb",
semver: null
},
{
emoji: "๐ป",
entity: "🍻",
code: ":beers:",
description: "Write code drunkenly.",
name: "beers",
semver: null
},
{
emoji: "๐ฌ",
entity: "💬",
code: ":speech_balloon:",
description: "Add or update text and literals.",
name: "speech-balloon",
semver: "patch"
},
{
emoji: "๐๏ธ",
entity: "🗃",
code: ":card_file_box:",
description: "Perform database related changes.",
name: "card-file-box",
semver: "patch"
},
{
emoji: "๐",
entity: "🔊",
code: ":loud_sound:",
description: "Add or update logs.",
name: "loud-sound",
semver: null
},
{
emoji: "๐",
entity: "🔇",
code: ":mute:",
description: "Remove logs.",
name: "mute",
semver: null
},
{
emoji: "๐ฅ",
entity: "👥",
code: ":busts_in_silhouette:",
description: "Add or update contributor(s).",
name: "busts-in-silhouette",
semver: null
},
{
emoji: "๐ธ",
entity: "🚸",
code: ":children_crossing:",
description: "Improve user experience / usability.",
name: "children-crossing",
semver: "patch"
},
{
emoji: "๐๏ธ",
entity: "f3d7;",
code: ":building_construction:",
description: "Make architectural changes.",
name: "building-construction",
semver: null
},
{
emoji: "๐ฑ",
entity: "📱",
code: ":iphone:",
description: "Work on responsive design.",
name: "iphone",
semver: "patch"
},
{
emoji: "๐คก",
entity: "🤡",
code: ":clown_face:",
description: "Mock things.",
name: "clown-face",
semver: null
},
{
emoji: "๐ฅ",
entity: "🥚",
code: ":egg:",
description: "Add or update an easter egg.",
name: "egg",
semver: "patch"
},
{
emoji: "๐",
entity: "bdfe7;",
code: ":see_no_evil:",
description: "Add or update a .gitignore file.",
name: "see-no-evil",
semver: null
},
{
emoji: "๐ธ",
entity: "📸",
code: ":camera_flash:",
description: "Add or update snapshots.",
name: "camera-flash",
semver: null
},
{
emoji: "โ๏ธ",
entity: "⚗",
code: ":alembic:",
description: "Perform experiments.",
name: "alembic",
semver: "patch"
},
{
emoji: "๐๏ธ",
entity: "🔍",
code: ":mag:",
description: "Improve SEO.",
name: "mag",
semver: "patch"
},
{
emoji: "๐ท๏ธ",
entity: "🏷",
code: ":label:",
description: "Add or update types.",
name: "label",
semver: "patch"
},
{
emoji: "๐ฑ",
entity: "🌱",
code: ":seedling:",
description: "Add or update seed files.",
name: "seedling",
semver: null
},
{
emoji: "๐ฉ",
entity: "🚩",
code: ":triangular_flag_on_post:",
description: "Add, update, or remove feature flags.",
name: "triangular-flag-on-post",
semver: "patch"
},
{
emoji: "๐ฅ
",
entity: "🥅",
code: ":goal_net:",
description: "Catch errors.",
name: "goal-net",
semver: "patch"
},
{
emoji: "๐ซ",
entity: "💫",
code: ":dizzy:",
description: "Add or update animations and transitions.",
name: "dizzy",
semver: "patch"
},
{
emoji: "๐๏ธ",
entity: "🗑",
code: ":wastebasket:",
description: "Deprecate code that needs to be cleaned up.",
name: "wastebasket",
semver: "patch"
},
{
emoji: "๐",
entity: "🛂",
code: ":passport_control:",
description: "Work on code related to authorization, roles and permissions.",
name: "passport-control",
semver: "patch"
},
{
emoji: "๐ฉน",
entity: "🩹",
code: ":adhesive_bandage:",
description: "Simple fix for a non-critical issue.",
name: "adhesive-bandage",
semver: "patch"
},
{
emoji: "๐ง",
entity: "🧐",
code: ":monocle_face:",
description: "Data exploration/inspection.",
name: "monocle-face",
semver: null
},
{
emoji: "โฐ๏ธ",
entity: "⚰",
code: ":coffin:",
description: "Remove dead code.",
name: "coffin",
semver: null
},
{
emoji: "๐งช",
entity: "🧪",
code: ":test_tube:",
description: "Add a failing test.",
name: "test-tube",
semver: null
},
{
emoji: "๐",
entity: "👔",
code: ":necktie:",
description: "Add or update business logic.",
name: "necktie",
semver: "patch"
},
{
emoji: "๐ฉบ",
entity: "🩺",
code: ":stethoscope:",
description: "Add or update healthcheck.",
name: "stethoscope",
semver: null
},
{
emoji: "๐งฑ",
entity: "🧱",
code: ":bricks:",
description: "Infrastructure related changes.",
name: "bricks",
semver: null
},
{
emoji: "๐งโ๐ป",
entity: "🧑‍💻",
code: ":technologist:",
description: "Improve developer experience.",
name: "technologist",
semver: null
},
{
emoji: "๐ธ",
entity: "💸",
code: ":money_with_wings:",
description: "Add sponsorships or money related infrastructure.",
name: "money-with-wings",
semver: null
},
{
emoji: "๐งต",
entity: "🧵",
code: ":thread:",
description: "Add or update code related to multithreading or concurrency.",
name: "thread",
semver: null
},
{
emoji: "๐ฆบ",
entity: "🦺",
code: ":safety_vest:",
description: "Add or update code related to validation.",
name: "safety-vest",
semver: null
}
];
var gitmojisJson = {
$schema: $schema$1,
gitmojis: gitmojis$1
};
var gitmojis = gitmojisJson.gitmojis;
// src/rule.ts
var gitmojiCodes = gitmojis.map((gitmoji) => gitmoji.code);
var gitmojiUnicode = gitmojis.map((gitmoji) => gitmoji.emoji);
var gitmojiRule = (parsed) => {
let errorMsg = "passed";
let pass;
const { emojiType } = parsed;
if (!emojiType) {
pass = false;
errorMsg = "Your commit type is empty, please add your commit message.";
return [pass, errorMsg];
}
pass = gitmojiUnicode.includes(emojiType) || gitmojiCodes.includes(emojiType);
if (!pass) {
errorMsg = `${emojiType} is not in the correct gitmoji list, please check the emoji code on https://gitmoji.dev/.`;
}
return [pass, errorMsg];
};
// src/plugin.ts
var gitmojiPlugin = {
rules: {
"valid-gitmoji-type": gitmojiRule
}
};
// src/parser.ts
var gitmojiCodeStr = _gitmojiregex.gitmojiCodeRegex.source;
var gitmojiUnicodeStr = _gitmojiregex.gitmojiUnicodeRegex.source;
var emojiStr = _gitmojiregex.emojiRegex.source;
var headerPattern = new RegExp(`^(?<emojiType>${gitmojiCodeStr}|(?:${gitmojiUnicodeStr})|(?:${emojiStr}))\\s?(?:\\((?<scope>.*)\\))?!?:?\\s(?<subject>.+)$`);
var 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"]
};
var parserPreset = {
parserOpts,
plugins: {
gitmoji: gitmojiPlugin
}
};
// src/index.ts
var rules = {
// gitmoji rule
"valid-gitmoji-type": [RuleConfigSeverity.Error, "always"],
// use gitmoji type
"type-enum": [RuleConfigSeverity.Error, "always", gitmojiUnicode],
// content start with blank line
"body-leading-blank": [RuleConfigSeverity.Error, "always"],
// end with blank line
"footer-leading-blank": [RuleConfigSeverity.Error, "always"],
// title max length 100 characters
"header-max-length": [RuleConfigSeverity.Error, "always", 100],
// Scope always lower case
"scope-case": [RuleConfigSeverity.Error, "always", "lower-case"],
// subject can not be empty
"subject-empty": [RuleConfigSeverity.Error, "never"],
// subject can not use dot
"subject-full-stop": [RuleConfigSeverity.Error, "never", "."]
};
var config = {
rules,
parserPreset,
plugins: [gitmojiPlugin]
};
var src_default = config;
exports.default = src_default;