Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ESLint v9 and flat config #774

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open

ESLint v9 and flat config #774

wants to merge 4 commits into from

Conversation

spence-s
Copy link
Contributor

@spence-s spence-s commented Jan 14, 2025

My version of xo with flat config support.

It's a complete re-write obviously here in TS and this is the initial PR WIP, let me know what you think.

It seems to work pretty darn well for me so far as a drop replacement in the repos I have tested it on and it works out of the box with the vscode extension.

It also exports a createEslintConfig function, for users who'd rather use eslint directly but get (almost) all of the goodies from using xo cli directly.

The docs probably need work still and test coverage could definitely be better, I think some features are probably gone as well, I know I didn't add webpack import resolver yet and probably a few other things, so let me know if its missing something you feel is important.

You can test out a beta version https://www.npmjs.com/package/@spence-s/flat-xo which I will deprecate if this PR is accepted.

easy to replace in package.json "xo": "npm:@spence-s/flat-xo@latest"

@spence-s
Copy link
Contributor Author

spence-s commented Jan 29, 2025

I have experimented with adding a react flag to the beta version, Not included yet in this PR, which will enable react linting extremely easy. I really like it.

If we feel this is something we are ok with, I will add it to this PR as well.


We can also discuss #777 here I am open to dropping formatting support prettier while supporting prettier compatibility as an option.


@sindresorhus I know this is a big PR and difficult to figure out the right approach or if we want to support the new implementation or design decisions that I made. If you feel you'd like a different approach to getting this merged in or accomplished, I am open to it.

perhaps adding the flat-config behind a flag in the current CLI would work and make it a safer change. The reason I didn't do that as step 1 is because it will be a bit odd with the JS/TS boundary. It's also tough as we'd need to support multiple versions of the same dependencies in 1 repo. which may go poorly.

If you'd like, I will try to work on getting this PR to a more "integrated" and safe state for merging, but if you have suggestions for this let me know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant