module.exports = function collectInputsOutputs() { return { $runBefore: ['rendering-docs'], $process: function(docs) { docs.forEach(function(doc) { // if (doc.members && doc.name == "Searchbar"){ // console.log(doc.exportSymbol.members.hideCancelButton.valueDeclaration.decorators[0].expression.expression); // doc.members.forEach(function(method){ // if (method.name === "load") { // console.log(method); // } // }) // } if (doc.members && doc.members.length) { var members = []; var inputs = []; var outputs = []; memberLoop: for (var i in doc.members) { if (doc.members[i].decorators && doc.members[i].decorators.length) { decoratorLoop: for (var ii in doc.members[i].decorators) { if (doc.members[i].decorators[ii].name == 'Input') { inputs.push(parseMember(doc.members[i])); continue memberLoop; } if (doc.members[i].decorators[ii].name == 'Output') { outputs.push(parseMember(doc.members[i])); continue memberLoop; } } // not an input or output, must be a plain member members.push(doc.members[i]); }; } // update doc with pruned members list and add inputs and outputs doc.members = members; doc.inputs = inputs; doc.outputs = outputs; } function parseMember(member) { member.type = member.content.substring( member.content.indexOf('{') + 1, member.content.indexOf('}') ); member.description = member.content.substring( member.content.indexOf('}') + 1, member.content.length ); return member; } }); } }; };