Small library providing utilities to create console logs
npm install @alu0100615791/addlogging
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 ', 'especifique el fichero de salida', 'output.js')
.option('-i, --input ', 'especifique el fichero de entrada', 'input.js')
.option('-p, --pattern ', '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) {
;
const output = function foo(a, b) {
;
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)
``