Skip to main content

Hito 4

Interfaz de Línea de comando

En este hito, crearás un Interfaz de Linea de Comando (CLI), un script ejecutable que internamente ejecutará la función mdLinks que acabas de crear.

Este módulo debe incluir tanto un ejecutable que podamos invocar en la línea de comando como una interfaz que podamos importar para usarlo programáticamente.

El ejecutable de tu aplicación debe poder correr de la siguiente manera a través de la terminal:

`md-links <path-to-file> [options]`

Por ejemplo:

mdlinks-example

El comportamiento por defecto no debe validar si las URLs responden ok o no, solo debe identificar el archivo Markdown (a partir de la ruta que recibe como argumento), analizar el archivo Markdown e imprimir los links que vaya encontrando, junto con la ruta del archivo donde aparece y el texto que hay dentro del link (truncado a 50 caracteres).

Options

--validate

Si pasamos la opción --validate, el módulo debe hacer una petición HTTP para averiguar si el link funciona o no. Si el link resulta en una redirección a una URL que responde ok, entonces consideraremos el link como ok.

Por ejemplo:

mdlinks-example-validate

Vemos que el output en este caso incluye la palabra ok o fail después de la URL, así como el status de la respuesta recibida a la petición HTTP a dicha URL.

--stats

Si pasamos la opción --stats el output (salida) será un texto con estadísticas básicas sobre los links.

mdlinks-example-stats

También podemos combinar --validate y --stats para obtener estadísticas que necesiten de los resultados de la validación.

mdlinks-example-stats-validate

Para ejecutar tu script utilizando el comando mdlinks, debes vincular este comando al sistema. Sin embargo, antes de vincular el comando, puedes desarrollar tu interfaz de línea de comandos (CLI) invocándola con node. Por ejemplo, puedes usar el siguiente comando:

node <RUTA_DE_TU_CLI.js> ruta options

Este paquete deberá estar documentado en un repositorio público con un package.json para poderlo instalar con NPM.

La instalación sería de la siguiente manera:

npm install `<github-user>/md-links`.