58 lines
1.9 KiB
JavaScript
58 lines
1.9 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
function _classCallCheck(instance, Constructor) {
|
|
if (!(instance instanceof Constructor)) {
|
|
throw new TypeError("Cannot call a class as a function");
|
|
}
|
|
}
|
|
var NodeAttributes = /*#__PURE__*/ function() {
|
|
"use strict";
|
|
function NodeAttributes(ASTnode) {
|
|
var _this = this;
|
|
_classCallCheck(this, NodeAttributes);
|
|
this.attributes = {};
|
|
ASTnode.attributes.forEach(function(attribute) {
|
|
if (!attribute.type || attribute.type !== "JSXAttribute") {
|
|
return;
|
|
}
|
|
if (!!attribute.value) {
|
|
// hasValue
|
|
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
|
|
};
|
|
}
|
|
});
|
|
}
|
|
var _proto = NodeAttributes.prototype;
|
|
_proto.hasAny = function hasAny() {
|
|
return !!Object.keys(this.attributes).length;
|
|
};
|
|
_proto.has = function has(attrName) {
|
|
return !!this.attributes[attrName];
|
|
};
|
|
_proto.hasValue = function hasValue(attrName) {
|
|
return !!this.attributes[attrName].hasValue;
|
|
};
|
|
_proto.value = function value(attrName) {
|
|
var attr = this.attributes[attrName];
|
|
if (!attr) {
|
|
return true;
|
|
}
|
|
if (attr.hasValue) {
|
|
return attr.value;
|
|
}
|
|
return undefined;
|
|
};
|
|
return NodeAttributes;
|
|
}();
|
|
exports.default = NodeAttributes;
|