siavash bashiri
siavash bashiri

Reputation: 419

Is it possible to make cz-customizable questions required?

I use the cz-customizable package to have conventional commits in the project; I use a customized configuration file named .cz-customize.js, and I've changed some defaults too. Is it possible to make the questions required, or is there any option that makes a specific question optional or required or sets any kind of validation? There is an array named types which are questions to check conventions in our git commit, something that I want is to make some of them required to be sure that the developer doesn't leave them empty.

module.exports = {
  messages: {
    type: "Select the type of change that you're committing:",
    scope: "Denote the SCOPE of this change:",
    customScope: "Denote the SCOPE of this change:",
    subject: "Write a SHORT, IMPERATIVE tense description of the change:\n",
    body: 'Provide a LONGER description of the change (optional). Use "|" to break new line:\n',
    breaking: 'List any BREAKING CHANGES (optional). Use "|" to break new line:\n',
    footerPrefixesSelect: "Select the ISSUES type of changeList by this change (optional):",
    customFooterPrefix: "Input ISSUES prefix:",
    footer: "List any ISSUES by this change. E.g.: #31, #34:\n",
    generatingByAI: 'Generating your AI commit subject...',
    generatedSelectByAI: 'Select suitable subject by AI generated:',
    confirmCommit: "Are you sure you want to proceed with the commit above?"
  },
  types: [
    { value: "feat", name: "feat:     ✨  A new feature", emoji: ":sparkles:" },
    { value: "chore", name: "chore:    🔨  Other changes that don't modify src or test files", emoji: ":hammer:" },
    { value: "fix", name: "fix:      🩹💩  A bug fix", emoji: ":bug:" },
    { value: "test", name: "test:     ✅  Adding missing tests or correcting existing tests", emoji: ":white_check_mark:" },
    { value: "style", name: "style:    💄  Changes that do not affect the meaning of the code", emoji: ":lipstick:" },
    { value: "refactor", name: "refactor: 🔧   A code change that neither fixes a bug nor adds a feature", emoji: ":recycle:" },
    { value: "docs", name: "docs:     📝  Documentation only changes", emoji: ":memo:" },
    { value: "perf", name: "perf:     🚀  A code change that improves performance", emoji: ":zap:" },
    { value: "build", name: "build:    📦️   Changes that affect the build system or external dependencies", emoji: ":package:" },
    { value: "ci", name: "ci:       🎡  Changes to our CI configuration files and scripts", emoji: ":ferris_wheel:" },
    { value: "revert", name: "revert:   ⏪️  Reverts a previous commit", emoji: ":rewind:" }
  ],
  useEmoji: true,
  emojiAlign: "center",
  useAI: false,
  aiNumber: 1,
  themeColorCode: "",
  scopes: [{name: 'test1'}, {name: 'test2'}],
  allowCustomScopes: false,
  allowEmptyScopes: true,
  customScopesAlign: "bottom",
  customScopesAlias: "custom",
  emptyScopesAlias: "empty",
  upperCaseSubject: true,
  markBreakingChangeMode: true,
  allowBreakingChanges: ['feat', 'fix'],
  breaklineNumber: 5,
  breaklineChar: "|",
  skipQuestions: ['breaking', 'customScope', 'breaking'],
  issuePrefixes: [{ value: "closed", name: "closed:   ISSUES has been processed" }],
  customIssuePrefixAlign: "top",
  emptyIssuePrefixAlias: "skip",
  customIssuePrefixAlias: "custom",
  allowCustomIssuePrefix: true,
  allowEmptyIssuePrefix: true,
  confirmColorize: true, 
  maxHeaderLength: Infinity,
  maxSubjectLength: Infinity,
  minSubjectLength: 0,
  scopeOverrides: undefined,
  defaultType: "style",
  defaultBody: "",
  defaultIssues: "",
  defaultScope: "",
  defaultSubject: "",
  subjectLimit: 100,
}

Upvotes: 0

Views: 481

Answers (0)

Related Questions