|
1 | 1 | 'use strict';
|
2 | 2 |
|
| 3 | +var _ = require('lodash'); |
3 | 4 | var hasOwnProperty = Object.prototype.hasOwnProperty;
|
4 | 5 |
|
5 | 6 | /**
|
@@ -119,16 +120,24 @@ module.exports = function (comments) {
|
119 | 120 | comment.members[scope] = node.members[scope];
|
120 | 121 | }
|
121 | 122 |
|
| 123 | + var events = comment.members.events || []; |
| 124 | + var groups = []; |
| 125 | + |
122 | 126 | if (comment.members.instance.length) {
|
123 |
| - comment.members.events = comment.members.instance.filter(function (member) { |
124 |
| - return member.kind === 'event'; |
125 |
| - }); |
| 127 | + groups = _.groupBy(comment.members.instance, isEvent); |
126 | 128 |
|
127 |
| - comment.members.instance = comment.members.instance.filter(function (member) { |
128 |
| - return member.kind !== 'event'; |
129 |
| - }); |
| 129 | + events = events.concat(groups[true] || []); |
| 130 | + comment.members.instance = groups[false] || []; |
| 131 | + } |
| 132 | + |
| 133 | + if (comment.members.static.length) { |
| 134 | + groups = _.groupBy(comment.members.static, isEvent); |
| 135 | + |
| 136 | + events = events.concat(groups[true] || []); |
| 137 | + comment.members.static = groups[false] || []; |
130 | 138 | }
|
131 | 139 |
|
| 140 | + comment.members.events = events; |
132 | 141 |
|
133 | 142 | comment.path = path.map(pick).concat(pick(comment));
|
134 | 143 |
|
@@ -168,3 +177,12 @@ module.exports = function (comments) {
|
168 | 177 |
|
169 | 178 | return toComments(root.members.static);
|
170 | 179 | };
|
| 180 | + |
| 181 | +/** |
| 182 | + * Check if a given member object is of kind `event`. |
| 183 | + * @param {Object} member - The member to check. |
| 184 | + * @returns {boolean} `true` if it is of kind `event`, otherwise false. |
| 185 | + */ |
| 186 | +function isEvent(member) { |
| 187 | + return member.kind === 'event'; |
| 188 | +} |
0 commit comments