Skip to content

Commit 6f894c5

Browse files
feat: otimiza desempenho de rotas com análise estática e cache LRU
1 parent 4fb6334 commit 6f894c5

5 files changed

Lines changed: 378 additions & 69 deletions

File tree

fontes/interface-linha-comando/documentar/index.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import * as sistemaArquivos from 'fs';
22
import caminho from 'path';
33
import { yellow } from 'chalk';
44

5+
import safeStringify from 'safe-stable-stringify';
6+
57
import { AutoDocumentador } from '../../infraestrutura/auto-documentacao/auto-documentador';
68

79
/**
@@ -34,7 +36,10 @@ export async function documentar(caminhoSaida?: string): Promise<void> {
3436
}
3537

3638
const caminhoArquivoSaida = caminhoSaida || caminho.join(process.cwd(), 'openapi.json');
37-
sistemaArquivos.writeFileSync(caminhoArquivoSaida, JSON.stringify(documento, undefined, 4) + '\n');
39+
sistemaArquivos.writeFileSync(
40+
caminhoArquivoSaida,
41+
safeStringify(documento, undefined, 4) + '\n'
42+
);
3843

3944
console.log(
4045
`Documentação OpenAPI gerada com ${rotasDocumentadas.length} rota(s) em: ${caminhoArquivoSaida}`

fontes/interface-linha-comando/novo/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { execSync } from 'child_process';
22
import { async as glob } from 'fast-glob';
33
import sistemaArquivos from 'fs';
44
import caminho from 'path';
5+
import safeStringify from 'safe-stable-stringify';
56

67
export function criarDiretorioAplicacao(nomeAplicacao: string): string {
78
const caminhoDiretorioProjeto = process.cwd() + caminho.sep + nomeAplicacao;
@@ -125,7 +126,7 @@ export async function detectarGerenciadorDePacotes(
125126

126127
await sistemaArquivos.promises.writeFile(
127128
caminhoPackageJson,
128-
JSON.stringify(conteudoPackageJson, null, 2) + '\n'
129+
safeStringify(conteudoPackageJson, null, 2) + '\n'
129130
);
130131
}
131132

@@ -146,7 +147,7 @@ async function adicionarScriptsLiquido(caminhoPackageJson: string) {
146147

147148
await sistemaArquivos.promises.writeFile(
148149
caminhoPackageJson,
149-
JSON.stringify(packageJson, null, 2) + '\n'
150+
safeStringify(packageJson, null, 2) + '\n'
150151
);
151152
}
152153

0 commit comments

Comments
 (0)