UNPKG

liquido

Version:

Conjunto de ferramentas para desenvolvimento de aplicações para a internet 100% em português

45 lines (44 loc) 2.11 kB
import { Declaracao, Decorador, Construto } from '@designliquido/delegua'; import { RotaOpenApi } from './rota-open-api'; import { MetodoHttpOpenApi } from './metodo-http-open-api'; import { DocumentoOpenApi } from './documento-open-api'; import { AutoDocumentadorInterface } from '../../interfaces/auto-documentador-interface'; /** * O auto documentador lê o projeto e gera uma especificação OpenAPI * baseada no que foi implementado a nível de rotas. */ export declare class AutoDocumentador implements AutoDocumentadorInterface { diretorioRotas: string; decoradoresValidos: { [key: string]: { [key: string]: string; }; }; erros: Error[]; nomeAplicacao: string; versao: string; descricao: string; nomeLicenca: string; urlLicensa: string; constructor(); protected obterEstruturasDeAltoNivelDeControlador(caminhoControlador: string): Declaracao[]; protected encontrarControladores(): Promise<any[]>; protected resolverConstrutoValorDecorador(construtoValor: Construto): any; protected resolverAtributosDecorador(decorador: Decorador): Record<string, any>; protected resolverDecoradorDocumentacao(atributos: Record<string, any>): RotaOpenApi; protected resolverDecoradorResposta(atributos: Record<string, any>): any; protected resolverDecorador(decorador: Decorador): any; /** * Para cada declaração vinda de um controlador, o que se espera são um * vetor de expressões, sendo cada expressão contendo pelo menos uma chamada * a um dos métodos de Liquido. Normalmente, esses métodos são `rotaGet`, `rotaPost`, * etc. * @param caminhoControlador O caminho original do arquivo controlador. * @param declaracoes As declarações implementadas no arquivo controlador. * @returns O descritivo do controlador, ou seja, as rotas e seus respectivos métodos. */ protected lerControlador(caminhoControlador: string, declaracoes: Declaracao[]): [string, { [key in MetodoHttpOpenApi]?: RotaOpenApi; }]; documentar(): Promise<DocumentoOpenApi>; }