UNPKG

@govbr-ds/webcomponents

Version:

Biblioteca de Web Components baseado no GovBR-DS

58 lines (57 loc) 2.15 kB
/*! * Construído por SERPRO * © https://serpro.gov.br/ - MIT License. */ import { MarkdownTable } from "./docs-utils"; export const propsToMarkdown = (props) => { const content = []; // Verifica se há propriedades a serem processadas if (props.length === 0) return content; content.push(`## Propriedades`); // Adiciona o título da seção content.push(``); const table = new MarkdownTable(); // Cria uma nova tabela Markdown // Adiciona o cabeçalho da tabela table.addHeader(['Propriedade', 'Atributo', 'Descrição', 'Tipo', 'Valor padrão']); // Itera sobre os metadados das propriedades props.forEach((prop) => { // Adiciona uma linha na tabela para cada propriedade table.addRow([ getPropertyField(prop), getAttributeField(prop), getDocsField(prop), getTypeField(prop), getDefaultValueField(prop), ]); }); // Adiciona a tabela convertida ao conteúdo content.push(...table.toMarkdown()); content.push(``); return content; // Retorna o conteúdo gerado }; // Formata o campo da propriedade const getPropertyField = (prop) => { return `\`${prop.name}\`${prop.required ? ' *(obrigatório)*' : ''}`; }; // Formata o campo do atributo const getAttributeField = (prop) => { return prop.attr && prop.attr.length > 0 ? `\`${prop.attr}\`` : '---'; }; // Formata o campo da documentação const getDocsField = (prop) => { return `${prop.deprecation !== undefined ? `<span class="deprecated">**[Descontinuado/Obsoleto]**</span> ${prop.deprecation}<br/><br/>` : ''}${prop.docs}`; }; // Formata o campo do tipo const getTypeField = (prop) => { return prop.type.includes('`') ? `\`\` ${prop.type} \`\`` : `\`${prop.type}\``; }; // Formata o campo do valor padrão const getDefaultValueField = (prop) => { if (prop.default === undefined || prop.default.trim() === '') return '---'; // Se existir, formata o valor return prop.default.includes('`') ? `\`\`${prop.default}\`\`` : `\`${prop.default}\``; }; //# sourceMappingURL=markdown-props.js.map