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.
@@ -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');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "utn-cli",
3
- "version": "2.1.31",
3
+ "version": "2.1.32",
4
4
  "description": "Herramienta CLI unificada para la gestión de plantillas en SIGU.",
5
5
  "main": "index.js",
6
6
  "type": "module",