fix(types): add presetConfig to ParserPreset interface#4749
Merged
escapedcat merged 1 commit intoMay 12, 2026
Merged
Conversation
Fixes conventional-changelog#4748 Signed-off-by: SAY-5 <saiasish.cnp@gmail.com>
Review Summary by QodoAdd presetConfig field to ParserPreset interface
WalkthroughsDescription• Add presetConfig field to ParserPreset interface • Allows TypeScript users to configure presets without type errors • Add compile-time type checks via .test-d.ts file Diagramflowchart LR
A["ParserPreset interface"] -->|"add presetConfig field"| B["Support preset configuration"]
C["load.test-d.ts"] -->|"compile-time checks"| B
B -->|"fixes #4748"| D["TypeScript config validation"]
File Changes1. @commitlint/types/src/load.ts
|
Contributor
There was a problem hiding this comment.
Pull request overview
Adds missing typing for parserPreset.presetConfig in @commitlint/types, aligning the public TypeScript surface with the documented configuration option so TS users can configure conventional-changelog presets without excess property errors.
Changes:
- Extend
ParserPresetwith optionalpresetConfig?: unknown. - Add a
*.test-d.tscompile-time regression test ensuringpresetConfigis assignable viaUserConfig.parserPresetandParserPreset.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| @commitlint/types/src/load.ts | Adds presetConfig?: unknown to ParserPreset to match documented config usage and unblock TS configs. |
| @commitlint/types/src/load.test-d.ts | Adds compile-time type assertions preventing regressions for parserPreset.presetConfig typing. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
pat-s
pushed a commit
to devxygmbh/ansible-data-science-core
that referenced
this pull request
May 14, 2026
…ocker tag to v21 (#88) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [cr.codefloe.com/docker.io/commitlint/commitlint](https://github.com/conventional-changelog/commitlint) | major | `20.5.3` → `21.0.1` | --- ### Release Notes <details> <summary>conventional-changelog/commitlint (cr.codefloe.com/docker.io/commitlint/commitlint)</summary> ### [`v21.0.1`](https://github.com/conventional-changelog/commitlint/blob/HEAD/CHANGELOG.md#2101-2026-05-12) [Compare Source](conventional-changelog/commitlint@v21.0.0...v21.0.1) ##### Bug Fixes - **load:** only resolve relative formatter paths ([#​4761](conventional-changelog/commitlint#4761)) ([f8be069](conventional-changelog/commitlint@f8be069)) - **types:** add presetConfig to ParserPreset interface ([#​4749](conventional-changelog/commitlint#4749)) ([e402cd4](conventional-changelog/commitlint@e402cd4)), closes [#​4748](conventional-changelog/commitlint#4748) ### [`v21.0.0`](https://github.com/conventional-changelog/commitlint/blob/HEAD/CHANGELOG.md#2100-2026-05-08) [Compare Source](conventional-changelog/commitlint@v20.5.3...v21.0.0) ##### Bug Fixes - widen cz-commitlint inquirer peer dep to support v9-v12 [#​4554](conventional-changelog/commitlint#4554) ([#​4682](conventional-changelog/commitlint#4682)) ([341f0c4](conventional-changelog/commitlint@341f0c4)) - chore!: minimum node version v22 ([#​4679](conventional-changelog/commitlint#4679)) ([ac2b3f4](conventional-changelog/commitlint@ac2b3f4)), closes [#​4679](conventional-changelog/commitlint#4679) ##### BREAKING CHANGES - drop node v18 and v20 support * Bump engines to >=v22 in all 39 package.json files * Update [@​types/node](https://github.com/types/node) to ^22.0.0 * Update CI matrix to \[22, 24] * Update Ubuntu baseline job to ubuntu:26.04 * Update Dockerfile.ci, .mise.toml, .codesandbox/ci.json * Update pre-commit hook to use --ignore-engines * Update README and docs Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> #### [20.5.3](conventional-changelog/commitlint@v20.5.2...v20.5.3) (2026-04-30) **Note:** Version bump only for package [@​commitlint/root](https://github.com/commitlint/root) #### [20.5.2](conventional-changelog/commitlint@v20.5.1...v20.5.2) (2026-04-25) ##### Bug Fixes - update dependency global-directory to v5 ([#​4698](conventional-changelog/commitlint#4698)) ([a8b6224](conventional-changelog/commitlint@a8b6224)) #### [20.5.1](conventional-changelog/commitlint@v20.5.0...v20.5.1) (2026-03-31) ##### Bug Fixes - **cz-commitlint:** add VS16 to single character emojis ([#​4666](conventional-changelog/commitlint#4666)) ([9e3e2d3](conventional-changelog/commitlint@9e3e2d3)) - **cz-commitlint:** handle modifiers correctly ([#​4667](conventional-changelog/commitlint#4667)) ([5a3ebf5](conventional-changelog/commitlint@5a3ebf5)) - update dependency global-directory to v5 ([#​4671](conventional-changelog/commitlint#4671)) ([a300d32](conventional-changelog/commitlint@a300d32)) ##### Reverts - Revert "fix: update dependency global-directory to v5 ([#​4671](conventional-changelog/commitlint#4671))" ([#​4677](conventional-changelog/commitlint#4677)) ([0f124c9](conventional-changelog/commitlint@0f124c9)), closes [#​4671](conventional-changelog/commitlint#4671) [#​4677](conventional-changelog/commitlint#4677) </details> --- ### Configuration 📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC), Automerge - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4wIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: devxy-bot <no-reply@devxy.io> Reviewed-on: https://codefloe.com/devxy/ansible-data-science-core/pulls/88
pat-s
pushed a commit
to devxygmbh/starlight-theme-celestia
that referenced
this pull request
May 26, 2026
…ocker tag to v21 (#16) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [cr.codefloe.com/docker.io/commitlint/commitlint](https://github.com/conventional-changelog/commitlint) | major | `20.5.3` → `21.0.1` | --- ### Release Notes <details> <summary>conventional-changelog/commitlint (cr.codefloe.com/docker.io/commitlint/commitlint)</summary> ### [`v21.0.1`](https://github.com/conventional-changelog/commitlint/blob/HEAD/CHANGELOG.md#2101-2026-05-12) [Compare Source](conventional-changelog/commitlint@v21.0.0...v21.0.1) ##### Bug Fixes - **load:** only resolve relative formatter paths ([#​4761](conventional-changelog/commitlint#4761)) ([f8be069](conventional-changelog/commitlint@f8be069)) - **types:** add presetConfig to ParserPreset interface ([#​4749](conventional-changelog/commitlint#4749)) ([e402cd4](conventional-changelog/commitlint@e402cd4)), closes [#​4748](conventional-changelog/commitlint#4748) ### [`v21.0.0`](https://github.com/conventional-changelog/commitlint/blob/HEAD/CHANGELOG.md#2100-2026-05-08) [Compare Source](conventional-changelog/commitlint@v20.5.3...v21.0.0) ##### Bug Fixes - widen cz-commitlint inquirer peer dep to support v9-v12 [#​4554](conventional-changelog/commitlint#4554) ([#​4682](conventional-changelog/commitlint#4682)) ([341f0c4](conventional-changelog/commitlint@341f0c4)) - chore!: minimum node version v22 ([#​4679](conventional-changelog/commitlint#4679)) ([ac2b3f4](conventional-changelog/commitlint@ac2b3f4)), closes [#​4679](conventional-changelog/commitlint#4679) ##### BREAKING CHANGES - drop node v18 and v20 support * Bump engines to >=v22 in all 39 package.json files * Update [@​types/node](https://github.com/types/node) to ^22.0.0 * Update CI matrix to \[22, 24] * Update Ubuntu baseline job to ubuntu:26.04 * Update Dockerfile.ci, .mise.toml, .codesandbox/ci.json * Update pre-commit hook to use --ignore-engines * Update README and docs Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> #### [20.5.3](conventional-changelog/commitlint@v20.5.2...v20.5.3) (2026-04-30) **Note:** Version bump only for package [@​commitlint/root](https://github.com/commitlint/root) #### [20.5.2](conventional-changelog/commitlint@v20.5.1...v20.5.2) (2026-04-25) ##### Bug Fixes - update dependency global-directory to v5 ([#​4698](conventional-changelog/commitlint#4698)) ([a8b6224](conventional-changelog/commitlint@a8b6224)) #### [20.5.1](conventional-changelog/commitlint@v20.5.0...v20.5.1) (2026-03-31) ##### Bug Fixes - **cz-commitlint:** add VS16 to single character emojis ([#​4666](conventional-changelog/commitlint#4666)) ([9e3e2d3](conventional-changelog/commitlint@9e3e2d3)) - **cz-commitlint:** handle modifiers correctly ([#​4667](conventional-changelog/commitlint#4667)) ([5a3ebf5](conventional-changelog/commitlint@5a3ebf5)) - update dependency global-directory to v5 ([#​4671](conventional-changelog/commitlint#4671)) ([a300d32](conventional-changelog/commitlint@a300d32)) ##### Reverts - Revert "fix: update dependency global-directory to v5 ([#​4671](conventional-changelog/commitlint#4671))" ([#​4677](conventional-changelog/commitlint#4677)) ([0f124c9](conventional-changelog/commitlint@0f124c9)), closes [#​4671](conventional-changelog/commitlint#4671) [#​4677](conventional-changelog/commitlint#4677) </details> --- ### Configuration 📅 **Schedule**: Branch creation - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC), Automerge - Between 12:00 AM and 03:59 AM ( * 0-3 * * * ) (UTC). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4wIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: devxy-bot <no-reply@devxy.io> Reviewed-on: https://codefloe.com/devxy/starlight-theme-celestia/pulls/16
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Add
presetConfig?: unknownto theParserPresetinterface in@commitlint/typesso TypeScript users can configure presets likeconventional-changelog-conventionalcommitswithout a type error.Motivation and Context
Fixes #4748.
The
presetConfigfield is documented indocs/reference/configuration.md(### presetConfig) and is the standard way to customize presets likeconventional-changelog-conventionalcommits(which exports a factory accepting apresetConfigargument). However, theParserPresetinterface only declaredname,path,parserOpts, andparser, so passingpresetConfigfrom a TypeScript config producedObject literal may only specify known properties, and 'presetConfig' does not exist in type 'ParserPreset'.unknownis used (matchingparserOpts/parser) because the shape ofpresetConfigis preset-specific.Usage examples
How Has This Been Tested?
@commitlint/types/src/load.test-d.tswith compile-time checks asserting thatpresetConfigis assignable on bothUserConfig.parserPresetandParserPresetdirectly. Verified the test fails onmasterwith the exact error from the issue and passes with this change.yarn build,yarn vitest run @commitlint/types,yarn lint, andyarn formatall pass.Types of changes
Checklist: