@alu0100615791/addlogging

1.2.1 • Public • Published

AddLogging

Small library providing utilities to create console logs

Installation

npm install @alu010061591/addLogging --save

Usage

add-logging --pattern 'functionNamePattern' --output salida.js -i input.js
  • -p patron
  • -o fichero salida
  • -i fichero entrada

Test

npm test

Release History

1.2.0

Módulo NPM

En esta práctica se pedía crear un módulo npm a partir de logging.js, el código de la práctica 1. Publicarlo en node y testearlo.

Primeros pasos

Lo primero fue configurar npm para poder subir el modulo. para ello se usaron los siguientes comandos:

npm set init.author.name "Juan José Pérez López"
npm set init.author.email "alu0100615791@ull.edu.es"
npm set init.author.url "https://github.com/alu0100615791"
npm adduser

Y tenemos que iniciar npm en nuestro ambito:

npm init --scope=@alu0100615791

En el package.json colocamos lo siguiente:

"name": "@alu0100615791/addlogging",
  "version": "1.2.0",
  "main": "logging.js",
  "bin": {
    "add-logging": "logging.js"
  },

Y en el logging.js debemos añadir la siguiente linea para cuando alguien use el módulo se ejecute la función deseada.

module.exports = addLogging;

Una vez tenemos esto ya lo podemos publicar con la opcion:

npm publish --access public  

Y ya tendriamos el modulo publicado y listo para su uso

##Logging.js

Queremos que el programa se ejecute con el siguiente comando:

add-logging --pattern 'functionNamePattern' --output salida.js -i input.js

Para ello usamos commander como en la práctica anterior, añadiendo las opciones -p para que se ejecute con el patron deseado y -i para añadir el fichero de entrada. Nuestro commander quedaría de la siguiente manera:

program
   .option('-o, --output <fichero>', 'especifique el fichero de salida', 'output.js')
   .option('-i, --input <fichero>', 'especifique el fichero de entrada', 'input.js')
   .option('-p, --pattern <patron>', 'especifique el patron', 'functionNamePattern');
   program.parse();
   const input = fs.readFileSync(program.opts().input, 'UTF8');
   const output = addLogging(input, program.opts().pattern);
   fs.writeFileSync(program.opts().output, output);

Aparte debemos modificar la siguiente linea al addLogging para que se ejecute con el patron deseado:

if (node.id != undefined && node.id.name === pattern)

Posteriormente podemos hacer un npm publish para subir nuestros cambios

##Tests

Lo primero que necesitamos es instalar Chai y Mocha y en el package.json añadimos:

"scripts": {
    "test": "mocha"
  },

Despues creamos el fichero test.js y añadimos el codigo que deseamos testear:

const addLogging = require('./logging');

var should = require('chai').should();
//        addlogging = require('logging.js');

const input = `function foo(a, b) {
   var x = 'blah';
   var y = (function () {
     return 3;
   })();
   let z = (e => { 
     return e +1 
   })(4);
 }
 foo(1, 'wut', 3);

 function fuu() {
     return 55;
 }`;

const output = `function foo(a, b) {
   console.log('Entering foo() at line 1');
   console.log(a);
   console.log(b);
   var x = 'blah';
   var y = function () {
       return 3;
   }();
   let z = (e => {
       return e + 1;
   })(4);
}
foo(1, 'wut', 3);
function fuu() {
   return 55;
}`;

describe('#verificar', function () {
   it('Working propertly', function () {
       addLogging(input.trim(), 'foo').should.equal(output.trim());
   })
   it('Working not propertly', function () {
       addLogging(input.trim(), 'fuu').should.not.equal(output.trim());
   })
}) 

Al ejecutarlo con npm test nos da la siguiente salida:

> mocha



  #verificar
    √ Working propertly
    √ Working not propertly


  2 passing (9ms)

Posteriormente en otro proyecto queremos ejecutar los test y comprobar que todo va bien para ello en el package.json tenemos:

"name": "@alu0100615791/prueba-logging",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
  "test": "mocha index.js"
},

y si ejecutamos el index.js se nos pasarán los test correctamente.

##Documentacion

Antes de nada debemos instalar la documentacion de js para ello:

npx documentation --version         
npm install -g documentation

y ya podemos hacer comentarios en nuestro logging.js como:

/**
* Princiapl fuction that generate ast tree from code parameter
* @param {string} code 
* @param {string} pattern 
* @returns ast tree
*/

Podemos generar un markdown automatico con los comentarios hechos poniendo:

documentation build logging.js -f md

##Submodules

Simplemente añadimos los repositorios que queramos con:

git submodule add (ssh)

Readme

Keywords

none

Package Sidebar

Install

npm i @alu0100615791/addlogging

Weekly Downloads

8

Version

1.2.1

License

ISC

Unpacked Size

10.3 kB

Total Files

7

Last publish

Collaborators

  • alu0100615791