30 lines
1023 B
TypeScript
30 lines
1023 B
TypeScript
import { DocumentBuilder } from "@nestjs/swagger";
|
|
import { RedocOptions } from "@juicyllama/nestjs-redoc";
|
|
import skillsDataset from "@/skills/skills.dataset";
|
|
|
|
export const addSkills = (
|
|
document: DocumentBuilder,
|
|
count: number = 5,
|
|
redocOptions: RedocOptions
|
|
): DocumentBuilder => {
|
|
const introTagGroup = redocOptions.tagGroups.find((tagGroup) => tagGroup.name === "Intro");
|
|
if (!introTagGroup) {
|
|
redocOptions.tagGroups.push({
|
|
name: "Intro",
|
|
tags: ["Skills"],
|
|
});
|
|
} else {
|
|
introTagGroup.tags.push("Skills");
|
|
}
|
|
|
|
const intro = "A short excerpt of my skills are";
|
|
const skillList = skillsDataset
|
|
.getData()
|
|
.slice(0, count)
|
|
.reduce((list, skill) => list.concat(`<li><strong>${skill.name}</strong> ${skill.description}</li>`), "");
|
|
|
|
const outro = "For my complete skillset, take a look at the GetSkills API endpoint.";
|
|
|
|
return document.addTag("Skills", `${intro}<br/><ul>${skillList}</ul><br/>${outro}`);
|
|
};
|