dgeni-packages
Advanced tools
Comparing version 0.18.0 to 0.19.0
# Changelog | ||
# 0.19.0 3 May 2017 | ||
- feat(typescript): upgrade to TypeScript 2.2.1 0f48e866 | ||
## Breaking Changes | ||
The upgrade to TypeScript v2 may well break projects that are generating docs | ||
based on a TypeScript v1 application. | ||
# 0.18.0 30 April 2017 | ||
@@ -4,0 +13,0 @@ |
{ | ||
"name": "dgeni-packages", | ||
"version": "0.18.0", | ||
"version": "0.19.0", | ||
"description": "A collection of dgeni packages for generating documentation from source code", | ||
@@ -57,3 +57,3 @@ "scripts": { | ||
"stringmap": "^0.2.2", | ||
"typescript": "^1.7.5" | ||
"typescript": "^2.2.1" | ||
}, | ||
@@ -60,0 +60,0 @@ "devDependencies": { |
@@ -0,1 +1,2 @@ | ||
interface Findable<T> {} | ||
export interface MyInterface { | ||
@@ -2,0 +3,0 @@ optionalProperty? : string |
@@ -81,29 +81,34 @@ var glob = require('glob'); | ||
// Generate docs for each of the export's members | ||
if (resolvedExport.flags & ts.SymbolFlags.HasMembers) { | ||
resolvedExport.declarations.forEach(declaration => { | ||
for(var memberName in resolvedExport.members) { | ||
// FIXME(alexeagle): why do generic type params appear in members? | ||
if (memberName === 'T') { | ||
continue; | ||
} | ||
log.silly('>>>>>> member: ' + memberName + ' from ' + exportDoc.id + ' in ' + moduleDoc.id); | ||
var memberSymbol = resolvedExport.members[memberName]; | ||
var memberDoc = createMemberDoc(memberSymbol, exportDoc, basePath, parseInfo.typeChecker); | ||
if (declaration.members) { | ||
declaration.members.forEach(member => { | ||
const memberSymbol = member.symbol; | ||
if (!memberSymbol) return; | ||
// We special case the constructor and sort the other members alphabetically | ||
if (memberSymbol.flags & ts.SymbolFlags.Constructor) { | ||
exportDoc.constructorDoc = memberDoc; | ||
docs.push(memberDoc); | ||
} else if (!hidePrivateMembers || (memberSymbol.name.charAt(0) !== '_' && memberDoc.accessibility !== 'private')) { | ||
docs.push(memberDoc); | ||
exportDoc.members.push(memberDoc); | ||
} else if (memberSymbol.name === '__call' && memberSymbol.flags & ts.SymbolFlags.Signature) { | ||
docs.push(memberDoc); | ||
exportDoc.callMember = memberDoc; | ||
} else if (memberSymbol.name === '__new' && memberSymbol.flags & ts.SymbolFlags.Signature) { | ||
docs.push(memberDoc); | ||
exportDoc.newMember = memberDoc; | ||
} | ||
const memberName = memberSymbol.name; | ||
// FIXME(alexeagle): why do generic type params appear in members? | ||
if (memberName === 'T') { | ||
return; | ||
} | ||
log.silly('>>>>>> member: ' + memberName + ' from ' + exportDoc.id + ' in ' + moduleDoc.id); | ||
var memberDoc = createMemberDoc(memberSymbol, exportDoc, basePath, parseInfo.typeChecker); | ||
// We special case the constructor and sort the other members alphabetically | ||
if (memberSymbol.flags & ts.SymbolFlags.Constructor) { | ||
exportDoc.constructorDoc = memberDoc; | ||
docs.push(memberDoc); | ||
} else if (!hidePrivateMembers || (memberSymbol.name.charAt(0) !== '_' && memberDoc.accessibility !== 'private')) { | ||
docs.push(memberDoc); | ||
exportDoc.members.push(memberDoc); | ||
} else if (memberSymbol.name === '__call' && memberSymbol.flags & ts.SymbolFlags.Signature) { | ||
docs.push(memberDoc); | ||
exportDoc.callMember = memberDoc; | ||
} else if (memberSymbol.name === '__new' && memberSymbol.flags & ts.SymbolFlags.Signature) { | ||
docs.push(memberDoc); | ||
exportDoc.newMember = memberDoc; | ||
} | ||
}); | ||
} | ||
} | ||
}); | ||
@@ -110,0 +115,0 @@ if (exportDoc.docType === 'enum') { |
@@ -17,2 +17,18 @@ var mockPackage = require('../mocks/mockPackage'); | ||
describe('exportDocs', function() { | ||
it('should extract all content from the comments', function() { | ||
processor.sourceFiles = [ 'commentContent.ts' ]; | ||
var docs = []; | ||
processor.$process(docs); | ||
someClassDoc = docs.find(doc => doc.name === 'SomeClass'); | ||
expect(someClassDoc.content).toEqual('@empty\n'); | ||
fooDoc = docs.find(doc => doc.name === 'foo'); | ||
expect(fooDoc.content).toEqual('The description\n@tag1\ntag info\n'); | ||
barDoc = docs.find(doc => doc.name === 'bar'); | ||
expect(barDoc.content).toEqual('@name bar\n@description\ndescription of bar {@inline-tag} more content\n'); | ||
}); | ||
it('should provide the original module if the export is re-exported', function() { | ||
@@ -50,4 +66,3 @@ processor.sourceFiles = [ 'publicModule.ts' ]; | ||
var someThingDoc = docs[3]; | ||
expect(someThingDoc.name).toEqual('SomeThing'); | ||
var someThingDoc = docs.find(doc => doc.name == 'SomeThing'); | ||
expect(someThingDoc.docType).toEqual('interface'); | ||
@@ -54,0 +69,0 @@ expect(someThingDoc.content).toEqual('constant\n'); |
@@ -28,6 +28,6 @@ var ts = require('typescript'); | ||
var sourceFile = ts.getSourceFileOfNode(declaration); | ||
var commentRanges = ts.getJsDocComments(declaration, sourceFile); | ||
const commentRanges = ts.getJSDocCommentRanges(declaration, sourceFile.text); | ||
if (commentRanges) { | ||
commentRanges.forEach(function(commentRange) { | ||
commentRanges.forEach(commentRange => { | ||
content += sourceFile.text | ||
@@ -34,0 +34,0 @@ .substring(commentRange.pos+ '/**'.length, commentRange.end - '*/'.length) |
@@ -8,6 +8,7 @@ var ts = require('typescript'); | ||
if (!declaration) return 'public'; | ||
if(declaration.flags & ts.NodeFlags.Private) { | ||
const flags = ts.getCombinedModifierFlags(declaration); | ||
if (flags & ts.ModifierFlags.Private) { | ||
return 'private'; | ||
} | ||
if(declaration.flags & ts.NodeFlags.Protected) { | ||
if (flags & ts.ModifierFlags.Protected) { | ||
return 'protected'; | ||
@@ -14,0 +15,0 @@ } |
Sorry, the diff of this file is not supported yet
569488
369
10449
+ Addedtypescript@2.9.2(transitive)
- Removedtypescript@1.8.10(transitive)
Updatedtypescript@^2.2.1