Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@Lonercode
Copy link
Contributor

PR Checklist

Overview

This PR extracts the AST check (checkForStatementDeclaration) from convert.ts to a file ast-checks.ts as requested in the issue due to the increasing length of code in the file. Therefore, a new fie has been added (ast-checks.ts), one modified (convert.ts) and tests have been run.

@typescript-eslint
Copy link
Contributor

Thanks for the PR, @Lonercode!

typescript-eslint is a 100% community driven project, and we are incredibly grateful that you are contributing to that community.

The core maintainers work on this in their personal time, so please understand that it may not be possible for them to review your work immediately.

Thanks again!


🙏 Please, if you or your company is finding typescript-eslint valuable, help us sustain the project by sponsoring it transparently on https://opencollective.com/typescript-eslint.

@netlify
Copy link

netlify bot commented Nov 9, 2025

Deploy Preview for typescript-eslint ready!

Name Link
🔨 Latest commit 29a9c73
🔍 Latest deploy log https://app.netlify.com/projects/typescript-eslint/deploys/692889024bd90500080490fe
😎 Deploy Preview https://deploy-preview-11748--typescript-eslint.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 92 (🔴 down 6 from production)
Accessibility: 97 (no change from production)
Best Practices: 100 (no change from production)
SEO: 92 (no change from production)
PWA: 80 (no change from production)
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@nx-cloud
Copy link

nx-cloud bot commented Nov 9, 2025

View your CI Pipeline Execution ↗ for commit 29a9c73

Command Status Duration Result
nx test eslint-plugin --coverage=false ✅ Succeeded 5m 14s View ↗
nx run-many -t lint ✅ Succeeded 3m 16s View ↗
nx run-many -t typecheck ✅ Succeeded 2m 9s View ↗
nx test typescript-estree --coverage=false ✅ Succeeded 21s View ↗
nx test eslint-plugin-internal --coverage=false ✅ Succeeded 11s View ↗
nx run types:build ✅ Succeeded 2s View ↗
nx run generate-configs ✅ Succeeded 7s View ↗
nx run integration-tests:test ✅ Succeeded 3s View ↗
Additional runs (29) ✅ Succeeded ... View ↗

☁️ Nx Cloud last updated this comment at 2025-11-27 17:35:07 UTC

@Lonercode Lonercode changed the title Chore: Extract AST check from convert.ts to ast-checks.ts chore: Extract AST check from convert.ts to ast-checks.ts Nov 9, 2025
@codecov
Copy link

codecov bot commented Nov 9, 2025

Codecov Report

❌ Patch coverage is 25.75758% with 49 lines in your changes missing coverage. Please review.
✅ Project coverage is 90.48%. Comparing base (3252978) to head (29a9c73).
⚠️ Report is 53 commits behind head on main.

Files with missing lines Patch % Lines
...kages/typescript-estree/src/check-syntax-errors.ts 20.96% 49 Missing ⚠️

