From 46e124a9339b20f3176527a35da23faf93dda8e6 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Mon, 2 Nov 2020 18:31:32 -0800 Subject: [PATCH] fix(api.json): use separate maps for methods and events (#4310) --- utils/doclint/generateApiJson.js | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/utils/doclint/generateApiJson.js b/utils/doclint/generateApiJson.js index 25b50b154c..9c79e918c9 100644 --- a/utils/doclint/generateApiJson.js +++ b/utils/doclint/generateApiJson.js @@ -41,9 +41,24 @@ function serializeClass(clazz) { const result = { name: clazz.name }; if (clazz.extends) result.extends = clazz.extends; - result.members = {}; - for (const member of clazz.membersArray) - result.members[member.name] = serializeMember(member); + if (clazz.comment) + result.comment = clazz.comment; + result.methods = {}; + result.events = {}; + result.properties = {}; + for (const member of clazz.membersArray) { + let map; + if (member.kind === 'event') { + map = result.events; + } else if (member.kind === 'method') { + map = result.methods; + } else if (member.kind === 'property') { + map = result.properties; + } else { + throw new Error('Unexpected member kind: ' + member.kind + ' ' + member.name + ' ' + member.type); + } + map[member.name] = serializeMember(member); + } return result; } @@ -67,11 +82,16 @@ function serializeProperty(arg) { } function sanitize(result) { + delete result.kind; delete result.args; delete result.argsArray; delete result.templates; if (result.properties && !Object.keys(result.properties).length) delete result.properties; + if (result.comment === '') + delete result.comment; + if (result.returnComment === '') + delete result.returnComment; } function serializeType(type) {