@rightcapital/phpdoc-parser
Version:
TypeScript version of PHPDoc parser with support for intersection types and generics
106 lines (105 loc) • 4.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PhpDocNode = void 0;
const base_node_1 = require("../base-node");
const deprecated_tag_value_node_1 = require("./deprecated-tag-value-node");
const extends_tag_value_node_1 = require("./extends-tag-value-node");
const implements_tag_value_node_1 = require("./implements-tag-value-node");
const mixin_tag_value_node_1 = require("./mixin-tag-value-node");
const param_tag_value_node_1 = require("./param-tag-value-node");
const php_doc_tag_node_1 = require("./php-doc-tag-node");
const property_tag_value_node_1 = require("./property-tag-value-node");
const return_tag_value_node_1 = require("./return-tag-value-node");
const template_tag_value_node_1 = require("./template-tag-value-node");
const throws_tag_value_node_1 = require("./throws-tag-value-node");
const typeless_param_tag_value_node_1 = require("./typeless-param-tag-value-node");
const uses_tag_value_node_1 = require("./uses-tag-value-node");
const var_tag_value_node_1 = require("./var-tag-value-node");
class PhpDocNode extends base_node_1.BaseNode {
constructor(children) {
super();
this.children = children;
}
getTags() {
return this.children.filter((child) => {
return child instanceof php_doc_tag_node_1.PhpDocTagNode;
});
}
getTagsByName(tagName) {
return this.getTags().filter((tag) => {
return tag.name === tagName;
});
}
getPropertyTagValues(tagName = '@property') {
return this.getTagsByName(tagName)
.map((tag) => tag.value)
.filter((value) => {
return value instanceof property_tag_value_node_1.PropertyTagValueNode;
});
}
getVarTagValues(tagName = '@var') {
return this.getTagsByName(tagName)
.map((tag) => tag.value)
.filter((value) => {
return value instanceof var_tag_value_node_1.VarTagValueNode;
});
}
getParamTagValues(tagName = '@param') {
return this.getTagsByName(tagName)
.map((tag) => tag.value)
.filter((value) => {
return value instanceof param_tag_value_node_1.ParamTagValueNode;
});
}
getTypelessParamTagValues(tagName = '@param') {
return this.getTagsByName(tagName)
.map((tag) => tag.value)
.filter((value) => {
return value instanceof typeless_param_tag_value_node_1.TypelessParamTagValueNode;
});
}
getTemplateTagValues(tagName = '@template') {
return this.getTagsByName(tagName)
.map((tag) => tag.value)
.filter((value) => value instanceof template_tag_value_node_1.TemplateTagValueNode);
}
getExtendsTagValues(tagName = '@extends') {
return this.getTagsByName(tagName)
.map((tag) => tag.value)
.filter((value) => value instanceof extends_tag_value_node_1.ExtendsTagValueNode);
}
getImplementsTagValues(tagName = '@implements') {
return this.getTagsByName(tagName)
.map((tag) => tag.value)
.filter((value) => value instanceof implements_tag_value_node_1.ImplementsTagValueNode);
}
getUsesTagValues(tagName = '@use') {
return this.getTagsByName(tagName)
.map((tag) => tag.value)
.filter((value) => value instanceof uses_tag_value_node_1.UsesTagValueNode);
}
getReturnTagValues(tagName = '@return') {
return this.getTagsByName(tagName)
.map((tag) => tag.value)
.filter((value) => value instanceof return_tag_value_node_1.ReturnTagValueNode);
}
getThrowsTagValues(tagName = '@throws') {
return this.getTagsByName(tagName)
.map((tag) => tag.value)
.filter((value) => value instanceof throws_tag_value_node_1.ThrowsTagValueNode);
}
getMixinTagValues(tagName = '@mixin') {
return this.getTagsByName(tagName)
.map((tag) => tag.value)
.filter((value) => value instanceof mixin_tag_value_node_1.MixinTagValueNode);
}
getDeprecatedTagValues() {
return this.getTagsByName('@deprecated')
.map((tag) => tag.value)
.filter((value) => value instanceof deprecated_tag_value_node_1.DeprecatedTagValueNode);
}
getNodeType() {
return 'PhpDocNode';
}
}
exports.PhpDocNode = PhpDocNode;