From f495fd931c8b48d300f5ce9d3c7274f2fffb35b6 Mon Sep 17 00:00:00 2001 From: Scott Newcomer Date: Thu, 8 Dec 2022 14:04:48 -0600 Subject: [PATCH] check ts version if prefer inline set --- src/rules/no-duplicates.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/rules/no-duplicates.js b/src/rules/no-duplicates.js index b246a4a450..33e68b1d37 100644 --- a/src/rules/no-duplicates.js +++ b/src/rules/no-duplicates.js @@ -1,5 +1,7 @@ import resolve from 'eslint-module-utils/resolve'; import docsUrl from '../docsUrl'; +import semver from 'semver'; +import typescriptPkg from 'typescript/package.json'; function checkImports(imported, context) { for (const [module, nodes] of imported.entries()) { @@ -109,7 +111,12 @@ function getFix(first, rest, sourceCode, context) { const [specifiersText] = specifiers.reduce( ([result, needsComma], specifier) => { const isTypeSpecifier = specifier.importNode.importKind === 'type'; + const preferInline = context.options[0] && context.options[0]['prefer-inline']; + if (preferInline && !semver.satisfies(typescriptPkg.version, '>= 4.5')) { + throw new Error('Your version of TypeScript does not support inline type imports.'); + } + const insertText = `${preferInline && isTypeSpecifier ? 'type ' : ''}${specifier.text}`; return [ needsComma && !specifier.isEmpty