# API md-links

* El módulo implementa soporte para archivo individual.
* El módulo implementa soporte para directorios.
* El módulo implementa *options.validate.*

El módulo se importa en otros scripts de Node.js ofreciendo la siguiente interfaz:

```cpp
@omairapalacios/md-links(path, options)
```

#### **Argumentos**

* `path`: (*string*) Ruta absoluta o relativa al archivo o directorio de donde se invoca .&#x20;
* `options`:  (*objeto*) con las siguiente propiedad :

  * **`validate`**: (*booleano*) que determina si se desea validar los links encontrados.

  &#x20;*false  :* retorna un array de objetos con 3 propiedades :&#x20;

  &#x20;`[{ href, path, text }]`

  &#x20;  *true  :* valida links , retorna propiedades adicionales   `[{ href, path, text, status, message }]` &#x20;

#### **Valor de retorno**

El modulo retorna una promesa (`Promise`) que se resuelve en un arreglo (`Array`) de objetos , donde cada objeto representa un link y contiene las siguientes propiedades:

* `href`: URL encontrada.
* `text`: Texto que aparece dentro del link (!\[*texto*]\(./some/example.md)).
* `file`: Ruta del archivo donde se encontró el link.

**Ejemplo**:&#x20;

* Importar el módulo

```javascript
const mdLinks = require("@omairapalacios/md-links");
```

* Consumiendo la promesa

***`options.validate : false`***

```javascript
mdLinks("./some/example.md", { validate: false })
  .then((links) => console.log (links))
  .catch((error) => console.log(error));
```

```bash
[{ href: "https://jestjs.io/",
   path: "./some/example.md",
   text: "Testing von jest"
},
{ href: "https://linkbad.com/",
   path: "./some/example.md",
   text: "link bad"
}]
```

***`options.validate : true`***

El módulo hace una petición HTTP para checkear si el link funciona o no. Se agregan 2 propiedades al objeto para indicar  la respuesta recibida.

`status:` código de respuesta HTTP.

`message:` texto corto que contrasta según el codigo de respuesta.

```javascript
mdlinks("./some/example.md", { validate: true })
  .then((links) => console.log (links))
  .catch((error) => console.log(error));
```

```bash
[{ href: "https://jestjs.io/",
   path: "./some/example.md",
   text: "Testing von jest",
   status: 200,
   message: 'OK'
},
{ href: "https://linkbad.com/",
   path: "./some/example.md",
   text: "link bad",
   status: 400,
   message: 'Fail'
   }
]
```
