123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- 'use strict';
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = getPropValue;
- exports.getLiteralPropValue = getLiteralPropValue;
- var _values = require('./values');
- var _values2 = _interopRequireDefault(_values);
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- var extractValue = function extractValue(attribute, extractor) {
- if (attribute && attribute.type === 'JSXAttribute') {
- if (attribute.value === null) {
- // Null valued attributes imply truthiness.
- // For example: <div aria-hidden />
- // See: https://facebook.github.io/react/docs/jsx-in-depth.html#boolean-attributes
- return true;
- }
- return extractor(attribute.value);
- }
- return undefined;
- };
- /**
- * Returns the value of a given attribute.
- * Different types of attributes have their associated
- * values in different properties on the object.
- *
- * This function should return the most *closely* associated
- * value with the intention of the JSX.
- *
- * @param attribute - The JSXAttribute collected by AST parser.
- */
- function getPropValue(attribute) {
- return extractValue(attribute, _values2.default);
- }
- /**
- * Returns the value of a given attribute.
- * Different types of attributes have their associated
- * values in different properties on the object.
- *
- * This function should return a value only if we can extract
- * a literal value from its attribute (i.e. values that have generic
- * types in JavaScript - strings, numbers, booleans, etc.)
- *
- * @param attribute - The JSXAttribute collected by AST parser.
- */
- function getLiteralPropValue(attribute) {
- return extractValue(attribute, _values.getLiteralValue);
- }
|