123456789101112131415161718192021222324252627282930 |
- 'use strict';
- const {getStaticValue} = require('eslint-utils');
- /**
- Get the property value of a `MemberExpression` node.
- @param {Node} node - The `MemberExpression` node.
- @param {Scope} [scope] - The scope to start finding the variable. Optional. If this scope was given, it tries to resolve identifier references which are in the given node as much as possible.
- */
- function getPropertyName(node, scope) {
- const {type, property, computed} = node;
- /* istanbul ignore next */
- if (type !== 'MemberExpression') {
- return;
- }
- if (!computed) {
- if (property.type === 'Identifier') {
- return property.name;
- }
- /* istanbul ignore next: It could be `PrivateIdentifier`(ESTree) or `PrivateName`(Babel) when it's in `class` */
- return;
- }
- const result = getStaticValue(property, scope);
- return result && result.value;
- }
- module.exports = getPropertyName;
|