dashboard-core/theme/dbd-soft-ui/utils/cmdHandler.js

53 lines
1.5 KiB
JavaScript
Raw Normal View History

2023-06-19 14:21:58 +05:00
module.exports = (commands, prefix) => {
if (!commands)
throw new Error('No commands were provided to the Soft UI cmdHandler.')
if (!prefix) prefix = '!'
let finalCategories = []
let categories = []
commands.map((cmd) => {
if (!categories.includes(cmd.category)) {
categories.push(cmd.category)
}
})
for (const category of categories) {
if (
category.toLowerCase().includes('admin') ||
category.toLowerCase().includes('owner') ||
category.toLowerCase().includes('development')
)
continue
let commandsArr = []
commands
.filter((cmd) => cmd.category === category)
.map((cmd) => {
let obj = {
commandName: cmd.name,
commandUsage: `${cmd.usage ? cmd.usage : `${prefix}${cmd.name}`}`,
commandDescription: cmd.description,
commandAlias: cmd.aliases?.join(', ') || 'None'
}
commandsArr.push(obj)
})
const categoryObj = {
categoryId: category,
category: `${capitalizeFirstLetter(category)}`,
subTitle: `${capitalizeFirstLetter(category)} commands`,
list: commandsArr
}
finalCategories.push(categoryObj)
}
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1)
}
return finalCategories
}