liquido
Version:
Conjunto de ferramentas para desenvolvimento de aplicações para a internet 100% em português
45 lines (44 loc) • 2.11 kB
TypeScript
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>;
}