Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
ab3ba7d
primeros pasos en el json
ChuzAlvaca Apr 25, 2023
fd63ead
setup inicial completo, funcionan con common js modules
ChuzAlvaca May 3, 2023
eee999b
set up definitivo en common modules
ChuzAlvaca May 3, 2023
1f3c99e
reconoce si existe o no archivo. si es md o no archivo
ChuzAlvaca May 3, 2023
f3988e3
enlista los archivos del directorio readDirSync
ChuzAlvaca May 3, 2023
e9bfbab
ruta absoluta incompleta
ChuzAlvaca May 3, 2023
fd77f16
toma data del process
ChuzAlvaca May 3, 2023
302ceac
la ruta es un archivo o un directorio
ChuzAlvaca May 4, 2023
271fefb
función que lee archivos lista
ChuzAlvaca May 4, 2023
593e30b
funcion que enlista archivos dentro de un directorio lista
ChuzAlvaca May 4, 2023
605fcf8
inicio de refactorización funciones simples
ChuzAlvaca May 5, 2023
2b2c6ae
encontré la funcion quer convierte a ruta absoluta
ChuzAlvaca May 5, 2023
0ecce4d
funciones refactorizadas e integradas: guada rutas absolutas, si hay …
ChuzAlvaca May 6, 2023
5514e18
la funcion mdLinks guarda rutas absolutas
ChuzAlvaca May 6, 2023
d1a61ea
refactorizando la funcion de es archivo o directorio
ChuzAlvaca May 6, 2023
65b0bc1
la funcion md guarda la ruta absoluta de archivo o de directorio
ChuzAlvaca May 8, 2023
703f0f9
la funcion mdlinks lee un archivo
ChuzAlvaca May 9, 2023
da209ff
la funcion mdLinks lee unicamente archivos .md
ChuzAlvaca May 9, 2023
3268550
test de funciones en data.js listos
ChuzAlvaca May 10, 2023
2710f0e
la funcion mdlinks lee el archivo .md y retorna un arr con los url
ChuzAlvaca May 10, 2023
cf93297
funcion que busca texto y links
ChuzAlvaca May 10, 2023
e041f8e
la funcion md lee las url de la data, falta adaptar con match all
ChuzAlvaca May 10, 2023
84da5f4
la funcion md retorna un arr de obetos (text y href)
ChuzAlvaca May 11, 2023
e0a2a56
la funcion validateUrl con axios funciona, pero no logré integrarla a…
ChuzAlvaca May 11, 2023
eff27f5
la funcion mdlinks retorna un objeto promesa por cada link, si el lin…
ChuzAlvaca May 11, 2023
4fcc5f8
funcion mdlinks retorna res:fulfilled o rejected
ChuzAlvaca May 12, 2023
0c25450
mdlinks devuelve contenido de archivo md, arr de objetos (promesa por…
ChuzAlvaca May 12, 2023
8d15b3a
mdlinks retorna el status de los links
ChuzAlvaca May 12, 2023
b192d4d
mdlinks retorna un arreglo de objetos por link con las keys text, hre…
ChuzAlvaca May 12, 2023
63b6a76
mdlinks retorna arr de objetos, cada obj representa un href, contiene…
ChuzAlvaca May 13, 2023
d372f30
funcion que define si es un file integrandose a mdlinks, funcionamien…
ChuzAlvaca May 15, 2023
b7e479b
mdlinks solo devuelve el objeto, validate se aregó al cli.js
ChuzAlvaca May 15, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file added .npm-init.js
Empty file.
22 changes: 22 additions & 0 deletions cli.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

const mdLinks = require("./index.js");

// acá se guarda el tercer input en la terminal.
const pathUser = process.argv[3];

mdLinks(pathUser)
.then((resv) => {
console.log(resv);
})
.catch((rej) => {
console.log(rej);
});


if(process.argv.includes('validate') || process.argv.includes('-v') ){
console.log('Tiene validate');
}else if (process.argv.includes('stats'))
{
console.log('No hay validate');

}
3 changes: 3 additions & 0 deletions content.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[Markdown](https://es.wikipedia.org/wiki/Markdown)
[Node.js](https://nodejs.org/es/)
[motor de JavaScript V8 de Chrome](https://developers.google.com/v80998/)
111 changes: 111 additions & 0 deletions data.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
const path = require("path");
const fs = require("fs");
const axios = require('axios');

// ***************LA RUTA EXISTE****************
const pathExist = (route) => fs.existsSync(route);

// *************** la ruta es absoluta? ***************
const isPathAbsolute = (route) => path.isAbsolute(route);

// ***************si no es absoluta, conviertela a absoluta: ***************
const pathAbs = (route) => path.resolve(route);

// ***************es un archivo o un directorio: ***************
// const isFile = (route) => {
// fs.stat(route, (error, stats) => {
// if (error) {
// console.error(error);
// return (console.log('la ruta no es válida')) ;
// }
// if (stats.isFile()) {
// const routeIsFile = route;
// }
// })
// };

//************* ¿la ruta es .md? *************
const mdExt = (route) => path.extname(route);

// ************* si el archivo es .md, lee el archivo *************
const readFile = (path) => {
return new Promise((resolve, reject) => {
fs.readFile(path, "utf-8", (err, data) => {
if (err) {
reject(err);
} else {
const dataResolved = data;
// console.log(dataResolved);
resolve (dataResolved);
}
});
});
};
// ************* ¿existen links? *************
const findUrl = (text) => {
const regexp = /\[(.*?)\]\((.*?)\)/g;
const matches = text.matchAll(regexp);
const ArrTotalLinks = [];

for (const match of matches) {
const linkObj = {
text: match[1],
href: match[2]
};
ArrTotalLinks.push(linkObj);
}
return (ArrTotalLinks);
};

// ************* validar que los links funcionan *************

const getStatus = (url) =>{
return axios.get(url)
}

const verifyLinks = (urls) => {
// console.log ('esto es urls', urls)
const GotUrls = urls.map((obj) => obj.href);
// console.log(typeof GotUrls);
const PROMESAS = GotUrls.map((url) => getStatus(url));
Promise.allSettled(PROMESAS)
.then((url) => {
url.forEach((res,index) => {
if( res.value !== undefined && res.value.status === 200){
const verifiedStatus ={status: res.value.status}
const urlsIndex = urls[index]
const okOrFail200 = {ok: "ok"}
const verifiedObject200 = {...urlsIndex,...verifiedStatus,...okOrFail200}
console.log(verifiedObject200)
}else {
const linkNotFound = {status: 404}
const okOrFail404 = {ok: "fail"}
const urlsIndex404 = urls[0]
const verifiedObject404 = { ...urlsIndex404,...linkNotFound,...okOrFail404}
console.log(verifiedObject404)
}
});
})
.catch((error) => {
console.log("error: ", error);
})
// console.log(PROMESAS);
// console.log(typeof(PROMESAS))
};

// aprovechar los indieces como parametros del foreach y retornar el objeto solicitado.





module.exports = {
mdExt,
isPathAbsolute,
readFile,
pathAbs,
pathExist,
findUrl,
verifyLinks,
// isFile,
};
Loading