| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | "use strict"; |
| | Object.defineProperty(exports, "__esModule", { |
| | value: true |
| | }); |
| | Object.defineProperty(exports, "default", { |
| | enumerable: true, |
| | get: function() { |
| | return NodeAttributes; |
| | } |
| | }); |
| | function _class_call_check(instance, Constructor) { |
| | if (!(instance instanceof Constructor)) { |
| | throw new TypeError("Cannot call a class as a function"); |
| | } |
| | } |
| | function _defineProperties(target, props) { |
| | for(var i = 0; i < props.length; i++){ |
| | var descriptor = props[i]; |
| | descriptor.enumerable = descriptor.enumerable || false; |
| | descriptor.configurable = true; |
| | if ("value" in descriptor) descriptor.writable = true; |
| | Object.defineProperty(target, descriptor.key, descriptor); |
| | } |
| | } |
| | function _create_class(Constructor, protoProps, staticProps) { |
| | if (protoProps) _defineProperties(Constructor.prototype, protoProps); |
| | if (staticProps) _defineProperties(Constructor, staticProps); |
| | return Constructor; |
| | } |
| | function _define_property(obj, key, value) { |
| | if (key in obj) { |
| | Object.defineProperty(obj, key, { |
| | value: value, |
| | enumerable: true, |
| | configurable: true, |
| | writable: true |
| | }); |
| | } else { |
| | obj[key] = value; |
| | } |
| | return obj; |
| | } |
| | var NodeAttributes = function() { |
| | "use strict"; |
| | function NodeAttributes(ASTnode) { |
| | var _this = this; |
| | _class_call_check(this, NodeAttributes); |
| | _define_property(this, "attributes", void 0); |
| | this.attributes = {}; |
| | ASTnode.attributes.forEach(function(attribute) { |
| | if (!attribute.type || attribute.type !== 'JSXAttribute') { |
| | return; |
| | } |
| | if (!!attribute.value) { |
| | |
| | var value = typeof attribute.value.value === 'string' ? attribute.value.value : typeof attribute.value.expression.value !== 'undefined' ? attribute.value.expression.value : attribute.value.expression.properties; |
| | _this.attributes[attribute.name.name] = { |
| | hasValue: true, |
| | value: value |
| | }; |
| | } else { |
| | _this.attributes[attribute.name.name] = { |
| | hasValue: false |
| | }; |
| | } |
| | }); |
| | } |
| | _create_class(NodeAttributes, [ |
| | { |
| | key: "hasAny", |
| | value: function hasAny() { |
| | return !!Object.keys(this.attributes).length; |
| | } |
| | }, |
| | { |
| | key: "has", |
| | value: function has(attrName) { |
| | return !!this.attributes[attrName]; |
| | } |
| | }, |
| | { |
| | key: "hasValue", |
| | value: function hasValue(attrName) { |
| | return !!this.attributes[attrName].hasValue; |
| | } |
| | }, |
| | { |
| | key: "value", |
| | value: function value(attrName) { |
| | var attr = this.attributes[attrName]; |
| | if (!attr) { |
| | return true; |
| | } |
| | if (attr.hasValue) { |
| | return attr.value; |
| | } |
| | return undefined; |
| | } |
| | } |
| | ]); |
| | return NodeAttributes; |
| | }(); |
| |
|