- 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")
oimport libName from "libName"
) a medida que se ejecutan.
- Buscar función inicializadora, probablemente esté declarado con alguno de los siguientes nombres:
- Determinar herramienta de ejecución pruebas unitarias (comunmente se usa:
karma
,jest
oava
) - 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...