codigoAEjecutar static method

String codigoAEjecutar(
  1. String nombreArchivo,
  2. List<Map<String, String>> data
)

Implementation

static String codigoAEjecutar(
    String nombreArchivo, List<Map<String, String>> data) {
  // Buscar el archivo correspondiente en la data
  final archivo =
      data.firstWhere((element) => element['nombre'] == nombreArchivo);

  // Extraer el código del archivo
  String codigo = archivo['codigo']!;

  // Buscar las importaciones
  final regex = RegExp(r"import:'([^']+)';");
  final matches = regex.allMatches(codigo);

  String codigoFinal = '';

  for (var match in matches) {
    final importPath = match.group(1)!;
    final importNombre = importPath.split('/').last.split('.').first;
    // print('Procesando archivo importado: $importNombre');

    // Llamada recursiva para obtener el código de los archivos importados
    codigoFinal += codigoAEjecutar(importNombre, data);
  }

  // Eliminar las declaraciones de importación del código antes de ejecutarlo
  codigo = codigo.replaceAll(regex, '');

  // Agregar el código actual al código final
  codigoFinal += codigo;

  // Retornar el código final combinado
  return codigoFinal;
}