UNPKG

@rightcapital/phpdoc-parser

Version:

TypeScript version of PHPDoc parser with support for intersection types and generics

106 lines (105 loc) 4.42 kB
"use strict"; 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;