mirror of
https://github.com/vacp2p/rfc.vac.dev.git
synced 2026-01-08 15:43:50 -05:00
34 lines
1.0 KiB
JavaScript
34 lines
1.0 KiB
JavaScript
const { compose } = require("./utils");
|
|
const {
|
|
positionDefaultReadmeToTop,
|
|
removeRFCNumberedDirectories,
|
|
separateFoldersAndFilesOrder,
|
|
orderAlphabeticallyAndByNumber
|
|
} = require("./modifiers")
|
|
const { isCategoryIndex } = require("./classifiers")
|
|
const { rawDocsToRFCOccurrenceMap } = require("./helpers")
|
|
|
|
async function sidebarItemsGenerator({defaultSidebarItemsGenerator, ...args}) {
|
|
const rfcOccurrenceMap = rawDocsToRFCOccurrenceMap(args.docs)
|
|
const defaultSidebarItems = await defaultSidebarItemsGenerator({
|
|
...args,
|
|
isCategoryIndex: isCategoryIndex(rfcOccurrenceMap)
|
|
});
|
|
|
|
/*
|
|
We'll have multiple O(N) passes through the items depending on the reducer implementation,
|
|
but we'll sacrifice very small performance for sake of easier maintainability
|
|
*/
|
|
const sidebarModifier = compose(
|
|
positionDefaultReadmeToTop,
|
|
separateFoldersAndFilesOrder,
|
|
removeRFCNumberedDirectories,
|
|
orderAlphabeticallyAndByNumber
|
|
)
|
|
|
|
return sidebarModifier(defaultSidebarItems)
|
|
}
|
|
|
|
module.exports = {
|
|
sidebarItemsGenerator
|
|
} |