diff --git a/scripts/docs/templates/common.template.html b/scripts/docs/templates/common.template.html index 75ce72393..34b73db93 100644 --- a/scripts/docs/templates/common.template.html +++ b/scripts/docs/templates/common.template.html @@ -178,10 +178,38 @@ Improve this doc <@ endif @> +<@- if doc.statics.length -@> +

Static Methods

+<@- for method in doc.statics @><@ if not method.internal @> +
+

<$ functionSyntax(method) $>

+ +<$ method.description $> + +<@ if method.params @> +<$ paramTable(method.params) $> +<@ endif @> + +<@ if method.this @> +

Method's `this` +<$ method.this $> +

+<@ endif @> + +<@ if method.returns @> +
+ +Returns: <$ typeInfo(method.returns) $> +
+<@ endif @> +<@ endif @> +<@ endfor -@> +<@ endif @> + <@- if doc.members and doc.members.length @> -

Methods

+

Instance Methods

<@- for method in doc.members @>
diff --git a/scripts/docs/typescript-package/index.js b/scripts/docs/typescript-package/index.js index 4c7046bc5..876c08085 100755 --- a/scripts/docs/typescript-package/index.js +++ b/scripts/docs/typescript-package/index.js @@ -12,6 +12,7 @@ module.exports = new Package('typescript-parsing', [basePackage]) .factory(require('./services/tsParser/getFileInfo')) .factory(require('./services/tsParser/getExportDocType')) .factory(require('./services/tsParser/getContent')) +.factory(require('./services/tsParser/getDirectiveInfo')) .factory(require('./services/convertPrivateClassesToInterfaces')) diff --git a/scripts/docs/typescript-package/processors/readTypeScriptModules.js b/scripts/docs/typescript-package/processors/readTypeScriptModules.js index 3739b7b33..aa80c7a15 100755 --- a/scripts/docs/typescript-package/processors/readTypeScriptModules.js +++ b/scripts/docs/typescript-package/processors/readTypeScriptModules.js @@ -4,7 +4,9 @@ var _ = require('lodash'); var ts = require('typescript'); module.exports = function readTypeScriptModules(tsParser, modules, getFileInfo, - getExportDocType, getContent, createDocMessage, log) { + getDirectiveInfo, + getExportDocType, getContent, + createDocMessage, log) { return { $runAfter: ['files-read'], @@ -132,8 +134,12 @@ module.exports = function readTypeScriptModules(tsParser, modules, getFileInfo, if (a.name < b.name) return -1; return 0; }); + exportDoc.statics.sort(function(a, b) { + if (a.name > b.name) return 1; + if (a.name < b.name) return -1; + return 0; + }); } - }); }); } @@ -212,7 +218,8 @@ module.exports = function readTypeScriptModules(tsParser, modules, getFileInfo, moduleDoc: moduleDoc, content: getContent(exportSymbol), fileInfo: getFileInfo(exportSymbol, basePath), - location: getLocation(exportSymbol) + location: getLocation(exportSymbol), + directiveInfo: getDirectiveInfo(exportSymbol) }; if (exportDoc.docType === 'var' || exportDoc.docType === 'const' || exportDoc.docType === 'let') { diff --git a/scripts/docs/typescript-package/services/tsParser/createCompilerHost.js b/scripts/docs/typescript-package/services/tsParser/createCompilerHost.js index 9aaa67007..c9d3d368b 100755 --- a/scripts/docs/typescript-package/services/tsParser/createCompilerHost.js +++ b/scripts/docs/typescript-package/services/tsParser/createCompilerHost.js @@ -57,7 +57,7 @@ module.exports = function createCompilerHost(log) { getNewLine: function() { return ts.sys.newLine; }, - fileExists: function (fileName) { + fileExists: function(fileName) { var text, resolvedPath, resolvedPathWithExt; // Strip off the extension and resolve relative to the baseDir diff --git a/scripts/docs/typescript-package/services/tsParser/getDirectiveInfo.js b/scripts/docs/typescript-package/services/tsParser/getDirectiveInfo.js new file mode 100644 index 000000000..ff536bea5 --- /dev/null +++ b/scripts/docs/typescript-package/services/tsParser/getDirectiveInfo.js @@ -0,0 +1,34 @@ + +module.exports = function getDirectiveInfo() { + + return function (symbol) { + var directiveInfo; + if (symbol.valueDeclaration) { + var decorators = symbol.valueDeclaration.decorators; + decorators && decorators.forEach(function(decorator){ + try { + var expr = decorator.expression; + var type = expr.expression.text.match(/Component|Directive/); + if (type) { + // type is either Component or Directive + // properties are selector, inputs and outputs + directiveInfo = { type: type[0], properties: [] }; + + //Directive only takes one argument + expr.arguments[0].properties.forEach(function(prop){ + var name = prop.name.text; + if (name === "selector") { + directiveInfo.properties.push({name: name, values: prop.initializer.text.split(",")}); + } + if (name === "inputs" || name === "outputs") { + var values = prop.initializer.elements.map(function(e){ return e.text }); + directiveInfo.properties.push({name: name, values: values }); + } + }); + } + } catch(e){} + }); + } + return directiveInfo; + }; +};