Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
1ff53f2f04 | ||
|
316bbd903b | ||
|
bce5016b53 | ||
|
ddd34a9465 | ||
|
2f1c785eef | ||
|
4eb7aee28e | ||
|
769bee0139 | ||
|
07a15be095 |
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@antfu/eslint-config-monorepo",
|
"name": "@antfu/eslint-config-monorepo",
|
||||||
"version": "0.20.0",
|
"version": "0.20.4",
|
||||||
"private": true,
|
"private": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"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.20.0",
|
"version": "0.20.4",
|
||||||
"description": "",
|
"description": "",
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
@@ -135,6 +135,7 @@ module.exports = {
|
|||||||
'@typescript-eslint/no-unused-vars': 'off',
|
'@typescript-eslint/no-unused-vars': 'off',
|
||||||
'@typescript-eslint/no-use-before-define': 'off',
|
'@typescript-eslint/no-use-before-define': 'off',
|
||||||
'@typescript-eslint/no-var-requires': 'off',
|
'@typescript-eslint/no-var-requires': 'off',
|
||||||
|
'@typescript-eslint/comma-dangle': 'off',
|
||||||
'import/no-unresolved': 'off',
|
'import/no-unresolved': 'off',
|
||||||
'no-alert': 'off',
|
'no-alert': 'off',
|
||||||
'no-console': 'off',
|
'no-console': 'off',
|
||||||
@@ -293,6 +294,6 @@ module.exports = {
|
|||||||
// antfu
|
// antfu
|
||||||
'antfu/no-leading-newline': 'error',
|
'antfu/no-leading-newline': 'error',
|
||||||
'antfu/if-newline': 'error',
|
'antfu/if-newline': 'error',
|
||||||
'antfu/prefer-inline-type-import': 'error',
|
// 'antfu/prefer-inline-type-import': 'error',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@antfu/eslint-config-basic",
|
"name": "@antfu/eslint-config-basic",
|
||||||
"version": "0.20.0",
|
"version": "0.20.4",
|
||||||
"description": "",
|
"description": "",
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "eslint-plugin-antfu",
|
"name": "eslint-plugin-antfu",
|
||||||
"version": "0.20.0",
|
"version": "0.20.4",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
"module": "./dist/index.mjs",
|
"module": "./dist/index.mjs",
|
||||||
|
@@ -0,0 +1,27 @@
|
|||||||
|
import { RuleTester } from '@typescript-eslint/utils/dist/ts-eslint'
|
||||||
|
import { it } from 'vitest'
|
||||||
|
import rule, { RULE_NAME } from './prefer-inline-type-import'
|
||||||
|
|
||||||
|
const valids = [
|
||||||
|
'import { type Foo } from \'foo\'',
|
||||||
|
'import type Foo from \'foo\'',
|
||||||
|
'import type * as Foo from \'foo\'',
|
||||||
|
]
|
||||||
|
const invalids = [
|
||||||
|
['import type { Foo } from \'foo\'', 'import { type Foo } from \'foo\''],
|
||||||
|
]
|
||||||
|
|
||||||
|
it('runs', () => {
|
||||||
|
const ruleTester: RuleTester = new RuleTester({
|
||||||
|
parser: require.resolve('@typescript-eslint/parser'),
|
||||||
|
})
|
||||||
|
|
||||||
|
ruleTester.run(RULE_NAME, rule, {
|
||||||
|
valid: valids,
|
||||||
|
invalid: invalids.map(i => ({
|
||||||
|
code: i[0],
|
||||||
|
output: i[1].trim(),
|
||||||
|
errors: [{ messageId: 'preferInlineTypeImport' }],
|
||||||
|
})),
|
||||||
|
})
|
||||||
|
})
|
@@ -26,6 +26,9 @@ export default createEslintRule<Options, MessageIds>({
|
|||||||
const sourceCode = context.getSourceCode()
|
const sourceCode = context.getSourceCode()
|
||||||
return {
|
return {
|
||||||
ImportDeclaration: (node) => {
|
ImportDeclaration: (node) => {
|
||||||
|
// ignore bare type imports
|
||||||
|
if (node.specifiers.length === 1 && ['ImportNamespaceSpecifier', 'ImportDefaultSpecifier'].includes(node.specifiers[0].type))
|
||||||
|
return
|
||||||
if (node.importKind === 'type') {
|
if (node.importKind === 'type') {
|
||||||
context.report({
|
context.report({
|
||||||
*fix(fixer) {
|
*fix(fixer) {
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@antfu/eslint-config-react",
|
"name": "@antfu/eslint-config-react",
|
||||||
"version": "0.20.0",
|
"version": "0.20.4",
|
||||||
"description": "",
|
"description": "",
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
@@ -29,7 +29,12 @@ module.exports = {
|
|||||||
// Override JS
|
// Override JS
|
||||||
'no-useless-constructor': 'off',
|
'no-useless-constructor': 'off',
|
||||||
'indent': 'off',
|
'indent': 'off',
|
||||||
'@typescript-eslint/indent': ['error', 2],
|
'@typescript-eslint/indent': ['error', 2, {
|
||||||
|
ignoredNodes: [
|
||||||
|
'JSXAttribute',
|
||||||
|
'TSTypeParameterInstantiation',
|
||||||
|
],
|
||||||
|
}],
|
||||||
'no-unused-vars': 'off',
|
'no-unused-vars': 'off',
|
||||||
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
|
'@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
|
||||||
'no-redeclare': 'off',
|
'no-redeclare': 'off',
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@antfu/eslint-config-ts",
|
"name": "@antfu/eslint-config-ts",
|
||||||
"version": "0.20.0",
|
"version": "0.20.4",
|
||||||
"description": "",
|
"description": "",
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@antfu/eslint-config-vue",
|
"name": "@antfu/eslint-config-vue",
|
||||||
"version": "0.20.0",
|
"version": "0.20.4",
|
||||||
"description": "",
|
"description": "",
|
||||||
"keywords": [],
|
"keywords": [],
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
Reference in New Issue
Block a user