JoshuaKGoldberg / JoshuaKGoldberg/create-typescript-app

🚀 Feature: Simplify ESLint config's yml portions

Open
#2,208 0 comments 0 reactions 0 assignees View on GitHub
status: needs investigation type: feature
Dominant language
TypeScript
Stars
1.4k
Forks
89
Avg merge
1m
Merged PRs (30d)
3

Description

### Feature Request Checklist

- [x] I have pulled the latest `main` branch of the repository.
- [x] I have [searched for related issues](https://github.com/JoshuaKGoldberg/create-typescript-app/issues?q=is%3Aissue) and found none that matched my issue.

### Overview

The ESLint config generated by CTA's _Everything_ preset contains over a dozen lines dedicated to YML normalization:

https://github.com/JoshuaKGoldberg/create-typescript-app/blob/6ea80114fcb1f96e16b95f44ef14c2bab5c0fc88/eslint.config.js#L104-L118

That's ~15% of the default generated ESLint config. Not ideal. I'm trying to reduce the ESLint config over time to make it more approachable.

Most of those lines come from the manual enabling `rules` object. It'd be nice to, if possible, remove that `rules` object - but I also want to keep those three rules enabled.

Investigation required, maybe >=1 of the following is the solution?:

* Would eslint-plugin-yml accept a PR to add those sorting rules to some more pedantic/stylistic preset?
* Would eslint-plugin-perfectionist actually be a better place for key sorting?

### Additional Info

🎁

Contributor guide

Open the contributing guide

Research direction

Inspect eslint.config.js around lines 104–118 to understand the generated YML normalization rules. Compare the available eslint-plugin-yml and eslint-plugin-perfectionist presets, including whether an upstream change is needed; the work is done when the three sorting rules remain enabled with a shorter generated configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
eslint, typescript
Domain
tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.