UNPKG

@ng-doc/builder

Version:

<!-- PROJECT LOGO --> <br /> <div align="center"> <a href="https://github.com/ng-doc/ng-doc"> <img src="https://ng-doc.com/assets/images/ng-doc.svg?raw=true" alt="Logo" height="150px"> </a>

30 lines 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getOverriddenMember = getOverriddenMember; const ts_morph_1 = require("ts-morph"); const class_1 = require("../class"); const interface_1 = require("../interface"); const find_member_1 = require("./find-member"); const get_member_parent_1 = require("./get-member-parent"); /** * Returns member that was overridden by the provided one * @param member - Target member */ function getOverriddenMember(member) { const parent = (0, get_member_parent_1.getMemberParent)(member); const name = member.getName(); if (ts_morph_1.Node.isClassDeclaration(parent)) { const baseClass = (0, class_1.findBaseClass)(parent, (cls) => { const member = (0, find_member_1.findMember)(cls, name); const isAbstract = ts_morph_1.Node.isAbstractable(member) && member.isAbstract(); return !!member && !isAbstract; }); return baseClass && (0, find_member_1.findMember)(baseClass, name); } if (ts_morph_1.Node.isInterfaceDeclaration(parent)) { const baseInterface = (0, interface_1.findInterface)(parent, (int) => int !== parent && !!(0, find_member_1.findMember)(int, name)); return baseInterface && (0, find_member_1.findMember)(baseInterface, name); } return undefined; } //# sourceMappingURL=get-overridden-member.js.map