From 1f3350381880c6e33022b850aeb6a18afbc1ee95 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Mon, 9 Oct 2017 18:07:37 +0200 Subject: [PATCH] chore: remove accessor type workaround Due to https://github.com/angular/dgeni-packages/issues/246 the Material docs package used a workaround for accessor types. The issue has been fixed with https://github.com/angular/dgeni-packages/pull/247 and the workaround can be removed now. --- package-lock.json | 90 ++++++++++----------- package.json | 2 +- tools/dgeni/common/dgeni-accessors-parse.ts | 62 -------------- tools/dgeni/common/sort-members.ts | 2 +- tools/dgeni/processors/categorizer.ts | 2 - 5 files changed, 47 insertions(+), 111 deletions(-) delete mode 100644 tools/dgeni/common/dgeni-accessors-parse.ts diff --git a/package-lock.json b/package-lock.json index 9e82ccd9d348..6b9b8eed58b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,89 +1,89 @@ { "name": "material2-srcs", - "version": "2.0.0-beta.11", + "version": "2.0.0-beta.12", "lockfileVersion": 1, "requires": true, "dependencies": { "@angular/animations": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-4.4.3.tgz", - "integrity": "sha1-OWxKW/sihH+eRYJFuplfnBMMDPM=", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-4.4.4.tgz", + "integrity": "sha1-ovk1NgQ0er4V35gpIFiEL1Lwi8I=", "requires": { "tslib": "1.7.1" } }, "@angular/common": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-4.4.3.tgz", - "integrity": "sha1-+SrGiwK+xfDm02A6hDKU3JbJYHQ=", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-4.4.4.tgz", + "integrity": "sha1-rgqBiqoMaj8JAee4C9lOHCLrk2U=", "requires": { "tslib": "1.7.1" } }, "@angular/compiler": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-4.4.3.tgz", - "integrity": "sha1-jwEWPa19s0CEl9mdOHVUtrGFrWY=", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-4.4.4.tgz", + "integrity": "sha1-Mm6wAp2aNUGqyhJN75rcUcNvK0E=", "requires": { "tslib": "1.7.1" } }, "@angular/compiler-cli": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-4.4.3.tgz", - "integrity": "sha1-GDr4HxQRhrjWYLBkKVktQLdUCko=", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-4.4.4.tgz", + "integrity": "sha1-BjCApJfZF1OWglBQIixxfaGE9s8=", "dev": true, "requires": { - "@angular/tsc-wrapped": "4.4.3", + "@angular/tsc-wrapped": "4.4.4", "minimist": "1.2.0", "reflect-metadata": "0.1.10" } }, "@angular/core": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-4.4.3.tgz", - "integrity": "sha1-5x0rB76qy6tIq39R1OIobqXXDhU=", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-4.4.4.tgz", + "integrity": "sha1-vTfs9UFY+XSJmWyThr0iL4CjL1w=", "requires": { "tslib": "1.7.1" } }, "@angular/forms": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-4.4.3.tgz", - "integrity": "sha1-JbQburWL8dqHJBHIUXwQ18U3PY4=", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-4.4.4.tgz", + "integrity": "sha1-TbN5BQm2sQ8duKfBt/Uhh89kz9Q=", "requires": { "tslib": "1.7.1" } }, "@angular/http": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@angular/http/-/http-4.4.3.tgz", - "integrity": "sha1-tVftJBRKrMRLE2zUd+hNL1eAiQM=", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-4.4.4.tgz", + "integrity": "sha1-Zn+vYWu2JBaOr65u6S5euiOp0fI=", "requires": { "tslib": "1.7.1" } }, "@angular/platform-browser": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-4.4.3.tgz", - "integrity": "sha1-I/mkW9Pcf0TZeHf7+OYDLez8ncs=", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-4.4.4.tgz", + "integrity": "sha1-o4mOLnup2E/6DUcUTGlxF5x1ruY=", "requires": { "tslib": "1.7.1" } }, "@angular/platform-browser-dynamic": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.4.3.tgz", - "integrity": "sha1-5B3dglJDJ3UxDqtZQM3Y3wYY8IQ=", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.4.4.tgz", + "integrity": "sha1-w8nrhUpShVagcFQSeTLlJ/qTLhQ=", "dev": true, "requires": { "tslib": "1.7.1" } }, "@angular/platform-server": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-4.4.3.tgz", - "integrity": "sha1-5l3OneVNbKZknMmJTFx6Mke6r0w=", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-4.4.4.tgz", + "integrity": "sha1-c+5B+hzshij8wDF0cnsnywAxsio=", "dev": true, "requires": { "parse5": "3.0.2", @@ -92,18 +92,18 @@ } }, "@angular/router": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-4.4.3.tgz", - "integrity": "sha1-JsyUd1o4YJRq6vHC6PYPTUTpCZE=", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-4.4.4.tgz", + "integrity": "sha1-e+ORCW6EPLPgT58F0dZaiN+bx88=", "dev": true, "requires": { "tslib": "1.7.1" } }, "@angular/tsc-wrapped": { - "version": "4.4.3", - "resolved": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-4.4.3.tgz", - "integrity": "sha1-LT84IQodTbA/yG3PHglYErhc0Rk=", + "version": "4.4.4", + "resolved": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-4.4.4.tgz", + "integrity": "sha1-mEGCHlVha4JsoWAlD+heFfx0/8M=", "dev": true, "requires": { "tsickle": "0.21.6" @@ -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 c8805ddb83e6..961ad640adec 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);