Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
54b234f4ef | ||
|
ff6a1fad6a |
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@antfu/eslint-config-monorepo",
|
"name": "@antfu/eslint-config-monorepo",
|
||||||
"version": "0.29.2",
|
"version": "0.29.3",
|
||||||
"private": true,
|
"private": true,
|
||||||
"packageManager": "pnpm@7.1.0",
|
"packageManager": "pnpm@7.1.0",
|
||||||
"author": "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)",
|
"author": "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)",
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@antfu/eslint-config",
|
"name": "@antfu/eslint-config",
|
||||||
"version": "0.29.2",
|
"version": "0.29.3",
|
||||||
"description": "Anthony's ESLint config",
|
"description": "Anthony's ESLint config",
|
||||||
"author": "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)",
|
"author": "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@antfu/eslint-config-basic",
|
"name": "@antfu/eslint-config-basic",
|
||||||
"version": "0.29.2",
|
"version": "0.29.3",
|
||||||
"description": "",
|
"description": "",
|
||||||
"author": "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)",
|
"author": "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "eslint-plugin-antfu",
|
"name": "eslint-plugin-antfu",
|
||||||
"version": "0.29.2",
|
"version": "0.29.3",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"homepage": "https://github.com/antfu/eslint-config",
|
"homepage": "https://github.com/antfu/eslint-config",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
|
@@ -13,12 +13,24 @@ type Foo<
|
|||||||
`function foo<
|
`function foo<
|
||||||
T
|
T
|
||||||
>() {}`,
|
>() {}`,
|
||||||
|
'const foo = <T>(name: T) => name',
|
||||||
|
`interface Log {
|
||||||
|
foo<T>(name: T): void
|
||||||
|
}`,
|
||||||
|
`interface Log {
|
||||||
|
<T>(name: T): void
|
||||||
|
}`,
|
||||||
]
|
]
|
||||||
const invalids = [
|
const invalids = [
|
||||||
['type Foo<T=true> = T', 'type Foo<T = true> = T'],
|
['type Foo<T=true> = T', 'type Foo<T = true> = T'],
|
||||||
['type Foo<T,K> = T', 'type Foo<T, K> = T'],
|
['type Foo<T,K> = T', 'type Foo<T, K> = T'],
|
||||||
['type Foo<T=false,K=1|2> = T', 'type Foo<T = false, K = 1|2> = T', 3],
|
['type Foo<T=false,K=1|2> = T', 'type Foo<T = false, K = 1|2> = T', 3],
|
||||||
['function foo <T>() {}', 'function foo<T>() {}'],
|
['function foo <T>() {}', 'function foo<T>() {}'],
|
||||||
|
[`interface Log {
|
||||||
|
foo <T>(name: T): void
|
||||||
|
}`, `interface Log {
|
||||||
|
foo<T>(name: T): void
|
||||||
|
}`],
|
||||||
] as const
|
] as const
|
||||||
|
|
||||||
it('runs', () => {
|
it('runs', () => {
|
||||||
|
@@ -23,17 +23,19 @@ export default createEslintRule<Options, MessageIds>({
|
|||||||
const sourceCode = context.getSourceCode()
|
const sourceCode = context.getSourceCode()
|
||||||
return {
|
return {
|
||||||
TSTypeParameterDeclaration: (node) => {
|
TSTypeParameterDeclaration: (node) => {
|
||||||
const pre = sourceCode.text.slice(0, node.range[0])
|
if (!['TSCallSignatureDeclaration', 'ArrowFunctionExpression'].includes(node.parent.type)) {
|
||||||
const preSpace = pre.match(/(\s+)$/)?.[0]
|
const pre = sourceCode.text.slice(0, node.range[0])
|
||||||
// strip space before <T>
|
const preSpace = pre.match(/(\s+)$/)?.[0]
|
||||||
if (preSpace && preSpace.length) {
|
// strip space before <T>
|
||||||
context.report({
|
if (preSpace && preSpace.length) {
|
||||||
node,
|
context.report({
|
||||||
messageId: 'genericSpacingMismatch',
|
node,
|
||||||
*fix(fixer) {
|
messageId: 'genericSpacingMismatch',
|
||||||
yield fixer.replaceTextRange([node.range[0] - preSpace.length, node.range[0]], '')
|
*fix(fixer) {
|
||||||
},
|
yield fixer.replaceTextRange([node.range[0] - preSpace.length, node.range[0]], '')
|
||||||
})
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// add space between <T,K>
|
// add space between <T,K>
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@antfu/eslint-config-react",
|
"name": "@antfu/eslint-config-react",
|
||||||
"version": "0.29.2",
|
"version": "0.29.3",
|
||||||
"description": "",
|
"description": "",
|
||||||
"author": "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)",
|
"author": "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@antfu/eslint-config-ts",
|
"name": "@antfu/eslint-config-ts",
|
||||||
"version": "0.29.2",
|
"version": "0.29.3",
|
||||||
"description": "",
|
"description": "",
|
||||||
"author": "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)",
|
"author": "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@antfu/eslint-config-vue",
|
"name": "@antfu/eslint-config-vue",
|
||||||
"version": "0.29.2",
|
"version": "0.29.3",
|
||||||
"description": "",
|
"description": "",
|
||||||
"author": "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)",
|
"author": "Anthony Fu <anthonyfu117@hotmail.com> (https://github.com/antfu/)",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
Reference in New Issue
Block a user