diff --git a/package-lock.json b/package-lock.json index b243adc13690..6b9b8eed58b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3025,9 +3025,9 @@ } }, "dgeni-packages": { - "version": "0.21.2", - "resolved": "https://registry.npmjs.org/dgeni-packages/-/dgeni-packages-0.21.2.tgz", - "integrity": "sha1-sDEZQXZQe3x9HJc16hRmSXB2OGY=", + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/dgeni-packages/-/dgeni-packages-0.22.0.tgz", + "integrity": "sha1-ftB6+QdPZUeEclbBpltIiloXrQM=", "dev": true, "requires": { "canonical-path": "0.0.2", @@ -12088,13 +12088,13 @@ "integrity": "sha1-Be/1fw70V3+xRKefi5qWemzERRA=", "dev": true, "requires": { - "@types/node": "6.0.88" + "@types/node": "6.0.89" }, "dependencies": { "@types/node": { - "version": "6.0.88", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.88.tgz", - "integrity": "sha512-bYDPZTX0/s1aihdjLuAgogUAT5M+TpoWChEMea2p0yOcfn5bu3k6cJb9cp6nw268XeSNIGGr+4+/8V5K6BGzLQ==", + "version": "6.0.89", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.89.tgz", + "integrity": "sha512-Z/67L97+6H1qJiEEHSN1SQapkWjDss1D90rAnFcQ6UxKkah9juzotK5UNEP1bDv/0lJ3NAQTnVfc/JWdgCGruA==", "dev": true } } diff --git a/package.json b/package.json index 96fcea34a785..5cc93735ddf2 100644 --- a/package.json +++ b/package.json @@ -61,7 +61,7 @@ "axe-webdriverjs": "^1.1.1", "chalk": "^1.1.3", "dgeni": "^0.4.9", - "dgeni-packages": "^0.21.1", + "dgeni-packages": "^0.22.0", "firebase": "^4.0.0", "firebase-admin": "^5.0.0", "firebase-tools": "^3.11.0", diff --git a/tools/dgeni/common/dgeni-accessors-parse.ts b/tools/dgeni/common/dgeni-accessors-parse.ts deleted file mode 100644 index 6cd4d8abd8fb..000000000000 --- a/tools/dgeni/common/dgeni-accessors-parse.ts +++ /dev/null @@ -1,62 +0,0 @@ -import {getTypeText} from 'dgeni-packages/typescript/services/TsParser/getTypeText'; -import {getDecorators} from 'dgeni-packages/typescript/services/TsParser/getDecorators'; -import { - ClassDeclaration, - SyntaxKind, - GetAccessorDeclaration, - SetAccessorDeclaration, - Symbol, - displayPartsToString -} from 'typescript'; -import {CategorizedPropertyMemberDoc} from '../processors/categorizer'; - -/** - * Accessors are not being parsed properly within the latest Dgeni-packages version. - * This function re-analyzes the accessors and resolves the necessary API docs information. - * See: https://github.com/angular/dgeni-packages/issues/246 - */ -export function dgeniAccessorsParse(propertyDoc: CategorizedPropertyMemberDoc) { - if ((propertyDoc.isGetAccessor || propertyDoc.isSetAccessor) && !propertyDoc.type) { - const classDeclaration = propertyDoc.containerDoc.symbol.valueDeclaration as ClassDeclaration; - - // Walk through every TypeScript member node of the class declaration and filter for accessors - // with a name that match the current property member. For accessors there may be two - // declarations with the same name but with different type information. - classDeclaration.members - .filter((member: any) => member.kind === SyntaxKind.GetAccessor || - member.kind === SyntaxKind.SetAccessor) - .filter((member: any) => member.name && member.name.text === propertyDoc.name) - .forEach((member: GetAccessorDeclaration|SetAccessorDeclaration) => { - if (member.type) { - // If there is a type specified for the current member, then this node is a getter - // declaration and its type describes the property. - propertyDoc.type = getTypeText(member.type, []); - propertyDoc.decorators = getDecorators(member); - } else if (member.parameters.length === 1 && member.parameters[0].type) { - const type = member.parameters[0].type; - - // If there is a type specified for the first parameter of the property, then this - // can be considered a setter and the type of the parameter would describe the actual - // property. Transforming the type node to a string is done by the `getTypeText` function - // from Dgeni Packages. - if (type) { - propertyDoc.type = getTypeText(type, []); - propertyDoc.decorators = getDecorators(member); - } - } - - // If the current property document doesn't have any description set and the current - // TypeScript has a symbol from the TypeChecker, we can try to find a documentation - // comment on that symbol. - if (!propertyDoc.description && (member as any).symbol) { - const memberSymbol = (member as any).symbol as Symbol; - propertyDoc.description = displayPartsToString(memberSymbol.getDocumentationComment()); - } - }); - - if (!propertyDoc.type) { - console.warn(`Could not find type information for property "${propertyDoc.name}" in ` + - `${propertyDoc.fileInfo.relativePath}:${propertyDoc.startingLine}`); - } - } -} diff --git a/tools/dgeni/common/sort-members.ts b/tools/dgeni/common/sort-members.ts index 8e0a01d117e8..67e06a20ee57 100644 --- a/tools/dgeni/common/sort-members.ts +++ b/tools/dgeni/common/sort-members.ts @@ -2,7 +2,7 @@ import {CategorizedMethodMemberDoc, CategorizedPropertyMemberDoc} from '../proce import {isDirectiveInput, isDirectiveOutput} from './decorators'; /** Combined type for a categorized method member document. */ -type CategorizedMemberDoc = CategorizedMethodMemberDoc | CategorizedPropertyMemberDoc; +type CategorizedMemberDoc = CategorizedMethodMemberDoc & CategorizedPropertyMemberDoc; /** Sorts members by deprecated status, member decorator, and name. */ export function sortCategorizedMembers(docA: CategorizedMemberDoc, docB: CategorizedMemberDoc) { diff --git a/tools/dgeni/processors/categorizer.ts b/tools/dgeni/processors/categorizer.ts index b2719d6521f3..d9e824630499 100644 --- a/tools/dgeni/processors/categorizer.ts +++ b/tools/dgeni/processors/categorizer.ts @@ -20,7 +20,6 @@ import { isService } from '../common/decorators'; import {MethodMemberDoc} from 'dgeni-packages/typescript/api-doc-types/MethodMemberDoc'; -import {dgeniAccessorsParse} from '../common/dgeni-accessors-parse'; import {sortCategorizedMembers} from '../common/sort-members'; export interface CategorizedClassDoc extends ClassExportDoc { @@ -119,7 +118,6 @@ export class Categorizer implements Processor { */ private decoratePropertyDoc(propertyDoc: CategorizedPropertyMemberDoc) { decorateDeprecatedDoc(propertyDoc); - dgeniAccessorsParse(propertyDoc); propertyDoc.isDirectiveInput = isDirectiveInput(propertyDoc); propertyDoc.directiveInputAlias = getDirectiveInputAlias(propertyDoc);