import subprocess import gradio as gr import shutil # Verificar si JSHint está disponible jshint_path = shutil.which("jshint") print(f"✅ JSHint está instalado en: {jshint_path}") def analizar_codigo_js(codigo_js): # Guardamos el código JS en un archivo temporal with open("codigo.js", "w") as f: f.write(codigo_js) try: # Ejecutar JSHint en el archivo de código JavaScript print("Ejecutando JSHint en el archivo 'codigo.js'...") result = subprocess.run( ["jshint", "codigo.js"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True ) print(f"Salida estándar: {result.stdout}") print(f"Salida de error: {result.stderr}") # Si el código es válido (sin errores), el código de retorno será 0 if result.returncode == 0: return "✅ No se encontraron errores en el código." else: # Si hay errores, los mostramos return f"⚠️ Errores encontrados:\n{result.stderr or result.stdout}" except Exception as e: return f"❌ Error al ejecutar JSHint: {str(e)}" # Interfaz Gradio demo = gr.Interface( fn=analizar_codigo_js, inputs=gr.Textbox(lines=10, label="Código JavaScript"), outputs="textbox", title="🔍 Analizador JavaScript con JSHint", description="Pega tu código JavaScript para revisarlo automáticamente." ) # Lanzar la interfaz Gradio demo.launch()