@alu0100889772/addlogging
v1.2.1
Published
Adds logging to a javascript file when a function starts
Downloads
8
Readme
Práctica Espree Logging
Aprendizaje con la herramienta Inspect
Observando el código podemos aprender que a partir de el código inicial, lo primero que se hace es transformarlo en un AST.
Este AST se va recorriendo hasta que encuentre un nodo con un 'type' FunctionDeclaration o FunctionExpression. Cuando lo ha encontrado es cuando añadimos nuestro propio nodo al AST con el Logging de que se ha entrado en esa función.
Esto se hace creado el código con el logging:
let beforeCode = `console.log('Entering ${name}(`)');`;
Y luego pasando el código por esprima.parse que lo transforma para poder inyectarlo al AST.
Añadir los parámetros de la función al Logging
Para poder añadir al Logging los parámetros de la función a la que se entra tenemos que observar el hijo de node que se llama params. Es un Array por lo que simplemente creamos un bucle que lo recorra y añadimos los nombres de los parámetros.
Usando commander
El paquete commander nos facilita la interfaz de comandos de nuestro programa. Añade fácilmente las opciones -h y -V además de permitir que creemos opciones personalizadas.
Para esta práctica añadí las siguientes líneas de código:
const program = require('commander');
const {version, description} = require('./package.json');
program
.version(version)
.arguments('<inputFileName>')
.description(description)
.option('-o, --output <filename>', 'output code will go to the specified file');
program.parse(process.argv);
Gracias a esto ya funcionan las opciones -h y -V. La opción -o <filename> se podrá usar simplemente con program.output para obtener el nombre del archivo de salida.
Documentación
Table of Contents
addLogging
This function starts the process to comment every function of the input code.
Parameters
code
input
String code.
Returns String commented code.
addBeforeCode
This function adds a comment after the program enters a function.
Parameters
node
node where the comment will be injected.