Skip to content

Commit 557302a

Browse files
committed
Flag optional parameters and nullable return values.
1 parent 94ee8d9 commit 557302a

File tree

1 file changed

+25
-15
lines changed

1 file changed

+25
-15
lines changed

plugins/enum.js

+25-15
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@ var arrayUniq = require('array-uniq');
33
var extend = require('node.extend');
44

55
var memberTypes = {
6-
"Node.RenderCmd" :"any",
7-
"math.Matrix4":"Matrix4",
8-
"Number":"number",
9-
"Boolean" :"boolean",
10-
"String" :"string",
11-
"Null" :"null",
12-
"Array":"Array<any>",
6+
"Node.RenderCmd" :"any",
7+
"math.Matrix4":"Matrix4",
8+
"Number":"number",
9+
"Boolean" :"boolean",
10+
"String" :"string",
11+
"Null" :"null",
12+
"Array":"Array<any>",
1313
"object":"any",
14-
"Class":"any",
15-
"Bool":"boolean",
14+
"Class":"any",
15+
"Bool":"boolean",
1616
"ProgressTimer.TYPE_RADIAL":"number",
1717
"ProgressTimer.TYPE_BAR":"number",
1818
"CatmullRomBy":"any",
@@ -220,11 +220,19 @@ function dumpObject(node,isClass) {
220220

221221
var lastScope = tree;
222222

223-
function getTypes(type) {
223+
function getTypes(type,nullable) {
224224
var types = [];
225+
if (nullable) {
226+
types.push( "null" );
227+
}
225228
if (type && type.names) {
226229
for (var j=0; j<type.names.length; ++j) {
227230
types.push(fixType(type.names[j]));
231+
// If any of them are "any", just return
232+
// "any"
233+
if (types[types.length-1]==="any") {
234+
return "any";
235+
}
228236
}
229237
} else {
230238
return "any";
@@ -299,7 +307,7 @@ exports.handlers = {
299307
prototypes[path.normalize(e.filename).toLowerCase()]=startingPoints;
300308
},
301309
newDoclet: function(e) {
302-
// if (e.doclet.name.includes("Node")) {
310+
// if (e.doclet.name.includes("LayerColor")) {
303311
// console.log(e.doclet);
304312
// }
305313

@@ -391,9 +399,11 @@ exports.handlers = {
391399
if (param.name.indexOf("*")===0) {
392400
param.name = "..."+param.name.substr(1);
393401
}
394-
paramString += param.name.replace(/=/,"","g") + ":";
395-
396-
paramString += getTypes(param.type);
402+
paramString += param.name.replace(/=/,"","g") ;
403+
if (param.optional) {
404+
paramString += "?";
405+
}
406+
paramString += ":" + getTypes(param.type);
397407
if (i<params.length-1) {
398408
paramString+=",";
399409
}
@@ -411,7 +421,7 @@ exports.handlers = {
411421

412422
if (e.doclet.returns) {
413423
thisNode.kind = "function";
414-
thisNode.returns = getTypes(e.doclet.returns[0].type);
424+
thisNode.returns = getTypes(e.doclet.returns[0].type,e.doclet.returns[0].nullable);
415425
}
416426
if (e.doclet.properties) {
417427
for (var prop in e.doclet.properties) {

0 commit comments

Comments
 (0)