@alu0101436784/espree-logging v1.1.1
Práctica Espree logging
Resumen de lo aprendido
Creamos un AST del código con espree y luego utilizamos estraverse para
recorrer los nodos del árbol.
Cada vez que entramos en un nodo, comprobamos su tipo, y si es la definición de una función, procedemos a insertar código en él. Los tipos que buscamos son:
FunctionDeclarationFunctionExpressionArrowFunctionExpression
Una vez en el nodo, recogemos la información que necesitamos para construir el
mensage de console.log (nombre de función, parámetros y número de línea) y creamos
el AST asociado al mismo. Luego concatenamos el cuerpo de dicho nodo al cuerpo
del nodo de la función.
Indicar los valores de los argumentos
Se ha modificado el código de logging-espree.js para que el log también indique
los valores de los argumentos que se pasaron a la función.
Ejemplo:
function foo(a, b) {
var x = 'blah';
var y = (function (z) {
return z+3;
})(2);
}
foo(1, 'wut', 3);function foo(a, b) {
console.log(`Entering foo(${ a }, ${ b })`);
var x = 'blah';
var y = function (z) {
console.log(`Entering <anonymous function>(${ z })`);
return z + 3;
}(2);
}
foo(1, 'wut', 3);CLI con Commander.js
Implementadas opciones de ejecución con Commander:

Scripts

Retos: Funciones flecha & Número de línea
Utilizamos la opción loc para poder obtener la línea donde se encuentran los
elementos del árbol más fácilmente.

Creamos la expresión del console.log de manera que muestre el nombre de la
función, sus parámetros y la línea donde se encuentra la función.

Tests & Covering
Utilizamos c8 en lugar de nyc ya que nyc no soporta imports de ES Modules.
En nuestro caso, funciona de la misma forma y tiene el mismo efecto.

CI con GitHub Actions
Configuración de GitHub Actions:

Página de Actions:
