Compare commits
	
		
			10 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 38f64ae9af | ||
|  | 22527f61de | ||
|  | 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.5", | ||||||
|   "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.5", | ||||||
|   "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.5", | ||||||
|   "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.5", | ||||||
|   "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.5", | ||||||
|   "description": "", |   "description": "", | ||||||
|   "keywords": [], |   "keywords": [], | ||||||
|   "license": "MIT", |   "license": "MIT", | ||||||
|   | |||||||
| @@ -29,7 +29,13 @@ 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', | ||||||
|  |       ], | ||||||
|  |       SwitchCase: 1, | ||||||
|  |     }], | ||||||
|     '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.5", | ||||||
|   "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.5", | ||||||
|   "description": "", |   "description": "", | ||||||
|   "keywords": [], |   "keywords": [], | ||||||
|   "license": "MIT", |   "license": "MIT", | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user