❌ Your patch status has failed because the patch coverage (25.75%) is below the target coverage (90.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #11748      +/-   ##
==========================================
- Coverage   90.49%   90.48%   -0.01%     
==========================================
  Files         522      523       +1     
  Lines       53360    53375      +15     
  Branches     8911     8913       +2     
==========================================
+ Hits        48286    48298      +12     
- Misses       5059     5062       +3     
  Partials       15       15              
Flag Coverage Δ
unittest 90.48% <25.75%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
packages/typescript-estree/src/convert.ts 31.33% <100.00%> (+0.46%) ⬆️
...kages/typescript-estree/src/check-syntax-errors.ts 20.96% <20.96%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Lonercode Lonercode changed the title chore: Extract AST check from convert.ts to ast-checks.ts chore: extract AST check from convert.ts to ast-checks.ts Nov 9, 2025
@fisker
Copy link
Contributor

fisker commented Nov 14, 2025

Can we run the AST check from https://github.com/Lonercode/typescript-eslint/blob/65803e4127b9557ec6cf4802df12e588370d9930/packages/typescript-estree/src/convert.ts#L509, and have a big switch-case in the new file to check every ts node?

@Lonercode
Copy link
Contributor Author

Can we run the AST check from https://github.com/Lonercode/typescript-eslint/blob/65803e4127b9557ec6cf4802df12e588370d9930/packages/typescript-estree/src/convert.ts#L509, and have a big switch-case in the new file to check every ts node?

AST check checkModifier function is in https://github.com/Lonercode/typescript-eslint/blob/65803e4127b9557ec6cf4802df12e588370d9930/packages/typescript-estree/src/check-modifiers.ts#L139. Do you mean it should be in the new file with a check for every ts node? Or I modify checkForStatementDeclaration in the new file?

@fisker
Copy link
Contributor

fisker commented Nov 15, 2025

No need change check-modifiers.ts.

In the new file export a function to check ts node, it calls checkModifier and do other checks currently lives in convert.ts

Copy link
Member

@JoshuaKGoldberg JoshuaKGoldberg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What fisker said 🙂

@JoshuaKGoldberg JoshuaKGoldberg added the awaiting response Issues waiting for a reply from the OP or another party label Nov 18, 2025
@Lonercode
Copy link
Contributor Author

@fisker Please let me know if I need to remove every call to the ast check function from convert.ts.

@fisker
Copy link
Contributor

fisker commented Nov 19, 2025

checkTSNode should only call in converter, like the old checkModofiers did.

@fisker
Copy link
Contributor

fisker commented Nov 27, 2025

@JoshuaKGoldberg Are you fine with just one check in this PR? Or should all checks done in this one? If we want to copy variable declaration syntax check, better wait for #11777 and #11778 to merge first.

@fisker
Copy link
Contributor

fisker commented Nov 27, 2025

Looks good to me, thanks! 🙏

Can't approve since I'm not a team member.

@Lonercode
Copy link
Contributor Author

Thanks @fisker

Copy link
Member

@JoshuaKGoldberg JoshuaKGoldberg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for getting started on this! I think we should discuss the direction a bit.

@fisker
Copy link
Contributor

fisker commented Dec 28, 2025

@JoshuaKGoldberg

Which part do you insist on changing for landing this PR? I have some other syntax check changes to make, and I'm waiting for this to merge first.

Personally, I like the current implementation, the struct will be easy to extract other checks. How about we take another look after all the checks are extracted? I can make the changes as you request after we finish the migration.

@JoshuaKGoldberg
Copy link
Member

Oh, I'm not picky here. I'm happy to just see what you want to get refactored happen first. I'm not sure I'm following though. Are you proposing landing this as-is, or doing some refactors first?

@fisker
Copy link
Contributor

fisker commented Dec 29, 2025

Land as it is, and continue to extract all syntax checks in follow up PR.

Copy link
Member

@JoshuaKGoldberg JoshuaKGoldberg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool! Although this isn't my personal instinct for how I would write things, I think it's a good direction to try out. And I do think there's a nice simplicity in being able to "just" call checkSyntaxError and having checkModifiers + whatever node-specific checks are needed be run. So perhaps my instincts are wrong 😄.

Either way, thanks for bearing with the reviews @Lonercode, I appreciate you pushing forward on this! And also thanks to @fisker for taking on reviewing.

@JoshuaKGoldberg JoshuaKGoldberg added 1 approval >=1 team member has approved this PR; we're now leaving it open for more reviews before we merge and removed awaiting response Issues waiting for a reply from the OP or another party labels Dec 29, 2025
@JoshuaKGoldberg JoshuaKGoldberg merged commit 6a05a1a into typescript-eslint:main Dec 29, 2025
66 of 68 checks passed
@fisker
Copy link
Contributor

fisker commented Dec 29, 2025

I'll send follow-up PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

1 approval >=1 team member has approved this PR; we're now leaving it open for more reviews before we merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Repo: Extract AST check from Converter

3 participants