@designliquido/delegua-entidades 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +96 -0
- package/fontes/analisador-dicas.d.ts +49 -0
- package/fontes/analisador-dicas.d.ts.map +1 -0
- package/fontes/analisador-dicas.js +145 -0
- package/fontes/analisador-dicas.js.map +1 -0
- package/fontes/cache-consultas.d.ts +39 -0
- package/fontes/cache-consultas.d.ts.map +1 -0
- package/fontes/cache-consultas.js +98 -0
- package/fontes/cache-consultas.js.map +1 -0
- package/fontes/carregador-lotes.d.ts +64 -0
- package/fontes/carregador-lotes.d.ts.map +1 -0
- package/fontes/carregador-lotes.js +148 -0
- package/fontes/carregador-lotes.js.map +1 -0
- package/fontes/carregador-preguicoso.d.ts +34 -0
- package/fontes/carregador-preguicoso.d.ts.map +1 -0
- package/fontes/carregador-preguicoso.js +157 -0
- package/fontes/carregador-preguicoso.js.map +1 -0
- package/fontes/colecao.d.ts +74 -0
- package/fontes/colecao.d.ts.map +1 -0
- package/fontes/colecao.js +374 -0
- package/fontes/colecao.js.map +1 -0
- package/fontes/construtor-consulta.d.ts +129 -0
- package/fontes/construtor-consulta.d.ts.map +1 -0
- package/fontes/construtor-consulta.js +446 -0
- package/fontes/construtor-consulta.js.map +1 -0
- package/fontes/contexto-entidades.d.ts +119 -0
- package/fontes/contexto-entidades.d.ts.map +1 -0
- package/fontes/contexto-entidades.js +329 -0
- package/fontes/contexto-entidades.js.map +1 -0
- package/fontes/detector-n-mais-um.d.ts +87 -0
- package/fontes/detector-n-mais-um.d.ts.map +1 -0
- package/fontes/detector-n-mais-um.js +225 -0
- package/fontes/detector-n-mais-um.js.map +1 -0
- package/fontes/entidade.d.ts +82 -0
- package/fontes/entidade.d.ts.map +1 -0
- package/fontes/entidade.js +467 -0
- package/fontes/entidade.js.map +1 -0
- package/fontes/erros/erro-concorrencia.d.ts +11 -0
- package/fontes/erros/erro-concorrencia.d.ts.map +1 -0
- package/fontes/erros/erro-concorrencia.js +18 -0
- package/fontes/erros/erro-concorrencia.js.map +1 -0
- package/fontes/erros/erro-tabela-nao-encontrada.d.ts +4 -0
- package/fontes/erros/erro-tabela-nao-encontrada.d.ts.map +1 -0
- package/fontes/erros/erro-tabela-nao-encontrada.js +11 -0
- package/fontes/erros/erro-tabela-nao-encontrada.js.map +1 -0
- package/fontes/erros/erro-validacao.d.ts +9 -0
- package/fontes/erros/erro-validacao.d.ts.map +1 -0
- package/fontes/erros/erro-validacao.js +13 -0
- package/fontes/erros/erro-validacao.js.map +1 -0
- package/fontes/erros/index.d.ts +4 -0
- package/fontes/erros/index.d.ts.map +1 -0
- package/fontes/erros/index.js +20 -0
- package/fontes/erros/index.js.map +1 -0
- package/fontes/gerenciador-cache.d.ts +87 -0
- package/fontes/gerenciador-cache.d.ts.map +1 -0
- package/fontes/gerenciador-cache.js +147 -0
- package/fontes/gerenciador-cache.js.map +1 -0
- package/fontes/ilc/gerador-definicoes.d.ts +13 -0
- package/fontes/ilc/gerador-definicoes.d.ts.map +1 -0
- package/fontes/ilc/gerador-definicoes.js +96 -0
- package/fontes/ilc/gerador-definicoes.js.map +1 -0
- package/fontes/ilc/gerador-entidades.d.ts +10 -0
- package/fontes/ilc/gerador-entidades.d.ts.map +1 -0
- package/fontes/ilc/gerador-entidades.js +318 -0
- package/fontes/ilc/gerador-entidades.js.map +1 -0
- package/fontes/ilc/leitor-configuracao.d.ts +32 -0
- package/fontes/ilc/leitor-configuracao.d.ts.map +1 -0
- package/fontes/ilc/leitor-configuracao.js +124 -0
- package/fontes/ilc/leitor-configuracao.js.map +1 -0
- package/fontes/ilc/migracoes.d.ts +3 -0
- package/fontes/ilc/migracoes.d.ts.map +1 -0
- package/fontes/ilc/migracoes.js +215 -0
- package/fontes/ilc/migracoes.js.map +1 -0
- package/fontes/ilc/semeadura.d.ts +2 -0
- package/fontes/ilc/semeadura.d.ts.map +1 -0
- package/fontes/ilc/semeadura.js +50 -0
- package/fontes/ilc/semeadura.js.map +1 -0
- package/fontes/indicadores-performance/executor-analise-performance.d.ts +80 -0
- package/fontes/indicadores-performance/executor-analise-performance.d.ts.map +1 -0
- package/fontes/indicadores-performance/executor-analise-performance.js +212 -0
- package/fontes/indicadores-performance/executor-analise-performance.js.map +1 -0
- package/fontes/indicadores-performance/index.d.ts +26 -0
- package/fontes/indicadores-performance/index.d.ts.map +1 -0
- package/fontes/indicadores-performance/index.js +199 -0
- package/fontes/indicadores-performance/index.js.map +1 -0
- package/fontes/interfaces-tipos/analise-n1-interface.d.ts +13 -0
- package/fontes/interfaces-tipos/analise-n1-interface.d.ts.map +1 -0
- package/fontes/interfaces-tipos/analise-n1-interface.js +3 -0
- package/fontes/interfaces-tipos/analise-n1-interface.js.map +1 -0
- package/fontes/interfaces-tipos/atributo-interface.d.ts +30 -0
- package/fontes/interfaces-tipos/atributo-interface.d.ts.map +1 -0
- package/fontes/interfaces-tipos/atributo-interface.js +3 -0
- package/fontes/interfaces-tipos/atributo-interface.js.map +1 -0
- package/fontes/interfaces-tipos/coluna-computada-interface.d.ts +16 -0
- package/fontes/interfaces-tipos/coluna-computada-interface.d.ts.map +1 -0
- package/fontes/interfaces-tipos/coluna-computada-interface.js +3 -0
- package/fontes/interfaces-tipos/coluna-computada-interface.js.map +1 -0
- package/fontes/interfaces-tipos/configuracao-banco-dados-interface.d.ts +48 -0
- package/fontes/interfaces-tipos/configuracao-banco-dados-interface.d.ts.map +1 -0
- package/fontes/interfaces-tipos/configuracao-banco-dados-interface.js +3 -0
- package/fontes/interfaces-tipos/configuracao-banco-dados-interface.js.map +1 -0
- package/fontes/interfaces-tipos/entidade-interface.d.ts +37 -0
- package/fontes/interfaces-tipos/entidade-interface.d.ts.map +1 -0
- package/fontes/interfaces-tipos/entidade-interface.js +3 -0
- package/fontes/interfaces-tipos/entidade-interface.js.map +1 -0
- package/fontes/interfaces-tipos/ganchos.d.ts +12 -0
- package/fontes/interfaces-tipos/ganchos.d.ts.map +1 -0
- package/fontes/interfaces-tipos/ganchos.js +3 -0
- package/fontes/interfaces-tipos/ganchos.js.map +1 -0
- package/fontes/interfaces-tipos/index.d.ts +17 -0
- package/fontes/interfaces-tipos/index.d.ts.map +1 -0
- package/fontes/interfaces-tipos/index.js +33 -0
- package/fontes/interfaces-tipos/index.js.map +1 -0
- package/fontes/interfaces-tipos/indice-interface.d.ts +16 -0
- package/fontes/interfaces-tipos/indice-interface.d.ts.map +1 -0
- package/fontes/interfaces-tipos/indice-interface.js +3 -0
- package/fontes/interfaces-tipos/indice-interface.js.map +1 -0
- package/fontes/interfaces-tipos/informacao-consulta-interface.d.ts +12 -0
- package/fontes/interfaces-tipos/informacao-consulta-interface.d.ts.map +1 -0
- package/fontes/interfaces-tipos/informacao-consulta-interface.js +3 -0
- package/fontes/interfaces-tipos/informacao-consulta-interface.js.map +1 -0
- package/fontes/interfaces-tipos/muito-para-muitos-interface.d.ts +33 -0
- package/fontes/interfaces-tipos/muito-para-muitos-interface.d.ts.map +1 -0
- package/fontes/interfaces-tipos/muito-para-muitos-interface.js +3 -0
- package/fontes/interfaces-tipos/muito-para-muitos-interface.js.map +1 -0
- package/fontes/interfaces-tipos/opcoes-serializacao-interface.d.ts +14 -0
- package/fontes/interfaces-tipos/opcoes-serializacao-interface.d.ts.map +1 -0
- package/fontes/interfaces-tipos/opcoes-serializacao-interface.js +3 -0
- package/fontes/interfaces-tipos/opcoes-serializacao-interface.js.map +1 -0
- package/fontes/interfaces-tipos/polimorfico-interface.d.ts +32 -0
- package/fontes/interfaces-tipos/polimorfico-interface.d.ts.map +1 -0
- package/fontes/interfaces-tipos/polimorfico-interface.js +3 -0
- package/fontes/interfaces-tipos/polimorfico-interface.js.map +1 -0
- package/fontes/interfaces-tipos/relacionamento-interface.d.ts +23 -0
- package/fontes/interfaces-tipos/relacionamento-interface.d.ts.map +1 -0
- package/fontes/interfaces-tipos/relacionamento-interface.js +3 -0
- package/fontes/interfaces-tipos/relacionamento-interface.js.map +1 -0
- package/fontes/interfaces-tipos/restricao-interface.d.ts +14 -0
- package/fontes/interfaces-tipos/restricao-interface.d.ts.map +1 -0
- package/fontes/interfaces-tipos/restricao-interface.js +3 -0
- package/fontes/interfaces-tipos/restricao-interface.js.map +1 -0
- package/fontes/interfaces-tipos/semente-interface.d.ts +7 -0
- package/fontes/interfaces-tipos/semente-interface.d.ts.map +1 -0
- package/fontes/interfaces-tipos/semente-interface.js +3 -0
- package/fontes/interfaces-tipos/semente-interface.js.map +1 -0
- package/fontes/interfaces-tipos/tabela-interface.d.ts +12 -0
- package/fontes/interfaces-tipos/tabela-interface.d.ts.map +1 -0
- package/fontes/interfaces-tipos/tabela-interface.js +3 -0
- package/fontes/interfaces-tipos/tabela-interface.js.map +1 -0
- package/fontes/interfaces-tipos/transacao-interface.d.ts +35 -0
- package/fontes/interfaces-tipos/transacao-interface.d.ts.map +1 -0
- package/fontes/interfaces-tipos/transacao-interface.js +3 -0
- package/fontes/interfaces-tipos/transacao-interface.js.map +1 -0
- package/fontes/migracoes/executor-migracoes.d.ts +14 -0
- package/fontes/migracoes/executor-migracoes.d.ts.map +1 -0
- package/fontes/migracoes/executor-migracoes.js +177 -0
- package/fontes/migracoes/executor-migracoes.js.map +1 -0
- package/fontes/migracoes/gerador-migracoes.d.ts +15 -0
- package/fontes/migracoes/gerador-migracoes.d.ts.map +1 -0
- package/fontes/migracoes/gerador-migracoes.js +108 -0
- package/fontes/migracoes/gerador-migracoes.js.map +1 -0
- package/fontes/migracoes/migracao.d.ts +35 -0
- package/fontes/migracoes/migracao.d.ts.map +1 -0
- package/fontes/migracoes/migracao.js +66 -0
- package/fontes/migracoes/migracao.js.map +1 -0
- package/fontes/migracoes/semeador.d.ts +18 -0
- package/fontes/migracoes/semeador.d.ts.map +1 -0
- package/fontes/migracoes/semeador.js +109 -0
- package/fontes/migracoes/semeador.js.map +1 -0
- package/fontes/rastreador-mudancas.d.ts +27 -0
- package/fontes/rastreador-mudancas.d.ts.map +1 -0
- package/fontes/rastreador-mudancas.js +94 -0
- package/fontes/rastreador-mudancas.js.map +1 -0
- package/fontes/relacionamento.d.ts +11 -0
- package/fontes/relacionamento.d.ts.map +1 -0
- package/fontes/relacionamento.js +15 -0
- package/fontes/relacionamento.js.map +1 -0
- package/fontes/roteador-bancos.d.ts +50 -0
- package/fontes/roteador-bancos.d.ts.map +1 -0
- package/fontes/roteador-bancos.js +90 -0
- package/fontes/roteador-bancos.js.map +1 -0
- package/fontes/serializador.d.ts +46 -0
- package/fontes/serializador.d.ts.map +1 -0
- package/fontes/serializador.js +79 -0
- package/fontes/serializador.js.map +1 -0
- package/fontes/taquigrafia.d.ts +41 -0
- package/fontes/taquigrafia.d.ts.map +1 -0
- package/fontes/taquigrafia.js +96 -0
- package/fontes/taquigrafia.js.map +1 -0
- package/fontes/tipos.d.ts +3 -0
- package/fontes/tipos.d.ts.map +1 -0
- package/fontes/tipos.js +3 -0
- package/fontes/tipos.js.map +1 -0
- package/fontes/transacao.d.ts +81 -0
- package/fontes/transacao.d.ts.map +1 -0
- package/fontes/transacao.js +243 -0
- package/fontes/transacao.js.map +1 -0
- package/fontes/validacoes/validador.d.ts +19 -0
- package/fontes/validacoes/validador.d.ts.map +1 -0
- package/fontes/validacoes/validador.js +157 -0
- package/fontes/validacoes/validador.js.map +1 -0
- package/index.d.ts +36 -0
- package/index.d.ts.map +1 -0
- package/index.js +59 -0
- package/index.js.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/// <reference types="node" />
|
|
4
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
6
|
+
};
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
/**
|
|
9
|
+
* CLI para Migrações
|
|
10
|
+
*
|
|
11
|
+
* Uso:
|
|
12
|
+
* yarn migracoes gerar
|
|
13
|
+
* yarn migracoes executar
|
|
14
|
+
* yarn migracoes reverter
|
|
15
|
+
* yarn migracoes status
|
|
16
|
+
*/
|
|
17
|
+
const path_1 = __importDefault(require("path"));
|
|
18
|
+
const fs_1 = __importDefault(require("fs"));
|
|
19
|
+
const executor_migracoes_1 = require("../migracoes/executor-migracoes");
|
|
20
|
+
const leitor_configuracao_1 = require("./leitor-configuracao");
|
|
21
|
+
const COMANDO_PADRAO = "executar";
|
|
22
|
+
const DIRETORIO_MIGRACOES = path_1.default.join(process.cwd(), "fontes", "migracoes", "geradas");
|
|
23
|
+
const ARQUIVO_HISTORICO = path_1.default.join(DIRETORIO_MIGRACOES, ".migracoes.json");
|
|
24
|
+
function mostrarAjuda() {
|
|
25
|
+
console.log(`
|
|
26
|
+
delegua-entidades: Ferramenta de Migrações
|
|
27
|
+
|
|
28
|
+
USO:
|
|
29
|
+
yarn migracoes <comando>
|
|
30
|
+
|
|
31
|
+
COMANDOS:
|
|
32
|
+
gerar Gera uma nova migração vazia com timestamp
|
|
33
|
+
executar Executa todas as migrações pendentes (padrão)
|
|
34
|
+
reverter Reverte a última migração executada
|
|
35
|
+
status Mostra status das migrações
|
|
36
|
+
desfazer Limpa histórico (cuidado!)
|
|
37
|
+
|
|
38
|
+
EXEMPLOS:
|
|
39
|
+
yarn migracoes gerar
|
|
40
|
+
yarn migracoes executar
|
|
41
|
+
yarn migracoes status
|
|
42
|
+
`);
|
|
43
|
+
}
|
|
44
|
+
function garantirDiretorio() {
|
|
45
|
+
if (!fs_1.default.existsSync(DIRETORIO_MIGRACOES)) {
|
|
46
|
+
fs_1.default.mkdirSync(DIRETORIO_MIGRACOES, { recursive: true });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function obterHistoricoMigracoes() {
|
|
50
|
+
if (!fs_1.default.existsSync(ARQUIVO_HISTORICO)) {
|
|
51
|
+
return { migracoes_executadas: [] };
|
|
52
|
+
}
|
|
53
|
+
const conteudo = fs_1.default.readFileSync(ARQUIVO_HISTORICO, "utf-8");
|
|
54
|
+
return JSON.parse(conteudo);
|
|
55
|
+
}
|
|
56
|
+
function salvarHistoricoMigracoes(historico) {
|
|
57
|
+
fs_1.default.writeFileSync(ARQUIVO_HISTORICO, JSON.stringify(historico, null, 2));
|
|
58
|
+
}
|
|
59
|
+
function gerarMigracao() {
|
|
60
|
+
garantirDiretorio();
|
|
61
|
+
const agora = new Date();
|
|
62
|
+
const timestamp = [
|
|
63
|
+
agora.getFullYear(),
|
|
64
|
+
String(agora.getMonth() + 1).padStart(2, "0"),
|
|
65
|
+
String(agora.getDate()).padStart(2, "0"),
|
|
66
|
+
String(agora.getHours()).padStart(2, "0"),
|
|
67
|
+
String(agora.getMinutes()).padStart(2, "0"),
|
|
68
|
+
String(agora.getSeconds()).padStart(2, "0")
|
|
69
|
+
].join("");
|
|
70
|
+
const nomeMigracao = `${timestamp}_migracao_vazia`;
|
|
71
|
+
const caminhoMigracao = path_1.default.join(DIRETORIO_MIGRACOES, `${nomeMigracao}.ts`);
|
|
72
|
+
const conteudoMigracao = `import { Migracao } from "../../migracoes/migracao";
|
|
73
|
+
|
|
74
|
+
export const migracao = new Migracao("${timestamp}", "Descrição da migração");
|
|
75
|
+
|
|
76
|
+
// Adicione aqui suas operações de migração
|
|
77
|
+
// Exemplos:
|
|
78
|
+
// migracao.criarTabela("usuarios", [
|
|
79
|
+
// new Coluna("id", "INTEIRO", undefined, false, true, false, true),
|
|
80
|
+
// new Coluna("nome", "TEXTO"),
|
|
81
|
+
// new Coluna("email", "TEXTO")
|
|
82
|
+
// ]);
|
|
83
|
+
|
|
84
|
+
// migracao.excluirTabela("tabela_antiga");
|
|
85
|
+
// migracao.adicionarColuna("usuarios", new Coluna("ativo", "LOGICO", undefined, true));
|
|
86
|
+
`;
|
|
87
|
+
fs_1.default.writeFileSync(caminhoMigracao, conteudoMigracao);
|
|
88
|
+
console.log(`✓ Migração criada: ${nomeMigracao}.ts`);
|
|
89
|
+
}
|
|
90
|
+
async function executarMigracoes() {
|
|
91
|
+
garantirDiretorio();
|
|
92
|
+
console.log("Verificando migrações pendentes...");
|
|
93
|
+
const historico = obterHistoricoMigracoes();
|
|
94
|
+
const arquivos = fs_1.default.readdirSync(DIRETORIO_MIGRACOES).filter((f) => f.endsWith(".ts") && f !== ".migracoes.json");
|
|
95
|
+
if (arquivos.length === 0) {
|
|
96
|
+
console.log("Nenhuma migração encontrada.");
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const versoesMigradas = new Set(historico.migracoes_executadas.map((m) => m.versao));
|
|
100
|
+
const pendentes = arquivos.filter((f) => {
|
|
101
|
+
const versao = f.replace("_migracao_vazia.ts", "").replace(/\.ts$/, "");
|
|
102
|
+
return !versoesMigradas.has(versao);
|
|
103
|
+
});
|
|
104
|
+
if (pendentes.length === 0) {
|
|
105
|
+
console.log("✓ Todas as migrações já foram executadas.");
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
// Obter adaptador a partir de configuracao.delprops, se disponível
|
|
109
|
+
const configuracaoDelprops = (0, leitor_configuracao_1.lerConfiguracaoDelprops)();
|
|
110
|
+
let executor = null;
|
|
111
|
+
if (configuracaoDelprops) {
|
|
112
|
+
const nomesConexao = Object.keys(configuracaoDelprops.dados);
|
|
113
|
+
if (nomesConexao.length > 0) {
|
|
114
|
+
const conexaoPadrao = configuracaoDelprops.dados[nomesConexao[0]];
|
|
115
|
+
const adaptador = (0, leitor_configuracao_1.instanciarAdaptador)(conexaoPadrao);
|
|
116
|
+
if (adaptador) {
|
|
117
|
+
const caminhoConexao = conexaoPadrao.caminho ?? conexaoPadrao.banco ?? "";
|
|
118
|
+
await adaptador.iniciar(caminhoConexao);
|
|
119
|
+
executor = new executor_migracoes_1.ExecutorMigracoes(adaptador);
|
|
120
|
+
console.log(`Usando adaptador '${conexaoPadrao.tecnologia}' (conexão '${nomesConexao[0]}').`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
console.log("Arquivo configuracao.delprops não encontrado. Apenas o histórico será atualizado.");
|
|
126
|
+
}
|
|
127
|
+
console.log(`Executando ${pendentes.length} migração(ões) pendente(s)...`);
|
|
128
|
+
for (const arquivo of pendentes) {
|
|
129
|
+
const versao = arquivo.replace("_migracao_vazia.ts", "").replace(/\.ts$/, "");
|
|
130
|
+
console.log(` • ${arquivo}`);
|
|
131
|
+
if (executor) {
|
|
132
|
+
const caminhoMigracao = path_1.default.join(DIRETORIO_MIGRACOES, arquivo);
|
|
133
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
134
|
+
const modulo = require(caminhoMigracao);
|
|
135
|
+
const migracao = modulo.migracao ?? modulo.default;
|
|
136
|
+
if (migracao) {
|
|
137
|
+
await executor.executar(migracao);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
console.warn(` ⚠ Módulo '${arquivo}' não exporta 'migracao' nem exportação padrão. Pulando.`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
historico.migracoes_executadas.push({
|
|
144
|
+
versao,
|
|
145
|
+
descricao: "Migração executada",
|
|
146
|
+
data_execucao: new Date().toISOString()
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
salvarHistoricoMigracoes(historico);
|
|
150
|
+
console.log("✓ Migrações executadas com sucesso!");
|
|
151
|
+
}
|
|
152
|
+
function desfazerMigracao() {
|
|
153
|
+
const historico = obterHistoricoMigracoes();
|
|
154
|
+
if (historico.migracoes_executadas.length === 0) {
|
|
155
|
+
console.log("Nenhuma migração para reverter.");
|
|
156
|
+
return;
|
|
157
|
+
}
|
|
158
|
+
const ultima = historico.migracoes_executadas.pop();
|
|
159
|
+
salvarHistoricoMigracoes(historico);
|
|
160
|
+
console.log(`✓ Migração revertida: ${ultima?.versao}`);
|
|
161
|
+
}
|
|
162
|
+
function mostrarStatus() {
|
|
163
|
+
garantirDiretorio();
|
|
164
|
+
const historico = obterHistoricoMigracoes();
|
|
165
|
+
const arquivos = fs_1.default.readdirSync(DIRETORIO_MIGRACOES).filter((f) => f.endsWith(".ts"));
|
|
166
|
+
console.log("\n📊 Status das Migrações:");
|
|
167
|
+
console.log(` Total: ${arquivos.length}`);
|
|
168
|
+
console.log(` Executadas: ${historico.migracoes_executadas.length}`);
|
|
169
|
+
console.log(` Pendentes: ${arquivos.length - historico.migracoes_executadas.length}`);
|
|
170
|
+
if (historico.migracoes_executadas.length > 0) {
|
|
171
|
+
console.log("\n✓ Executadas:");
|
|
172
|
+
for (const reg of historico.migracoes_executadas) {
|
|
173
|
+
const data = new Date(reg.data_execucao).toLocaleString("pt-BR");
|
|
174
|
+
console.log(` [${reg.versao}] ${data}`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
function desfazerHistorico() {
|
|
179
|
+
if (!fs_1.default.existsSync(ARQUIVO_HISTORICO)) {
|
|
180
|
+
console.log("Nenhum histórico para limpar.");
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
fs_1.default.unlinkSync(ARQUIVO_HISTORICO);
|
|
184
|
+
console.log("✓ Histórico de migrações limpo.");
|
|
185
|
+
}
|
|
186
|
+
async function principal() {
|
|
187
|
+
const args = process.argv.slice(2);
|
|
188
|
+
const comando = (args[0] || COMANDO_PADRAO);
|
|
189
|
+
switch (comando) {
|
|
190
|
+
case "gerar":
|
|
191
|
+
gerarMigracao();
|
|
192
|
+
break;
|
|
193
|
+
case "executar":
|
|
194
|
+
await executarMigracoes();
|
|
195
|
+
break;
|
|
196
|
+
case "reverter":
|
|
197
|
+
desfazerMigracao();
|
|
198
|
+
break;
|
|
199
|
+
case "status":
|
|
200
|
+
mostrarStatus();
|
|
201
|
+
break;
|
|
202
|
+
case "desfazer":
|
|
203
|
+
desfazerHistorico();
|
|
204
|
+
break;
|
|
205
|
+
default:
|
|
206
|
+
console.error(`Comando desconhecido: ${comando}`);
|
|
207
|
+
mostrarAjuda();
|
|
208
|
+
process.exit(1);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
principal().catch((erro) => {
|
|
212
|
+
console.error("Falha ao executar migrações:", erro);
|
|
213
|
+
process.exit(1);
|
|
214
|
+
});
|
|
215
|
+
//# sourceMappingURL=migracoes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migracoes.js","sourceRoot":"","sources":["../../../fontes/ilc/migracoes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semeadura.d.ts","sourceRoot":"","sources":["../../../fontes/ilc/semeadura.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const path_1 = __importDefault(require("path"));
|
|
7
|
+
const semeador_1 = require("../migracoes/semeador");
|
|
8
|
+
function mostrarAjuda() {
|
|
9
|
+
console.log("Uso:");
|
|
10
|
+
console.log(" yarn executar-semeadura -- <caminho-modulo>");
|
|
11
|
+
console.log("");
|
|
12
|
+
console.log("O módulo deve exportar:");
|
|
13
|
+
console.log(" - criarContexto(): ContextoEntidades");
|
|
14
|
+
console.log(" - sementes: ClasseSemente[] (ou exportação padrão)");
|
|
15
|
+
}
|
|
16
|
+
async function carregarModulo(caminhoModulo) {
|
|
17
|
+
const caminhoResolvido = path_1.default.isAbsolute(caminhoModulo)
|
|
18
|
+
? caminhoModulo
|
|
19
|
+
: path_1.default.join(process.cwd(), caminhoModulo);
|
|
20
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
21
|
+
return require(caminhoResolvido);
|
|
22
|
+
}
|
|
23
|
+
async function executar() {
|
|
24
|
+
const argumentos = process.argv.slice(2);
|
|
25
|
+
const comando = argumentos[0];
|
|
26
|
+
const caminhoModulo = argumentos[1];
|
|
27
|
+
if (comando !== "executar-semeadura" || !caminhoModulo) {
|
|
28
|
+
mostrarAjuda();
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
const modulo = await carregarModulo(caminhoModulo);
|
|
32
|
+
const criarContexto = modulo.criarContexto;
|
|
33
|
+
const sementes = modulo.sementes || modulo.default;
|
|
34
|
+
if (!criarContexto) {
|
|
35
|
+
console.error("Módulo sem elemento exportado 'criarContexto'.");
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
if (!sementes || sementes.length === 0) {
|
|
39
|
+
console.error("Módulo sem elemento exportado 'sementes' ou elemento padrão vazio.");
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
const contexto = await Promise.resolve(criarContexto());
|
|
43
|
+
const semeador = new semeador_1.Semeador(contexto, contexto.logger);
|
|
44
|
+
await semeador.semear(sementes);
|
|
45
|
+
}
|
|
46
|
+
executar().catch((erro) => {
|
|
47
|
+
console.error("Falha ao executar semeadura:", erro);
|
|
48
|
+
process.exit(1);
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=semeadura.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semeadura.js","sourceRoot":"","sources":["../../../fontes/ilc/semeadura.ts"],"names":[],"mappings":";;;;;AAAA,gDAAwB;AAGxB,oDAAgE;AAQhE,SAAS,YAAY;IACjB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,aAAqB;IAC/C,MAAM,gBAAgB,GAAG,cAAI,CAAC,UAAU,CAAC,aAAa,CAAC;QACnD,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,CAAC,CAAC;IAE9C,8DAA8D;IAC9D,OAAO,OAAO,CAAC,gBAAgB,CAAmB,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,QAAQ;IACnB,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAEpC,IAAI,OAAO,KAAK,oBAAoB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrD,YAAY,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,aAAa,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC;IAEnD,IAAI,CAAC,aAAa,EAAE,CAAC;QACjB,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEzD,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;IACtB,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Suite de Benchmarks de Performance
|
|
3
|
+
*
|
|
4
|
+
* Fornece utilities para medir performance de operações ORM.
|
|
5
|
+
*/
|
|
6
|
+
export interface ResultadoPerformance {
|
|
7
|
+
nome: string;
|
|
8
|
+
duracao: number;
|
|
9
|
+
iteracoes: number;
|
|
10
|
+
mediaMs: number;
|
|
11
|
+
min: number;
|
|
12
|
+
max: number;
|
|
13
|
+
desvio: number;
|
|
14
|
+
}
|
|
15
|
+
export interface ConfiguradorAnalisePerformance {
|
|
16
|
+
iteracoes?: number;
|
|
17
|
+
aquecimento?: number;
|
|
18
|
+
tempoMaximo?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Executor de análise de performance
|
|
22
|
+
*/
|
|
23
|
+
export declare class ExecutorAnalisePerformance {
|
|
24
|
+
private resultados;
|
|
25
|
+
/**
|
|
26
|
+
* Executa um benchmark
|
|
27
|
+
*/
|
|
28
|
+
executar(nome: string, funcao: () => Promise<void> | void, config?: ConfiguradorAnalisePerformance): Promise<ResultadoPerformance>;
|
|
29
|
+
/**
|
|
30
|
+
* Executa benchmark síncrono
|
|
31
|
+
*/
|
|
32
|
+
executarSync(nome: string, funcao: () => void, config?: ConfiguradorAnalisePerformance): ResultadoPerformance;
|
|
33
|
+
/**
|
|
34
|
+
* Compara desempenho de duas funções
|
|
35
|
+
*/
|
|
36
|
+
comparar(nome: string, nomeA: string, funcaoA: () => Promise<void> | void, nomeB: string, funcaoB: () => Promise<void> | void, config?: ConfiguradorAnalisePerformance): Promise<{
|
|
37
|
+
teste: string;
|
|
38
|
+
resultadoA: ResultadoPerformance;
|
|
39
|
+
resultadoB: ResultadoPerformance;
|
|
40
|
+
diferenca: {
|
|
41
|
+
ms: number;
|
|
42
|
+
percentual: string;
|
|
43
|
+
vencedor: string;
|
|
44
|
+
mensagem: string;
|
|
45
|
+
};
|
|
46
|
+
}>;
|
|
47
|
+
/**
|
|
48
|
+
* Obtém relatório de performance dos benchmarks executados
|
|
49
|
+
*/
|
|
50
|
+
obterRelatorio(): string;
|
|
51
|
+
/**
|
|
52
|
+
* Limpa resultados
|
|
53
|
+
*/
|
|
54
|
+
limpar(): void;
|
|
55
|
+
/**
|
|
56
|
+
* Obtém resultados armazenados
|
|
57
|
+
*/
|
|
58
|
+
obterResultados(): ResultadoPerformance[];
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Utilidades para testes de carga
|
|
62
|
+
*/
|
|
63
|
+
export declare class TestadorCarga {
|
|
64
|
+
/**
|
|
65
|
+
* Executa função com múltipla concorrência
|
|
66
|
+
*/
|
|
67
|
+
static testarConcorrencia(funcao: () => Promise<void>, paralelo: number, iteracoes: number): Promise<{
|
|
68
|
+
iteracoes: number;
|
|
69
|
+
paralelo: number;
|
|
70
|
+
duracaoTotal: number;
|
|
71
|
+
mediaMs: number;
|
|
72
|
+
erros: number;
|
|
73
|
+
sucessos: number;
|
|
74
|
+
}>;
|
|
75
|
+
/**
|
|
76
|
+
* Teste de estresse: aumenta carga gradualmente
|
|
77
|
+
*/
|
|
78
|
+
static testeEstresse(funcao: () => Promise<void>, cargasIniciais?: number[]): Promise<any[]>;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=executor-analise-performance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor-analise-performance.d.ts","sourceRoot":"","sources":["../../../fontes/indicadores-performance/executor-analise-performance.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,oBAAoB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,8BAA8B;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,0BAA0B;IACnC,OAAO,CAAC,UAAU,CAA8B;IAEhD;;OAEG;IACG,QAAQ,CACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EAClC,MAAM,CAAC,EAAE,8BAA8B,GACxC,OAAO,CAAC,oBAAoB,CAAC;IAmDhC;;OAEG;IACH,YAAY,CACR,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,IAAI,EAClB,MAAM,CAAC,EAAE,8BAA8B,GACxC,oBAAoB;IA4CvB;;OAEG;IACG,QAAQ,CACV,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACnC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,EACnC,MAAM,CAAC,EAAE,8BAA8B;;;;;;;;;;;IAwB3C;;OAEG;IACH,cAAc,IAAI,MAAM;IAmDxB;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,eAAe,IAAI,oBAAoB,EAAE;CAG5C;AAED;;GAEG;AACH,qBAAa,aAAa;IACtB;;OAEG;WACU,kBAAkB,CAC3B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC3B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM;;;;;;;;IA2BrB;;OAEG;WACU,aAAa,CACtB,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EAC3B,cAAc,GAAE,MAAM,EAAuB;CAiBpD"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Suite de Benchmarks de Performance
|
|
4
|
+
*
|
|
5
|
+
* Fornece utilities para medir performance de operações ORM.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.TestadorCarga = exports.ExecutorAnalisePerformance = void 0;
|
|
9
|
+
/**
|
|
10
|
+
* Executor de análise de performance
|
|
11
|
+
*/
|
|
12
|
+
class ExecutorAnalisePerformance {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.resultados = [];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Executa um benchmark
|
|
18
|
+
*/
|
|
19
|
+
async executar(nome, funcao, config) {
|
|
20
|
+
const iteracoes = config?.iteracoes ?? 100;
|
|
21
|
+
const aquecimento = config?.aquecimento ?? 10;
|
|
22
|
+
const tempoMaximo = config?.tempoMaximo ?? 30000;
|
|
23
|
+
// Fase de aquecimento
|
|
24
|
+
for (let i = 0; i < aquecimento; i++) {
|
|
25
|
+
await Promise.resolve(funcao());
|
|
26
|
+
}
|
|
27
|
+
// Realiza medições
|
|
28
|
+
const tempos = [];
|
|
29
|
+
const inicioTotal = performance.now();
|
|
30
|
+
for (let i = 0; i < iteracoes; i++) {
|
|
31
|
+
const inicio = performance.now();
|
|
32
|
+
await Promise.resolve(funcao());
|
|
33
|
+
const duracao = performance.now() - inicio;
|
|
34
|
+
tempos.push(duracao);
|
|
35
|
+
// Verifica tempo máximo
|
|
36
|
+
if (performance.now() - inicioTotal > tempoMaximo) {
|
|
37
|
+
throw new Error(`Benchmark '${nome}' excedeu o tempo máximo de ${tempoMaximo}ms`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const duracaoTotal = performance.now() - inicioTotal;
|
|
41
|
+
// Calcula estatísticas
|
|
42
|
+
const media = tempos.reduce((a, b) => a + b, 0) / tempos.length;
|
|
43
|
+
const min = Math.min(...tempos);
|
|
44
|
+
const max = Math.max(...tempos);
|
|
45
|
+
const desvio = Math.sqrt(tempos.reduce((sq, n) => sq + Math.pow(n - media, 2), 0) / tempos.length);
|
|
46
|
+
const resultado = {
|
|
47
|
+
nome,
|
|
48
|
+
duracao: duracaoTotal,
|
|
49
|
+
iteracoes,
|
|
50
|
+
mediaMs: media,
|
|
51
|
+
min,
|
|
52
|
+
max,
|
|
53
|
+
desvio
|
|
54
|
+
};
|
|
55
|
+
this.resultados.push(resultado);
|
|
56
|
+
return resultado;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Executa benchmark síncrono
|
|
60
|
+
*/
|
|
61
|
+
executarSync(nome, funcao, config) {
|
|
62
|
+
const iteracoes = config?.iteracoes ?? 100;
|
|
63
|
+
const aquecimento = config?.aquecimento ?? 10;
|
|
64
|
+
// Aquecimento
|
|
65
|
+
for (let i = 0; i < aquecimento; i++) {
|
|
66
|
+
funcao();
|
|
67
|
+
}
|
|
68
|
+
// Medições
|
|
69
|
+
const tempos = [];
|
|
70
|
+
const inicioTotal = performance.now();
|
|
71
|
+
for (let i = 0; i < iteracoes; i++) {
|
|
72
|
+
const inicio = performance.now();
|
|
73
|
+
funcao();
|
|
74
|
+
const duracao = performance.now() - inicio;
|
|
75
|
+
tempos.push(duracao);
|
|
76
|
+
}
|
|
77
|
+
const duracaoTotal = performance.now() - inicioTotal;
|
|
78
|
+
// Estatísticas
|
|
79
|
+
const media = tempos.reduce((a, b) => a + b, 0) / tempos.length;
|
|
80
|
+
const min = Math.min(...tempos);
|
|
81
|
+
const max = Math.max(...tempos);
|
|
82
|
+
const desvio = Math.sqrt(tempos.reduce((sq, n) => sq + Math.pow(n - media, 2), 0) / tempos.length);
|
|
83
|
+
const resultado = {
|
|
84
|
+
nome,
|
|
85
|
+
duracao: duracaoTotal,
|
|
86
|
+
iteracoes,
|
|
87
|
+
mediaMs: media,
|
|
88
|
+
min,
|
|
89
|
+
max,
|
|
90
|
+
desvio
|
|
91
|
+
};
|
|
92
|
+
this.resultados.push(resultado);
|
|
93
|
+
return resultado;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Compara desempenho de duas funções
|
|
97
|
+
*/
|
|
98
|
+
async comparar(nome, nomeA, funcaoA, nomeB, funcaoB, config) {
|
|
99
|
+
const resultadoA = await this.executar(nomeA, funcaoA, config);
|
|
100
|
+
const resultadoB = await this.executar(nomeB, funcaoB, config);
|
|
101
|
+
const diferencaMs = resultadoA.mediaMs - resultadoB.mediaMs;
|
|
102
|
+
const percentual = ((diferencaMs / resultadoB.mediaMs) * 100).toFixed(2);
|
|
103
|
+
const vencedor = diferencaMs < 0 ? "A" : "B";
|
|
104
|
+
return {
|
|
105
|
+
teste: nome,
|
|
106
|
+
resultadoA,
|
|
107
|
+
resultadoB,
|
|
108
|
+
diferenca: {
|
|
109
|
+
ms: Math.abs(diferencaMs),
|
|
110
|
+
percentual: `${percentual}%`,
|
|
111
|
+
vencedor,
|
|
112
|
+
mensagem: diferencaMs < 0
|
|
113
|
+
? `${nomeA} é ${Math.abs(parseFloat(percentual))}% mais rápido`
|
|
114
|
+
: `${nomeB} é ${Math.abs(parseFloat(percentual))}% mais rápido`
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Obtém relatório de performance dos benchmarks executados
|
|
120
|
+
*/
|
|
121
|
+
obterRelatorio() {
|
|
122
|
+
if (this.resultados.length === 0) {
|
|
123
|
+
return "Nenhum benchmark executado";
|
|
124
|
+
}
|
|
125
|
+
const linhas = [
|
|
126
|
+
"═════════════════════════════════════════════════════════════",
|
|
127
|
+
"📊 RELATÓRIO DE PERFORMANCE",
|
|
128
|
+
"═════════════════════════════════════════════════════════════",
|
|
129
|
+
""
|
|
130
|
+
];
|
|
131
|
+
// Classifica por média (mais rápido primeiro)
|
|
132
|
+
const ordenados = [...this.resultados].sort((a, b) => a.mediaMs - b.mediaMs);
|
|
133
|
+
for (const resultado of ordenados) {
|
|
134
|
+
const icone = resultado === ordenados[0] ? "🏆" : " ";
|
|
135
|
+
linhas.push(`${icone} ${resultado.nome}`);
|
|
136
|
+
linhas.push(` ├─ Média: ${resultado.mediaMs.toFixed(3)}ms`);
|
|
137
|
+
linhas.push(` ├─ Min: ${resultado.min.toFixed(3)}ms`);
|
|
138
|
+
linhas.push(` ├─ Max: ${resultado.max.toFixed(3)}ms`);
|
|
139
|
+
linhas.push(` ├─ Desvio: ${resultado.desvio.toFixed(3)}ms`);
|
|
140
|
+
linhas.push(` └─ Iterações: ${resultado.iteracoes}`);
|
|
141
|
+
linhas.push("");
|
|
142
|
+
}
|
|
143
|
+
if (this.resultados.length > 1) {
|
|
144
|
+
const maisRapido = ordenados[0];
|
|
145
|
+
const maisLento = ordenados[ordenados.length - 1];
|
|
146
|
+
const diferenca = (((maisLento.mediaMs - maisRapido.mediaMs) / maisRapido.mediaMs) * 100).toFixed(2);
|
|
147
|
+
linhas.push("═════════════════════════════════════════════════════════════");
|
|
148
|
+
linhas.push(`Diferença: ${maisLento.nome} é ${diferenca}% mais lento que ${maisRapido.nome}`);
|
|
149
|
+
linhas.push("═════════════════════════════════════════════════════════════");
|
|
150
|
+
}
|
|
151
|
+
return linhas.join("\n");
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Limpa resultados
|
|
155
|
+
*/
|
|
156
|
+
limpar() {
|
|
157
|
+
this.resultados = [];
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Obtém resultados armazenados
|
|
161
|
+
*/
|
|
162
|
+
obterResultados() {
|
|
163
|
+
return [...this.resultados];
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
exports.ExecutorAnalisePerformance = ExecutorAnalisePerformance;
|
|
167
|
+
/**
|
|
168
|
+
* Utilidades para testes de carga
|
|
169
|
+
*/
|
|
170
|
+
class TestadorCarga {
|
|
171
|
+
/**
|
|
172
|
+
* Executa função com múltipla concorrência
|
|
173
|
+
*/
|
|
174
|
+
static async testarConcorrencia(funcao, paralelo, iteracoes) {
|
|
175
|
+
const inicio = performance.now();
|
|
176
|
+
const erros = [];
|
|
177
|
+
for (let i = 0; i < iteracoes; i += paralelo) {
|
|
178
|
+
const promessas = [];
|
|
179
|
+
for (let j = 0; j < paralelo && i + j < iteracoes; j++) {
|
|
180
|
+
promessas.push(funcao().catch(e => erros.push(e)));
|
|
181
|
+
}
|
|
182
|
+
await Promise.all(promessas);
|
|
183
|
+
}
|
|
184
|
+
const duracao = performance.now() - inicio;
|
|
185
|
+
return {
|
|
186
|
+
iteracoes,
|
|
187
|
+
paralelo,
|
|
188
|
+
duracaoTotal: duracao,
|
|
189
|
+
mediaMs: duracao / iteracoes,
|
|
190
|
+
erros: erros.length,
|
|
191
|
+
sucessos: iteracoes - erros.length
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Teste de estresse: aumenta carga gradualmente
|
|
196
|
+
*/
|
|
197
|
+
static async testeEstresse(funcao, cargasIniciais = [1, 5, 10, 20, 50]) {
|
|
198
|
+
const resultados = [];
|
|
199
|
+
for (const carga of cargasIniciais) {
|
|
200
|
+
const resultado = await this.testarConcorrencia(funcao, carga, 100);
|
|
201
|
+
resultados.push({ carga, ...resultado });
|
|
202
|
+
// Para se houver muitos erros
|
|
203
|
+
if (resultado.erros > resultado.sucessos * 0.1) {
|
|
204
|
+
console.warn(`⚠️ Taxa de erro alta na carga ${carga}: ${resultado.erros} erros`);
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return resultados;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
exports.TestadorCarga = TestadorCarga;
|
|
212
|
+
//# sourceMappingURL=executor-analise-performance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor-analise-performance.js","sourceRoot":"","sources":["../../../fontes/indicadores-performance/executor-analise-performance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Benchmarks de Performance - Suite Completa
|
|
3
|
+
*
|
|
4
|
+
* Testa performance de cache, batch loading, e operações principais
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Benchmarks de Cache
|
|
8
|
+
*/
|
|
9
|
+
export declare function performanceCache(): Promise<void>;
|
|
10
|
+
/**
|
|
11
|
+
* Benchmarks de Carregador em Lote
|
|
12
|
+
*/
|
|
13
|
+
export declare function performanceCarregadorLote(): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Comparação: Com vs Sem Cache
|
|
16
|
+
*/
|
|
17
|
+
export declare function performanceComparativoCache(): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Teste de Estresse do Cache
|
|
20
|
+
*/
|
|
21
|
+
export declare function testeEstressCache(): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Executa todos os benchmarks
|
|
24
|
+
*/
|
|
25
|
+
export declare function executarTodosIndicadoresPerformance(): Promise<void>;
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../fontes/indicadores-performance/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,wBAAsB,gBAAgB,kBA6DrC;AAED;;GAEG;AACH,wBAAsB,yBAAyB,kBAyE9C;AAED;;GAEG;AACH,wBAAsB,2BAA2B,kBAiDhD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,kBAkCtC;AAED;;GAEG;AACH,wBAAsB,mCAAmC,kBAgBxD"}
|