{"_id":"@alu0101436784/espree-logging","_rev":"2-2b9123efccc4d38609fb7069ba39085f","name":"@alu0101436784/espree-logging","dist-tags":{"latest":"1.1.1"},"versions":{"1.0.0":{"name":"@alu0101436784/espree-logging","author":{"name":"Adriano dos Santos Moreira","email":"alu0101436784@ull.edu.es"},"description":"Adds logs to javascript code","type":"module","bin":{"funlog":"bin/funlog.js"},"scripts":{"cov":"c8 npm test","test":"mocha test/test.mjs","test1":"./bin/funlog.js test/data/test1.js","test2":"./bin/funlog.js test/data/test2.js","test3":"./bin/funlog.js test/data/test3.js"},"dependencies":{"acorn":"^8.8.2","commander":"^10.0.0","escodegen":"^2.0.0","espree":"^9.4.1","estraverse":"^5.2.0","underscore":"^1.12.0"},"version":"1.0.0","devDependencies":{"c8":"^7.13.0","mocha":"^10.2.0"},"gitHead":"fd2d123c1da456bb4efd9ff263cb9cf50d5886c9","_id":"@alu0101436784/espree-logging@1.0.0","_nodeVersion":"19.6.0","_npmVersion":"9.4.0","dist":{"integrity":"sha512-WHoI/JQ/zyPLSfsKweK/okR/KWydfo/nfFXD+URD5DhwowoFckQAvPuk2tgl9DxbX2/RSpe6kgvaAJ+CIERsVw==","shasum":"605d2956ec3bc5edd43baf5c7c70cdcd94dfad22","tarball":"https://registry.npmjs.org/@alu0101436784/espree-logging/-/espree-logging-1.0.0.tgz","fileCount":18,"unpackedSize":1836157,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIC7fiHC9u+EkrNoq6CqTnE/VfAJm4aHjoBiF23cMU1FYAiBc3E631WmRKp/xlI/VYaZj+0kEy1z3cYsimTsbAS5QCg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/yafACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoHoA/9H29hmoQfhsQiKM7p7z3WiTR1hJLT6kLDPw8b+CBbnQ5L12+A\r\nCVXJiCXbsY6qtopyqA5JIj/oTBj/iPE8H3LkgMCrmoddjW75jangSXuvdHtR\r\nDAIiJvY8EFl3ynzpA08bI7z3GLhVeNLhNVVGHy5k/p+2zQSuAmpWDhbfsjiM\r\nwlqkwyXgpD1FuHQt5UU43nS32Fvt831ZWQls919sMjeFEOk3kKSRl/uHpfQM\r\nGQ0ZtidIMSStV1IepkL2tbUs34ZmFkWZf2BdhzImtLC1ztf9/OpJMPos1+NY\r\nNSNbP6nd5eZjvxprNt5eMrKydT+a7b2gd0gsqC5WyEtT2e/GB6/r8x7qApzN\r\ncvz9toVl721MwnRsx3gqOwfv/tRQ3FpLz2U+3eX47y1VPM4nRcG+KtBtWjyz\r\nsAjP0JWGldUvhz4vo9ScxP8HldlM61FeVXD/hNGLHiet6E4xUTIcY6HIm797\r\n1pZapIqtGcKAD4WCl7EpaiXNI1ijgFH94H6W6cs9CwD0hhVBC4D5fu6oAc5P\r\nCEbqPHuMMaHdHSpCWOCn7/L48aHlQMaigcQFPiu2B33yKP5jgPBwXcyiwys7\r\nyAFZZtBaiAuhsJTOfleRR7immBtqr7zYEXR5Ms3xlO5tSHo6WRDpwJJ2b2BX\r\nwk8h78AkvSpYNFRy8yy0qQdzbIUSzOyq/Ag=\r\n=tA4R\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alu0101436784","email":"alu0101436784@ull.edu.es"},"directories":{},"maintainers":[{"name":"alu0101436784","email":"alu0101436784@ull.edu.es"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/espree-logging_1.0.0_1677665951100_0.8637187672672295"},"_hasShrinkwrap":false},"1.1.0":{"name":"@alu0101436784/espree-logging","author":{"name":"Adriano dos Santos Moreira","email":"alu0101436784@ull.edu.es"},"description":"Adds logs to javascript code","type":"module","bin":{"funlog":"bin/funlog.js"},"scripts":{"doc":"jsdoc2md src/logging-espree.js > DOC.md","cov":"c8 npm test","test":"mocha test/test.mjs","test1":"./bin/funlog.js test/data/test1.js","test2":"./bin/funlog.js test/data/test2.js","test3":"./bin/funlog.js test/data/test3.js"},"dependencies":{"acorn":"^8.8.2","commander":"^10.0.0","escodegen":"^2.0.0","espree":"^9.4.1","estraverse":"^5.2.0","jsdoc-to-markdown":"^8.0.0","underscore":"^1.12.0"},"version":"1.1.0","devDependencies":{"c8":"^7.13.0","jsdoc":"^4.0.2","mocha":"^10.2.0"},"gitHead":"56d86dd1b207cc6873c0d01a54e1b36c5d520096","_id":"@alu0101436784/espree-logging@1.1.0","_nodeVersion":"19.6.0","_npmVersion":"9.4.0","dist":{"integrity":"sha512-lM835gmqGusKHWDO/mcGZacEtMAkmmjpUj+kJ6RpsA3RK7P6w0VJFYFLNb4y/rfuHtHvHdFi+/Xx6+gCno97tg==","shasum":"9b01551d43454ebb81e80a02fd5b562bcf2c4a9c","tarball":"https://registry.npmjs.org/@alu0101436784/espree-logging/-/espree-logging-1.1.0.tgz","fileCount":26,"unpackedSize":2379297,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCU1Kt9KpGSAncGc1cwu8QWBX3SeAk0WKXs91WCiwDqsAIgXWEk2ikHdgjOLEb7dlRQlx1ow+wRiULKyhL0w2OCfaw="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/y5cACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmp+Sg//a0QJ5leK/quJN7XStT/R4SUdPGRQ4NX81CssdUIlhmb7jHMf\r\nbv1I4FEwvaoouhyX4aenYFIUrAcq8hAecu6OOjyqQaD6P7m6A9YMpBZk5ZAD\r\n9HLQilR9fq9z0SxaHKcDn9xqp71JMgbq69QjQOUx25fcrkQXE72P3GXs9EKd\r\ncm4ISMDAN383MMbSpB8imNH+9DRvRrAK/XPPBcUZ0A7UfinzLZu3qpPVqGgq\r\n7NfVyGCVJR/gxr5KRJeB6/7dQTl0d30Y0gnGquKMh/+O4MxbC6o4cMXRbX7L\r\nOukL084FcT9GiuidFRUZb3q5qYkRk0xbBX3EOsyO72gluINseTWc6BX0e4sJ\r\nsQWvcTbVfBDqW/lse4Tb56yOZsa94OgyKqZB0s+pQxKrNI8eKQJSTL/9+e2w\r\ngKOFE/oEgmaCFBbGXYC9s1V8DlozC+YYNIfV6Zadzc2iH2oC2DhvLwGkRwKX\r\nfxq2xoRK8G4+vlPdOnLxBLhf4z1XlOQ7ohd4ljWWHSZHHtG41nExlPUpTIGN\r\nWrfj+4zJqHfcTPEedPfV6sEN8m8yJiSKSHl2wngS/O8Wm6U2WW/iaaW+51GI\r\nRxFpT1JSlP9YD+mC4SuAhXUAStHQaG/Gcs4/6id7O9vzSUg8imcYjnUQtlmu\r\nZK3xYRe2RZXHkxdjCabXecQ/LR3unkUErrA=\r\n=F4PB\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alu0101436784","email":"alu0101436784@ull.edu.es"},"directories":{},"maintainers":[{"name":"alu0101436784","email":"alu0101436784@ull.edu.es"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/espree-logging_1.1.0_1677667931893_0.31316690373568856"},"_hasShrinkwrap":false},"1.1.1":{"name":"@alu0101436784/espree-logging","author":{"name":"Adriano dos Santos Moreira","email":"alu0101436784@ull.edu.es"},"description":"Adds logs to javascript code","type":"module","bin":{"funlog":"bin/funlog.js"},"scripts":{"doc":"jsdoc2md src/logging-espree.js > DOC.md","cov":"c8 npm test","test":"mocha test/test.mjs","test1":"./bin/funlog.js test/data/test1.js","test2":"./bin/funlog.js test/data/test2.js","test3":"./bin/funlog.js test/data/test3.js"},"dependencies":{"acorn":"^8.8.2","commander":"^10.0.0","escodegen":"^2.0.0","espree":"^9.4.1","estraverse":"^5.2.0","jsdoc-to-markdown":"^8.0.0","underscore":"^1.12.0"},"version":"1.1.1","devDependencies":{"c8":"^7.13.0","jsdoc":"^4.0.2","mocha":"^10.2.0"},"gitHead":"7b313deb1950e93dc2821fc423412a35d559e3b4","_id":"@alu0101436784/espree-logging@1.1.1","_nodeVersion":"19.6.0","_npmVersion":"9.4.0","dist":{"integrity":"sha512-xZsXx6kV7aF5StNDZX1SWGqZSOrCM58mmnTSwL+4vG5TWn2WNabDOWoA7l4Shjgktgd3qlZ+x24CMPv+DVo8/g==","shasum":"4f0af52a5e32ab0d90c1537d8d3d34509a4b434d","tarball":"https://registry.npmjs.org/@alu0101436784/espree-logging/-/espree-logging-1.1.1.tgz","fileCount":26,"unpackedSize":2388170,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEGfBV3HsvfRwaq1jrIr6re+R5I7YHt8hIv5KHlrIAHlAiAtIDPlUCPL6A4ihhLAJCMCsc0dH1jxbl5sML79gDSHCg=="}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJj/y+EACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqG9RAAoAHJWYwETr3M1HlctuTl05ndL414k/cRttPgCDct+w/T07D0\r\n0NS+0Ipgq8DgqYSUEpn8OhNsMCzOx4vRuL7i2/Pz9/7FdvVQQQQGkXzMiYs4\r\nVb3AwOf1Upb7e+Qbrduq6mLoY9OnQEEdLsmNu//WVGtUgG3S7hbyd+UaRbkw\r\nNRR4Q1QFUmXdjaNUDRAmSIhNjieke0perRJ0KBkyyS3zn3Qs2/AXsyUcUvN7\r\nCTGC1ZHO7Z2p7JG0XMqvdBO7oVIqhKvKYVlfHL3ZWPramXk/viGEpw3GPJQs\r\nRYX8hmVEucT7SAdUO2aPOE5YaaoAYjjp07M+BHdFPSxAzQ+9R+fZP5aOGn3D\r\nzq81b58kD+drfvVQxRLg7jsKRZhl6f6ac7xui/8Er5ZTHMrCryKjA6uBoa+J\r\nZ1ChsgG2iZMgGm24HdodktPQUuBPR3AC2LJpciaBX4AIQlWZV/HtSqgT9Ql/\r\nDt0fo1/ekxLoK5uxoj7nwn2Y45+b5DlZY8B0/z8xF1cR4ORgzJBQbto8e6uE\r\nmUeARsYqsb+90BTxgRqEQSt4SYhoGBo0jUdDc4V7Pd0PHPwlx92bEXMxtKjb\r\nlWdrcQOJ/tVkZYEgTzt+/DgF+dUv6+aIMbZKOIvlBsRu9xTDYkKeWLYawxqJ\r\nQ0Kkr43sIBJfVVr3TjEg/hvn4hWHRtBbX7E=\r\n=JC6w\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"alu0101436784","email":"alu0101436784@ull.edu.es"},"directories":{},"maintainers":[{"name":"alu0101436784","email":"alu0101436784@ull.edu.es"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/espree-logging_1.1.1_1677668228288_0.501427778337556"},"_hasShrinkwrap":false}},"time":{"created":"2023-03-01T10:19:10.995Z","1.0.0":"2023-03-01T10:19:11.328Z","modified":"2023-03-01T10:57:08.636Z","1.1.0":"2023-03-01T10:52:12.175Z","1.1.1":"2023-03-01T10:57:08.525Z"},"maintainers":[{"name":"alu0101436784","email":"alu0101436784@ull.edu.es"}],"description":"Adds logs to javascript code","author":{"name":"Adriano dos Santos Moreira","email":"alu0101436784@ull.edu.es"},"readme":"[![Open in Codespaces](https://classroom.github.com/assets/launch-codespace-f4981d0f882b2a3f0472912d15f9806d57e124e0fc890972558857b51b24a6f9.svg)](https://classroom.github.com/open-in-codespaces?assignment_repo_id=10277580)\n# Práctica Espree logging\n\n## Resumen de lo aprendido\n\nCreamos un AST del código con `espree` y luego utilizamos `estraverse` para\nrecorrer los nodos del árbol.\n\nCada vez que entramos en un nodo, comprobamos su __tipo__, y si es la definición\nde una función, procedemos a insertar código en él. Los tipos que buscamos son:\n- `FunctionDeclaration`\n- `FunctionExpression`\n- `ArrowFunctionExpression`\n\nUna vez en el nodo, recogemos la información que necesitamos para construir el\nmensage de `console.log` (nombre de función, parámetros y número de línea) y creamos\nel AST asociado al mismo. Luego concatenamos el cuerpo de dicho nodo al cuerpo\ndel nodo de la función.\n\n## Indicar los valores de los argumentos\n\nSe ha modificado el código de `logging-espree.js` para que el _log_ también indique\nlos valores de los argumentos que se pasaron a la función.\nEjemplo:\n\n```javascript\nfunction foo(a, b) {\n  var x = 'blah';\n  var y = (function (z) {\n    return z+3;\n  })(2);\n}\nfoo(1, 'wut', 3);\n```\n\n```javascript\nfunction foo(a, b) {\n    console.log(`Entering foo(${ a }, ${ b })`);\n    var x = 'blah';\n    var y = function (z) {\n        console.log(`Entering <anonymous function>(${ z })`);\n        return z + 3;\n    }(2);\n}\nfoo(1, 'wut', 3);\n```\n\n## CLI con [Commander.js](https://www.npmjs.com/package/commander)\n\nImplementadas opciones de ejecución con Commander:\n\n![commander ejemplo](img/commander.png)\n\n## Scripts\n\n![scripts](img/scripts.png)\n\n## Retos: Funciones flecha & Número de línea\n\nUtilizamos la opción `loc` para poder obtener la línea donde se encuentran los\nelementos del árbol más fácilmente.\n\n![funcion addLogging](img/addlogging.jpg)\n\nCreamos la expresión del `console.log` de manera que muestre el nombre de la\nfunción, sus parámetros y la línea donde se encuentra la función.\n\n![funcion addBeforeCode](img/addbeforecode.png)\n\n## Tests & Covering\n\nUtilizamos `c8` en lugar de `nyc` ya que `nyc` no soporta _imports_ de ES Modules.\nEn nuestro caso, funciona de la misma forma y tiene el mismo efecto.\n\n![coverage tests](img/covtest.png)\n\n## CI con GitHub Actions\n\nConfiguración de GitHub Actions:\n\n![ci github actions](img/actionsconfig.png)\n\nPágina de Actions:\n\n![ci github actions](img/actions.png)\n","readmeFilename":"README.md"}