UNPKG

@govbr-ds/webcomponents

Version:

Biblioteca de Web Components baseado no GovBR-DS

59 lines (58 loc) 2.7 kB
/*! * Construído por SERPRO * © https://serpro.gov.br/ - MIT License. */ import { MarkdownTable } from "./docs-utils"; // Função para gerar a documentação em Markdown dos métodos de um componente export const methodsToMarkdown = (methods) => { const content = []; // Se não houver métodos, retorna um array vazio if (methods.length === 0) return content; // Adiciona o título da seção de métodos content.push(`## Métodos`); content.push(``); // Itera sobre cada método para gerar a documentação methods.forEach((method) => { content.push(`### \`${method.signature}\``); // Adiciona a assinatura do método como um título content.push(``); content.push(getDocsField(method)); // Adiciona a documentação do método content.push(``); // Se o método possui parâmetros, cria uma tabela para eles if (method.parameters.length > 0) { const parmsTable = new MarkdownTable(); // Cria uma nova tabela Markdown // Adiciona o cabeçalho da tabela parmsTable.addHeader(['Nome', 'Tipo', 'Descrição']); // Adiciona cada parâmetro à tabela method.parameters.forEach(({ name, type, docs }) => { parmsTable.addRow(['`' + name + '`', '`' + type + '`', docs]); }); // Adiciona a seção de parâmetros à documentação content.push(`#### Parâmetros`); content.push(``); content.push(...parmsTable.toMarkdown()); // Adiciona o conteúdo da tabela content.push(``); } // Se o método retorna um valor, adiciona essa informação à documentação if (method.returns !== undefined) { content.push(`#### Retorna`); content.push(``); content.push(`Tipo: \`${method.returns.type}\``); // Tipo de retorno content.push(``); content.push('```ts'); content.push(method.returns.docs); // Documentação do retorno content.push('```'); content.push(``); } }); content.push(``); // Linha em branco para formatação return content; // Retorna o conteúdo gerado em formato de Markdown }; // Função auxiliar para obter a documentação do campo do método const getDocsField = (prop) => { // Se o método está deprecated, adiciona uma mensagem de depreciação return `${prop.deprecation !== undefined ? `<span style="color:red">**[Descontinuado/Obsoleto]**</span> ${prop.deprecation}<br/><br/>` : ''}${prop.docs}`; // Retorna a documentação do método }; //# sourceMappingURL=markdown-methods.js.map