Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork2.8k
feat(cli): create initial, proof-of-concept CLI#4359
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
nx-cloudbot commentedDec 27, 2021 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Thanks for the PR,@bradzacher! 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 onhttps://opencollective.com/typescript-eslint. As a thank you, your profile/company logo will be added to our main README which receives thousands of unique visitorsper day. |
netlifybot commentedDec 27, 2021 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
✔️ Deploy Preview fortypescript-eslint ready! 🔨 Explore the source changes:85efd19 🔍 Inspect the deploy log:https://app.netlify.com/sites/typescript-eslint/deploys/61d69af6d1916e000700497d 😎 Browse the preview:https://deploy-preview-4359--typescript-eslint.netlify.app |
codecovbot commentedDec 28, 2021 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
Codecov Report
@@ Coverage Diff @@## main #4359 +/- ##==========================================- Coverage 94.26% 91.95% -2.32%========================================== Files 169 346 +177 Lines 9440 11622 +2182 Branches 2940 3298 +358 ==========================================+ Hits 8899 10687 +1788- Misses 321 675 +354- Partials 220 260 +40
Flags with carried forward coverage won't be shown.Click here to find out more.
|
9ad2008
to826d957
CompareClosing this old draft for housekeeping since there are merge conflicts and it's taking up space in the open PRs list. Nothing bad will happen in my housekeeping if this is re-opened. Don't mind me. 😄 |
Uh oh!
There was an error while loading.Please reload this page.
PR Checklist
Overview
This adds an initial, proof-of-concept version of a typescript-eslint CLI.
It offers the following commands:
ts-eslint lint -p <tsconfig path>
to lint one or more tsconfigsts-eslint env
to dump package versions for issuesHelp Dump
Collapsed for brevity
Performance Comparison
This repo - ~25% faster
vs
Initial testing shows a very good speedup on our repo! Itconsistently is ~15-20s faster than a pure ESLint run - which is a huge win, even on our (relatively) small repo.
tldraw - ~44% faster
Notes:
recommended-with-typechecking
configeslintrc.js I used
vs
Again - this shows a clear runtime win, though this time it is greater at ~34s.
chrome devtools-frontend - no significant wins
Notes:
vs
It's expected that there's no major change in lint time here as there is only one tsconfig being linted - meaning it cannot take advantage of parallelisation.
To test further - I added one tsconfig to the root of each of the "packages" and tried again
the tsconfig
Unfortunately - this did not yield any significant wins. Again, this is to be expected to some degree. Out of the 1590 files being linted - 1095 (68%) of them are in just one tsconfig - which ultimately takes the majority (or rather all) of the time collect type information for.
TODO:
env
command to log the packages table for issueslint
command to lint the codebasejest-worker
-p
option for specifying tsconfig paths--format
)ink
loggerStretch goals:
-f
option for specifying files/folders/globsFileEnumerator
to gather the list of filestsconfig
? Or maybe just rely on the pre-configuredparserOptions.project
for the files?