UNPKG

dgeni-packages

Version:

A collection of dgeni packages for generating documentation from source code

48 lines 2.33 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ClassExportDoc = void 0; /* tslint:disable:no-bitwise */ const typescript_1 = require("typescript"); const ClassLikeExportDoc_1 = require("../api-doc-types/ClassLikeExportDoc"); const MethodMemberDoc_1 = require("../api-doc-types/MethodMemberDoc"); /** * Classes are Class-like but also can contain static members * and cannot have multiple declarations */ class ClassExportDoc extends ClassLikeExportDoc_1.ClassLikeExportDoc { constructor(host, moduleDoc, symbol, aliasSymbol) { super(host, moduleDoc, symbol, symbol.valueDeclaration, aliasSymbol); this.docType = 'class'; this.statics = []; this.isAbstract = this.declaration.modifiers && this.declaration.modifiers.some(modifier => modifier.kind === typescript_1.SyntaxKind.AbstractKeyword); if (symbol.exports) { this.statics = this.getMemberDocs(symbol.exports, moduleDoc.hidePrivateMembers); } if (symbol.members) { // Get the constructor const constructorSymbol = symbol.members.get(typescript_1.InternalSymbolName.Constructor); if (constructorSymbol && constructorSymbol.getFlags() & typescript_1.SymbolFlags.Constructor) { this.constructorDoc = this.getConstructorDoc(constructorSymbol); } // Get the instance members this.members = this.getMemberDocs(symbol.members, moduleDoc.hidePrivateMembers); } } getConstructorDoc(constructorSymbol) { let constructorDoc = null; const overloads = []; constructorSymbol.getDeclarations().forEach(declaration => { if (declaration.body) { // This is the "real" declaration of the method constructorDoc = new MethodMemberDoc_1.MethodMemberDoc(this.host, this, constructorSymbol, declaration, overloads); } else { // This is an overload signature of the method overloads.push(new MethodMemberDoc_1.MethodMemberDoc(this.host, this, constructorSymbol, declaration, overloads)); } }); return constructorDoc || overloads.shift(); } } exports.ClassExportDoc = ClassExportDoc; //# sourceMappingURL=ClassExportDoc.js.map