Repository navigation
feat(lint): run eslint-plugin-harlanzw rules through Oxlint - #25
Merged
Merged
Conversation
|
Architecture Data flow No data-flow sequence changed in this PR. Review ✨ Nothing flagged · reviewed Tip Open a diagram on the canvas, then press W or click play to walk through the change one step at a time 🪧 More tips
Thanks for using PR Lens! It's free for OSS. If it helped, a star helps other teams find it. |
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
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.
🔗 Linked issue
Follow-up to #22.
❓ Type of change
📚 Description
The fork replaced ESLint with Oxlint and dropped Harlan's
eslint-plugin-harlanzwrules along the way.pkg-conformstill told agents to configure aeslint-plugin-wolfstarzwpackage that does not exist.Oxlint can load ESLint plugins as
jsPlugins, so this brings the rules back without ESLint. The package exports its plugin by name and Oxlint reads the default export, so.oxlint/harlanzw.mjsre-exports it.Enabled as errors: 22 script rules, such as
no-silent-catch,nuxt-await-navigate-to,nuxt-no-unsafe-date,vue-no-reactive-destructuring, andvue-no-reactivity-after-await. Fixtures undertest/fixturesare exempt fromnuxt-no-side-effects-in-setup.Left off after running every rule over the repository:
no-test-file-reads: 119 hits, and it also flags scripts that are not tests.prefer-satisfies: 3 hits on lookup tables indexed by string, wheresatisfieswould break the types.vue-no-resolve-component-in-composables: 4 hits onresolveComponent()that is already inside<script setup>.nuxt-prefer-navigate-to-over-router-push-replace: 3 hits on query updates that handle router errors.Code changes the new rules asked for:
hw.tsusesstyleTextinstead of raw ANSI codes.advocaat401 test now asserts that the call rejects, instead of swallowing the error with.catch(() => undefined).oxlint-disablecomments remain where the code must handle literal ANSI:worker-github-evidence.tsparses GitHub Actions logs, andopencode-provider.test.tsreplays real opencode stderr.Limits: Oxlint runs script rules only. The Vue template rules (
link-*,vue-no-ref-access-in-templates) and the Markdown rules (ai-deslop-*,prompt-*,docs-*) do not run.pnpm-lock.yamlalso gainseslint, because the plugin lists it as a peer dependency. Thepkg-conformSkill now documents the wrapper, the rules, and these limits.