Compare commits

...

2 Commits

Author SHA1 Message Date
Anthony Fu
54b234f4ef chore: release v0.29.3 2022-11-02 17:21:31 +08:00
Anthony Fu
ff6a1fad6a fix(generic-spacing): improve cases 2022-11-02 17:21:24 +08:00
9 changed files with 32 additions and 18 deletions

View File

@@ -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/)",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",

View File

@@ -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', () => {

View File

@@ -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>

View File

@@ -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",

View File

@@ -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",

View File

@@ -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",