45 lines
1.1 KiB
JavaScript
45 lines
1.1 KiB
JavaScript
export const cleanTypedocData = (data, useClasses) => {
|
|
const nodes = data.children
|
|
|
|
const cleanData = nodes
|
|
.map((node) => {
|
|
const child =
|
|
node.children &&
|
|
node.children.filter(({ kindString }) => kindString === 'Class')[0]
|
|
|
|
return {
|
|
...node,
|
|
name: node.name.replace(/"/g, '').replace('src/', ''),
|
|
child
|
|
}
|
|
})
|
|
.filter(({ name }) => (useClasses || []).includes(name))
|
|
.sort((a, b) => useClasses.indexOf(a.name) - useClasses.indexOf(b.name))
|
|
.map(({ child }) => child)
|
|
.map((node) => ({
|
|
...node,
|
|
children:
|
|
node && node.children && node.children.sort((a, b) => a.id - b.id)
|
|
}))
|
|
|
|
return cleanData
|
|
}
|
|
|
|
// more kinds: 'Property', 'Enumeration'
|
|
const showKindOfProperty = {
|
|
Method: { onlyPublic: true },
|
|
Property: { onlyPublic: true }
|
|
}
|
|
|
|
export const filterByKindOfProperty = ({ kindString, flags }) => {
|
|
const config = showKindOfProperty[kindString]
|
|
if (!config) return
|
|
|
|
// filter out static methods by default
|
|
if (flags.isStatic) return
|
|
|
|
if (config.onlyPublic && !flags.isPublic) return
|
|
|
|
return true
|
|
}
|