- 1. Resumen del proyecto
- 2. Diagrama de Flujo
- 3. Instalación y guía de uso de la librería
- 4. Características técnicas
- 5. Autora
Este proyecto consta en la creación de una herramienta de línea de comando (CLI) así como una propia librería (o biblioteca - library) en JavaScript.
Diseñar una librería propia es una experiencia fundamental para cualquier desarrollador porque obliga a pensar en la interfaz (API) de módulos propios y cómo será usado por otros developers. Se tomó en cuenta especial consideración en peculiaridades del lenguaje, convenciones y buenas prácticas.
La libreria se instala mediante la siguiente vía:
npm install --marklink <DafneAquino>/md-links
Una vez que el usuario tenga instalada la librería marklink, va a tener las siguientes herramientas:
- En el terminal ingresamos el comando global md-link seguido de la dirección de la ubicación del archivo y/o carpeta de la cual queremos saber cuales son los links existentes en ese archivo y su texto descriptivo. Ejemplo:
- Si ingresamos el comando global md-link seguido de la dirección de la ubicación del archivo y seguido del comando --validate obtendremos las propiedades de los links que encontramos en ese archivo. Ejemplo:
- Si ingresamos el comando global md-link seguido de la dirección de la ubicación del archivo y seguido del comando --stats obtendremos la cantidad total de links que encontremos en ese archivo y el total de links unicos encontrados:
- Si ingresamos el comando global md-link seguido de la dirección de la ubicación del archivo y seguido de los comandos --stats --validate obtendremos la cantidad total de links que encontremos en ese archivo, el total de links unicos encontrados y el total de links rotos:
- Si ingresamos el comando global md-link seguido de la dirección de la ubicación del archivo y seguido del comando --help obtendremos un texto de ayuda como el siguiente:
El proyecto se realizó bajo estas características técnicas de javascript y node:
-
[x] Diferenciar entre tipos de datos primitivos y no primitivos
-
[x] Arrays (arreglos)
-
[x] Objetos (key, value)
-
[x] Uso de condicionales (if-else, switch, operador ternario, lógica booleana)
-
[x] Funciones (params, args, return)
-
[x] Recursión o recursividad
-
[x] Módulos de CommonJS
-
[ ] Diferenciar entre expresiones (expressions) y sentencias (statements)
-
[x] Callbacks
-
[x] Promesas
-
[x] Pruebas unitarias (unit tests)
-
[x] Pruebas asíncronas
-
[x] Uso de mocks y espías
-
[ ] Pruebas de compatibilidad en múltiples entornos de ejecución
-
[x] Uso de linter (ESLINT)
-
[x] Uso de identificadores descriptivos (Nomenclatura y Semántica)
-
[x] Instalar y usar módulos con npm
-
[x] Configuración de package.json
-
[x] Configuración de npm-scripts
-
[x] process (env, argv, stdin-stdout-stderr, exit-code)
-
[x] File system (fs, path)
-
[x] Git: Instalación y configuración
-
[x] Git: Control de versiones con git (init, clone, add, commit, status, push, pull, remote)
-
[x] Git: Integración de cambios entre ramas (branch, checkout, fetch, merge, reset, rebase, tag)
-
[x] GitHub: Creación de cuenta y repos, configuración de llaves SSH
-
[x] GitHub: Despliegue con GitHub Pages
-
[ ] GitHub: Colaboración en Github (branches | forks | pull requests | code review | tags)
-
[x] GitHub: Organización en Github (projects | issues | labels | milestones | releases)
-
[x] Consulta o petición (request) y respuesta (response).
-
[x] Codigos de status de HTTP
Dafne Aquino Manyari - LIM015 Laboratoria.