-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
feat(eslint-plugin): [consistent-type-imports] support fixing to inline types #5050
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
feat(eslint-plugin): [consistent-type-imports] support fixing to inline types #5050
Conversation
Thanks for the PR, @snewcomer! 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. As a thank you, your profile/company logo will be added to our main README which receives thousands of unique visitors per day. |
✅ Deploy Preview for typescript-eslint ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
6386e8f
to
c050a8f
Compare
1b8e40e
to
19c73d2
Compare
Fixing a bug with inlining to a value ImportDefaultSpecifier....leaving in draft |
d54fbf9
to
3d525af
Compare
3cdb01f
to
fe407d4
Compare
Just a small fYI. Looks like the ember.js repo with this fixer ran on it works. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR looks very snazzy and great at first glance, thanks for sending it! I just want to confirm with @bradzacher that it's not doing more than it should? (I suspect the part of the fixer that merges imports together is not needed)
packages/eslint-plugin/tests/rules/consistent-type-imports.test.ts
Outdated
Show resolved
Hide resolved
Co-authored-by: Josh Goldberg <me@joshuakgoldberg.com>
Co-authored-by: Josh Goldberg <me@joshuakgoldberg.com>
Co-authored-by: Josh Goldberg <me@joshuakgoldberg.com>
Co-authored-by: Josh Goldberg <me@joshuakgoldberg.com>
Co-authored-by: Josh Goldberg <me@joshuakgoldberg.com>
Co-authored-by: Josh Goldberg <git@joshuakgoldberg.com>
…t.ts Co-authored-by: Josh Goldberg <git@joshuakgoldberg.com>
…t.ts Co-authored-by: Josh Goldberg <git@joshuakgoldberg.com>
0f997e8
to
f92cefd
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome - thanks so much for iterating on this with us @snewcomer! I'm pumped to get this shipped 😄
Can this be removed from the docs (https://typescript-eslint.io/rules/consistent-type-imports/#fixstyle) until it is released? I just spent several minutes troubleshooting
|
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`5.42.1` -> `5.43.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2feslint-plugin/5.42.1/5.43.0) | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint) | devDependencies | minor | [`5.42.1` -> `5.43.0`](https://renovatebot.com/diffs/npm/@typescript-eslint%2fparser/5.42.1/5.43.0) | --- ### Release Notes <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/eslint-plugin)</summary> ### [`v5.43.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/eslint-plugin/CHANGELOG.md#​5430-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5421v5430-2022-11-14) [Compare Source](typescript-eslint/typescript-eslint@v5.42.1...v5.43.0) ##### Bug Fixes - **eslint-plugin:** \[no-shadow] handle false positives on generics and parameters ([#​5902](typescript-eslint/typescript-eslint#5902)) ([769e8c8](typescript-eslint/typescript-eslint@769e8c8)) - **eslint-plugin:** \[promise-function-async] handle keyword token ([#​5907](typescript-eslint/typescript-eslint#5907)) ([f25a94f](typescript-eslint/typescript-eslint@f25a94f)) ##### Features - **eslint-plugin:** \[consistent-type-imports] support fixing to inline types ([#​5050](typescript-eslint/typescript-eslint#5050)) ([75dcdf1](typescript-eslint/typescript-eslint@75dcdf1)) - **eslint-plugin:** \[naming-convention] add support for "override" and "async" modifiers ([#​5310](typescript-eslint/typescript-eslint#5310)) ([#​5610](typescript-eslint/typescript-eslint#5610)) ([c759da1](typescript-eslint/typescript-eslint@c759da1)) - **eslint-plugin:** \[prefer-optional-chain] support suggesting `!foo || !foo.bar` as a valid match for the rule ([#​5594](typescript-eslint/typescript-eslint#5594)) ([923d486](typescript-eslint/typescript-eslint@923d486)) #### [5.42.1](typescript-eslint/typescript-eslint@v5.42.0...v5.42.1) (2022-11-07) ##### Bug Fixes - **eslint-plugin:** isTypeReadonly stack overflow ([#​5875](typescript-eslint/typescript-eslint#5875)) ([#​5876](typescript-eslint/typescript-eslint#5876)) ([2d9a33c](typescript-eslint/typescript-eslint@2d9a33c)) </details> <details> <summary>typescript-eslint/typescript-eslint (@​typescript-eslint/parser)</summary> ### [`v5.43.0`](https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/parser/CHANGELOG.md#​5430-httpsgithubcomtypescript-eslinttypescript-eslintcomparev5421v5430-2022-11-14) [Compare Source](typescript-eslint/typescript-eslint@v5.42.1...v5.43.0) **Note:** Version bump only for package [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) #### [5.42.1](typescript-eslint/typescript-eslint@v5.42.0...v5.42.1) (2022-11-07) **Note:** Version bump only for package [@​typescript-eslint/parser](https://github.com/typescript-eslint/parser) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4yNC4wIiwidXBkYXRlZEluVmVyIjoiMzQuMjQuMSJ9--> Co-authored-by: cabr2-bot <cabr2.help@gmail.com> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1639 Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org> Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org> Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
PR Checklist
Overview
This PR adds a configuration option
inline-type-imports
that users can utilize to inline their type imports.Previously, as on Typescript 3.8, we had the ability to
import type
. This import would be elided from the build deterministically.As of 4.5, we can inline that type, making it easier to manage top level imports.
The summation of the discussion and work is as follows.
consistent-type-specifier-style
: add rule import-js/eslint-plugin-import#2473.no-duplicates
: support inline type import withprefer-inline
option import-js/eslint-plugin-import#2475