UNPKG

eslint-plugin-perfectionist

Version:

ESLint plugin for sorting various data such as objects, imports, types, enums, JSX props, etc.

32 lines (31 loc) 999 B
import { AST_NODE_TYPES } from '@typescript-eslint/utils' /** * Computes the specifier modifiers of an import-like AST node. * * @param node - The AST node representing an import-like declaration. * @returns A list of specifier modifiers. */ function computeSpecifierModifiers(node) { if (node.type !== AST_NODE_TYPES.ImportDeclaration) { return [] } return computeImportDeclarationModifiers(node) } function computeImportDeclarationModifiers(node) { let importClauses = node.specifiers return [ ...(hasSpecifier(importClauses, AST_NODE_TYPES.ImportDefaultSpecifier) ? ['default'] : []), ...(hasSpecifier(importClauses, AST_NODE_TYPES.ImportNamespaceSpecifier) ? ['wildcard'] : []), ...(hasSpecifier(importClauses, AST_NODE_TYPES.ImportSpecifier) ? ['named'] : []), ] } function hasSpecifier(importClauses, specifier) { return importClauses.some(importClause => importClause.type === specifier) } export { computeSpecifierModifiers }