utn-cli 2.1.31 → 2.1.32
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/commands/frontend.js +37 -2
- package/package.json +1 -1
package/commands/frontend.js
CHANGED
|
@@ -55,14 +55,16 @@ export async function updateFrontend(opciones = { cerrarAlFinalizar: true }) {
|
|
|
55
55
|
// Copiar archivos base
|
|
56
56
|
copiarDirectorios(directoriodePlantillas, directorioDestino, archivosAExcluir);
|
|
57
57
|
|
|
58
|
-
// Copiar AccionesPersonalizadas.ts solo si no existe en el destino
|
|
58
|
+
// Copiar AccionesPersonalizadas.ts solo si no existe en el destino; si existe, asegurar referencias de MatDialog
|
|
59
59
|
const rutaAccionesDestino = path.join(directorioDestino, 'src', 'app', 'Paginas', 'contenedor-principal', 'AccionesPersonalizadas.ts');
|
|
60
|
+
const rutaAccionesTemplate = path.join(directoriodePlantillas, 'src', 'app', 'Paginas', 'contenedor-principal', 'AccionesPersonalizadas.ts');
|
|
60
61
|
if (!fs.existsSync(rutaAccionesDestino)) {
|
|
61
|
-
const rutaAccionesTemplate = path.join(directoriodePlantillas, 'src', 'app', 'Paginas', 'contenedor-principal', 'AccionesPersonalizadas.ts');
|
|
62
62
|
if (fs.existsSync(rutaAccionesTemplate)) {
|
|
63
63
|
fs.copyFileSync(rutaAccionesTemplate, rutaAccionesDestino);
|
|
64
64
|
console.log('AccionesPersonalizadas.ts no encontrado, se copió desde la plantilla.');
|
|
65
65
|
}
|
|
66
|
+
} else {
|
|
67
|
+
mergearAccionesPersonalizadas(rutaAccionesDestino);
|
|
66
68
|
}
|
|
67
69
|
|
|
68
70
|
// Merge de app.routes.ts
|
|
@@ -90,6 +92,39 @@ export async function updateFrontend(opciones = { cerrarAlFinalizar: true }) {
|
|
|
90
92
|
}
|
|
91
93
|
}
|
|
92
94
|
|
|
95
|
+
function mergearAccionesPersonalizadas(rutaArchivo) {
|
|
96
|
+
let contenido = fs.readFileSync(rutaArchivo, 'utf-8');
|
|
97
|
+
let modificado = false;
|
|
98
|
+
|
|
99
|
+
const importMatDialog = `import { MatDialog } from '@angular/material/dialog';`;
|
|
100
|
+
if (!contenido.includes(importMatDialog)) {
|
|
101
|
+
// Insertar después del último import existente
|
|
102
|
+
const ultimoImport = contenido.lastIndexOf("import {");
|
|
103
|
+
if (ultimoImport !== -1) {
|
|
104
|
+
const finLinea = contenido.indexOf('\n', ultimoImport);
|
|
105
|
+
contenido = contenido.slice(0, finLinea + 1) + importMatDialog + '\n' + contenido.slice(finLinea + 1);
|
|
106
|
+
} else {
|
|
107
|
+
contenido = importMatDialog + '\n' + contenido;
|
|
108
|
+
}
|
|
109
|
+
modificado = true;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
const propiedadDialog = ` dialog: MatDialog;`;
|
|
113
|
+
if (!contenido.includes(propiedadDialog)) {
|
|
114
|
+
// Insertar antes del cierre de la interfaz DependenciasDeAccion
|
|
115
|
+
const cierreInterfaz = contenido.indexOf('}', contenido.indexOf('DependenciasDeAccion'));
|
|
116
|
+
if (cierreInterfaz !== -1) {
|
|
117
|
+
contenido = contenido.slice(0, cierreInterfaz) + propiedadDialog + '\n' + contenido.slice(cierreInterfaz);
|
|
118
|
+
modificado = true;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (modificado) {
|
|
123
|
+
fs.writeFileSync(rutaArchivo, contenido);
|
|
124
|
+
console.log('AccionesPersonalizadas.ts: referencias de MatDialog agregadas.');
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
93
128
|
function mergeRoutesFrontend(rutaDestino, rutaFuente) {
|
|
94
129
|
let contenidoDestino = fs.readFileSync(rutaDestino, 'utf-8');
|
|
95
130
|
const contenidoFuente = fs.readFileSync(rutaFuente, 'utf-8');
|