UNPKG

eslint-plugin-perfectionist

Version:

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

53 lines (52 loc) 1.73 kB
import { computeAbstractModifier, computeAccessibilityModifier, computeDecoratedModifier, computeOverrideModifier, computeStaticModifier, } from './common-modifiers.js' import { computeDependencyName } from '../compute-dependency-name.js' import { computeMethodOrPropertyNameDetails } from './compute-method-or-property-name-details.js' /** * Computes details related to an accessor property. * * @param params - Parameters object. * @param params.isDecorated - Whether the accessor is decorated. * @param params.sourceCode - The source code object. * @param params.accessor - The accessor node to compute information for. * @returns An object containing various details about the accessor. */ function computeAccessorDetails({ isDecorated, sourceCode, accessor }) { let nameDetails = computeMethodOrPropertyNameDetails(accessor, sourceCode) let modifiers = computeModifiers({ hasPrivateHash: nameDetails.hasPrivateHash, isDecorated, accessor, }) return { dependencyNames: [ computeDependencyName({ nodeNameWithoutStartingHash: nameDetails.nameWithoutStartingHash, hasPrivateHash: nameDetails.hasPrivateHash, isStatic: modifiers.includes('static'), }), ], selectors: ['accessor-property'], isStatic: accessor.static, nameDetails, modifiers, } } function computeModifiers({ hasPrivateHash, isDecorated, accessor }) { return [ ...computeStaticModifier(accessor), ...computeAbstractModifier(accessor), ...computeDecoratedModifier(isDecorated), ...computeOverrideModifier(accessor), ...computeAccessibilityModifier({ hasPrivateHash, node: accessor, }), ] } export { computeAccessorDetails }