Skip to content
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): [no-type-alias] allowTemplateLiterals #5097

Closed

Conversation

jasperwreed
Copy link

@jasperwreed jasperwreed commented May 29, 2022

PR Checklist

Overview

This PR adds a configuration option allowTemplateLiterals that users can utilize to regulate template literals.

Fail

// with allowTemplateLiterals: false (default)
type SlashCommand = `/${string}`

Pass

// with allowTemplateLiterals: true (default)
type SlashCommand = `/${string}`

@nx-cloud
Copy link

nx-cloud bot commented May 29, 2022

☁️ Nx Cloud Report

CI is running/has finished running commands for commit 8e300eb. As they complete they will appear below. Click to see the status, the terminal output, and the build insights.

📂 See all runs for this branch


✅ Successfully ran 47 targets

Sent with 💌 from NxCloud.

@typescript-eslint
Copy link
Contributor

Thanks for the PR, @jasperwreed!

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.

@netlify
Copy link

netlify bot commented May 29, 2022

Deploy Preview for typescript-eslint ready!

Name Link
🔨 Latest commit 8e300eb
🔍 Latest deploy log https://app.netlify.com/sites/typescript-eslint/deploys/629ad7787ab8150008aeabd1
😎 Deploy Preview https://deploy-preview-5097--typescript-eslint.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site settings.

@codecov
Copy link

codecov bot commented May 29, 2022

Codecov Report

Merging #5097 (8e300eb) into main (dc58ff5) will increase coverage by 2.50%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main    #5097      +/-   ##
==========================================
+ Coverage   91.32%   93.83%   +2.50%     
==========================================
  Files         132      286     +154     
  Lines        1487     9841    +8354     
  Branches      224     2940    +2716     
==========================================
+ Hits         1358     9234    +7876     
- Misses         65      328     +263     
- Partials       64      279     +215     
Flag Coverage Δ
unittest 93.83% <100.00%> (+2.50%) ⬆️

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

Impacted Files Coverage Δ
packages/eslint-plugin/src/rules/no-type-alias.ts 100.00% <100.00%> (ø)
packages/eslint-plugin/src/rules/no-shadow.ts 78.48% <0.00%> (ø)
...ages/eslint-plugin/src/rules/no-empty-interface.ts 100.00% <0.00%> (ø)
...int-plugin/src/rules/require-array-sort-compare.ts 88.23% <0.00%> (ø)
...-plugin/src/rules/no-unnecessary-type-assertion.ts 94.66% <0.00%> (ø)
...ackages/eslint-plugin/src/rules/space-infix-ops.ts 100.00% <0.00%> (ø)
packages/eslint-plugin/src/rules/require-await.ts 90.47% <0.00%> (ø)
...s/eslint-plugin/src/rules/no-non-null-assertion.ts 87.09% <0.00%> (ø)
...int-plugin/src/rules/prefer-literal-enum-member.ts 100.00% <0.00%> (ø)
...ackages/eslint-plugin/src/rules/no-explicit-any.ts 92.85% <0.00%> (ø)
... and 145 more

@armano2 armano2 added package: eslint-plugin Issues related to @typescript-eslint/eslint-plugin enhancement: plugin rule option New rule option for an existing eslint-plugin rule labels May 29, 2022
@bradzacher bradzacher changed the title feat(eslint-plugin): allowTemplateLiterals feat(eslint-plugin): [no-type-alias] allowTemplateLiterals May 31, 2022
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.

Code structure looks great, just requesting a design change (or repudiation of me being wrong)? 🙂

@@ -600,6 +601,61 @@ type Foo = Partial<Bar>;
type Foo = Omit<Bar, 'a' | 'b'>;
```

### `allowTemplateLiterals`
Copy link
Member

Choose a reason for hiding this comment

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

This should mention that the option falls back to the value for allowAliases. That's what I would expect.

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.

Starting a new thread: let's make sure the existing behavior is preserved?

{
code: 'type Foo = `a-${number}` | (`b-${number}` & `c-${number}`);',
options: [{ allowAliases: 'in-unions-and-intersections' }],
},
Copy link
Member

Choose a reason for hiding this comment

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

Could you add these test cases back in, please? This shouldn't be a breaking change PR. They should still be valid code.

@JoshuaKGoldberg JoshuaKGoldberg added the awaiting response Issues waiting for a reply from the OP or another party label Jul 24, 2022
@JoshuaKGoldberg
Copy link
Member

👋 Just checking in @jasperwreed, is this PR still something you have the time to work on? No worries if not, just making sure the issue isn't blocked. 😄

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 15, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
awaiting response Issues waiting for a reply from the OP or another party enhancement: plugin rule option New rule option for an existing eslint-plugin rule package: eslint-plugin Issues related to @typescript-eslint/eslint-plugin
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants