Skip to content

Commit 00ddf40

Browse files
committed
remove group-by
1 parent 193f2aa commit 00ddf40

3 files changed

Lines changed: 0 additions & 155 deletions

File tree

es5/jsdoc-parse.js

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ var t = require('typical');
99

1010
exports.parse = parse;
1111
exports.getStats = getStats;
12-
exports.groupBy = groupBy;
1312

1413
function parse(jsdocExplainOutput, options) {
1514
options = new ParseOptions(options);
@@ -34,10 +33,6 @@ function parse(jsdocExplainOutput, options) {
3433
data = sort(data, ['scope', 'category', 'kind', 'order']);
3534
}
3635

37-
if (options['group-by']) {
38-
data = groupBy(data, options['group-by']);
39-
}
40-
4136
return data;
4237
}
4338

@@ -66,67 +61,6 @@ function sort(array, sortBy) {
6661
}
6762
}
6863

69-
function _addGroup(doclets, groupByFields) {
70-
return doclets.map(function (doclet) {
71-
doclet._group = groupByFields.map(function (field) {
72-
return t.isDefined(doclet[field]) ? doclet[field] : null;
73-
});
74-
return doclet;
75-
});
76-
}
77-
78-
function groupBy(doclets, groupByFields) {
79-
var commonSequence = require('common-sequence');
80-
81-
groupByFields = groupByFields.slice(0);
82-
83-
groupByFields.forEach(function (group) {
84-
var docletGroupValues = doclets.filter(function (doclet) {
85-
return doclet.kind !== 'constructor';
86-
}).map(function (d) {
87-
return d[group];
88-
});
89-
var groupValues = a.unique(docletGroupValues);
90-
if (groupValues.length <= 1) groupByFields = a.without(groupByFields, group);
91-
});
92-
93-
doclets = _addGroup(doclets, groupByFields);
94-
95-
var inserts = [];
96-
var prevGroup = [];
97-
doclets.forEach(function (doclet, index) {
98-
if (!deepEqual(doclet._group, prevGroup)) {
99-
var common = commonSequence(doclet._group, prevGroup);
100-
doclet._group.forEach(function (group, i) {
101-
if (group !== common[i] && group !== null) {
102-
inserts.push({
103-
index: index,
104-
group: group
105-
});
106-
}
107-
});
108-
}
109-
prevGroup = doclet._group;
110-
delete doclet._group;
111-
});
112-
113-
inserts.reverse().forEach(function (insert, i) {
114-
doclets.splice(insert.index, 0, { id: insert.group, kind: 'group', parentId: null });
115-
});
116-
117-
var currentGroup = null;
118-
doclets.forEach(function (d, index) {
119-
d.parentId = currentGroup;
120-
if (index === 0) {
121-
currentGroup = d.id;
122-
} else {
123-
if (d.kind === 'group') currentGroup = d.id;
124-
}
125-
});
126-
127-
return doclets;
128-
}
129-
13064
function deepEqual(a, b) {
13165
return JSON.stringify(a) === JSON.stringify(b);
13266
}

lib/jsdoc-parse.js

Lines changed: 0 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,13 @@ const t = require('typical')
1313

1414
exports.parse = parse
1515
exports.getStats = getStats
16-
exports.groupBy = groupBy
1716

1817
/**
1918
* @param {object[]} - jsdoc output
2019
* @param [options] {object}
2120
* @param [options.private] {boolean} - Include identifier documentation marked as `@private` in the output
2221
* @param [options.html] {boolean} - Enable experimental parsing of .html files.
2322
* @param [options.sort-by=[ 'scope', 'category', 'kind', 'order' ]] {string[]} - Sort by one of more fields, e.g. `--sort-by kind category`. Pass the special value `none` to remove the default sort order.
24-
* @param [options.group-by] {string[]}
2523
*/
2624
function parse (jsdocExplainOutput, options) {
2725
options = new ParseOptions(options)
@@ -44,10 +42,6 @@ function parse (jsdocExplainOutput, options) {
4442
data = sort(data, [ 'scope', 'category', 'kind', 'order' ])
4543
}
4644

47-
if (options['group-by']) {
48-
data = groupBy(data, options['group-by'])
49-
}
50-
5145
return data
5246
}
5347

@@ -86,74 +80,6 @@ function sort (array, sortBy) {
8680
}
8781
}
8882

89-
function _addGroup (doclets, groupByFields) {
90-
return doclets.map(doclet => {
91-
doclet._group = groupByFields
92-
.map(field => t.isDefined(doclet[field]) ? doclet[field] : null)
93-
return doclet
94-
})
95-
}
96-
97-
/**
98-
* takes the children of this, groups them, inserts group headings..
99-
*/
100-
function groupBy (doclets, groupByFields) {
101-
var commonSequence = require('common-sequence')
102-
103-
/* don't modify the input array */
104-
groupByFields = groupByFields.slice(0)
105-
106-
/* remove groupByFields that don't have any values */
107-
// console.error(groupByFields)
108-
groupByFields
109-
.forEach(group => {
110-
const docletGroupValues = doclets
111-
.filter(doclet => doclet.kind !== 'constructor')
112-
.map(d => d[group])
113-
let groupValues = a.unique(docletGroupValues)
114-
if (groupValues.length <= 1) groupByFields = a.without(groupByFields, group)
115-
})
116-
// console.error(groupByFields)
117-
doclets = _addGroup(doclets, groupByFields)
118-
119-
var inserts = []
120-
var prevGroup = []
121-
doclets.forEach((doclet, index) => {
122-
if (!deepEqual(doclet._group, prevGroup)) {
123-
var common = commonSequence(doclet._group, prevGroup)
124-
doclet._group.forEach((group, i) => {
125-
if (group !== common[i] && group !== null) {
126-
inserts.push({
127-
index: index,
128-
group: group
129-
})
130-
}
131-
})
132-
}
133-
prevGroup = doclet._group
134-
delete doclet._group
135-
})
136-
137-
/* insert group records */
138-
inserts.reverse().forEach((insert, i) => {
139-
// console.error(i, insert)
140-
doclets.splice(insert.index, 0, { id: insert.group, kind: 'group', parentId: null })
141-
})
142-
143-
/* update parentIds for group members */
144-
let currentGroup = null
145-
doclets.forEach((d, index) => {
146-
d.parentId = currentGroup
147-
if (index === 0) {
148-
currentGroup = d.id
149-
} else {
150-
if (d.kind === 'group') currentGroup = d.id
151-
}
152-
})
153-
154-
return doclets
155-
}
156-
15783
function deepEqual (a, b) {
15884
return JSON.stringify(a) === JSON.stringify(b)
15985
}

test/group-by.js

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)