voidzero-dev / voidzero-dev/vite-plus

Remove allowCompoundComponents migration workaround after upstream support

Open
#2,703 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
5.8k
Forks
261
Avg merge
1d 34m
Merged PRs (30d)
135

Description

PR #2702 adds a temporary migration workaround for `eslint-plugin-react-refresh@0.5.7`. Its Vite preset enables `allowCompoundComponents`. `@oxlint/migrate@1.82.0` copies this option to `react/only-export-components`, but the bundled Oxlint rejects it. Migration therefore removes the option from root and override rules and warns the user.

Remove this workaround when the bundled `@oxlint/migrate` and Oxlint support the option end to end. Migrator support alone is insufficient if Oxlint still rejects the generated configuration. The final behavior must preserve `allowCompoundComponents` and accept the migrated configuration in `vp check`.

- [ ] Update the bundled dependencies to versions that support `allowCompoundComponents`.
- [ ] Remove `stripUnsupportedReactRefreshOption`, its root and override calls, and the related warning from `packages/cli/src/migration/migrator/eslint.ts`.
- [ ] Replace the temporary schema guard and option-removal assertions in `packages/cli/src/migration/__tests__/react-refresh-options.spec.ts` with coverage that preserves the option in root and override rules without a warning.
- [ ] Update the `new_create_vite_migrates_eslint_prettier` snapshot to retain the supported option. Keep its `vp check` step and confirm that the generated React TypeScript project accepts the configuration.

The schema guard in #2702 will fail when the installed Oxlint schema gains the option, so the workaround is reviewed during the dependency update.

Contributor guide

Open the contributing guide

Research direction

Start by checking the bundled dependency versions and the schema support for allowCompoundComponents. Read packages/cli/src/migration/migrator/eslint.ts and packages/cli/src/migration/__tests__/react-refresh-options.spec.ts, then update the related new_create_vite_migrates_eslint_prettier snapshot. Done means root and override rules preserve the option without a warning, and the generated React TypeScript project passes its vp check.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript, vite
Domain
cli, testing, tooling
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.