Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Pasos para entender un proyecto/librería de npm, github, gitlab, etc.

Pasos para entender una librería

  • Leer la documentación general (Normalmente se encuentra en un archivo README.md o Wiki).
  • Determinar herramienta de empaquetación: Rollup, Webpack…
  • Determinar estándar usado: ES6, ES5, TypeScript…
  • Determinar archivo(s) de arranque (Normalmente se visualiza desde un principio en el package.json con la clave main).
  • Obtener listado de dependencias (package.json > dependencies) y observar su comportamiento/funcionamiento (puede observarse rapidamente en la documentación oficial de cada librería desde npm o git(hub|lab)).
  • Abrir archivo de arranque encontrado anteriormente:
    • Buscar función inicializadora, probablemente esté declarado con alguno de los siguientes nombres: boostrap, main, lib. En ES6, ES7 o Typescript se puede encontrar con la exportacion de una funcion anonima o una clase: export default function ...
    • La función inicializadora (parametros de constructuctor cuando se trata de class) puede contener argumentos, entender los tipos de objecto recibidos por los argumentos.
    • Determinar las variables internas (dentro del archivo actual) y globales.
    • En caso de encontrar variables globales, buscar punto de inicialización de las mismas y conocer el valor asignado. Podrían tratarse de variables de entorno u objetos pasados por la herramienta de empaquetación. ej.1 webpack.
    • Entender el orden de ejecucion de las funciones y desplazarse entre los archivos que se van requiriendo (require("libName") o import libName from "libName") a medida que se ejecutan.

Pruebas unitarias

  • Determinar herramienta de ejecución pruebas unitarias (comunmente se usa: karma, jest o ava)
  • Determinar archivo (karma.config.js | jest.config.js | ava.config.js) o comando (package.json > scripts > test) de arranque de las pruebas unitarias.
  • Analizar pruebas unitarias.

good luck...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment