Skip to content

Commit

Permalink
Modificando comentarios
Browse files Browse the repository at this point in the history
  • Loading branch information
Alemapyapur committed Sep 30, 2021
1 parent 169b272 commit 49af404
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 138 deletions.
15 changes: 1 addition & 14 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,9 @@
const { mdLinks } = require('./src/function-mdlinks.js');
const { uniqueLinks, brokenLinks, totalLinks } = require('./src/api.js')

// const arg = process.argv[2];
// Retorna un arr con los arg pasados a la terminal, 1 ejecutable node, 2 ruta del ejecutabl,3 args
const [, , ...argument] = process.argv;

// console.log(process.argv[0]); // node (length 1)
// console.log(process.argv[1]); // mdlinks (length 2)
// console.log(process.argv[2]); // path (length 3)
// console.log(process.argv[3]); // validate or stats (length 4)
// console.log(process.argv[4]); // stats or validate(length 5)
// console.log("*", process.argv.length); */

// * +----------------------------------------------------------------------------------------------------------------+
// * | OPTION STATS |
// * +----------------------------------------------------------------------------------------------------------------+
// * OPTION STATS

if (argument.length === 1) {
mdLinks(argument[0], { validate: false })
Expand All @@ -30,7 +19,6 @@ if (argument.length === 2) {
switch (argument[1]) {
case '--validate':
mdLinks(argument[0], { validate: true })
// .then(resolve => {console.log(resolve)})
.then(resolve => {
resolve.map((objeto) => {
console.log(`
Expand Down Expand Up @@ -71,7 +59,6 @@ if (argument.length === 2) {
}
}


if (argument.length === 3) {
if (
(argument[1] === "--stats" && argument[2] === "--validate") ||
Expand Down
134 changes: 22 additions & 112 deletions src/api.js
Original file line number Diff line number Diff line change
@@ -1,97 +1,39 @@
// * +----------------------------------------------------------------------------------------------------------------+
// * | Importando módulos |
// * +----------------------------------------------------------------------------------------------------------------+

// * Importando módulos
const path = require('path');
const fs = require('fs');
const marked = require('marked');
const fetch = require('node-fetch');

// * +----------------------------------------------------------------------------------------------------------------+
// * | Función que valida la ruta |
// * +----------------------------------------------------------------------------------------------------------------+

// * Función que valida la ruta
const validatePath = (paths) => fs.existsSync(paths);

// console.log(validatePath('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\src')); // true
// console.log(validatePath('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\source')); //false

// * +----------------------------------------------------------------------------------------------------------------+
// * | Función que valida la ruta, si es Path Absoluto, y si es Path Relativo lo convierte en Path Absoluto |
// * +----------------------------------------------------------------------------------------------------------------+

// * Función que valida la ruta, si es Path Absoluto, y si es Path Relativo lo convierte en Path Absoluto
const validatePathAbsolute = (paths) => fs.existsSync(paths) ? path.normalize(path.resolve(paths)): "La ruta no existe";

// console.log(validatePathAbsolute('./src/pruebas')); // devuelve el path absoluto
// console.log(validatePathAbsolute('./src/pruebass')); // devuelve la ruta no existe

// * +----------------------------------------------------------------------------------------------------------------+
// * | Función que valida un archivo |
// * +----------------------------------------------------------------------------------------------------------------+

// * Función que valida un archivo
const validateFile = (paths) => fs.statSync(paths).isFile();
// console.log(validateFile('./src/pruebas/prueba.md')); // true
// console.log(validateFile('./src/pruebas')); //false
// console.log(validatePath('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\src\\pruebas\\prueba.md')); // true

// * +----------------------------------------------------------------------------------------------------------------+
// * | Función que valida si el path es un directorio |
// * +----------------------------------------------------------------------------------------------------------------+

// * Función que valida si el path es un directorio
const validateDirectory = (paths) => fs.statSync(paths).isDirectory();

// console.log(validateDirectory('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\src\\pruebas')); //true
// console.log(validateDirectory('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\src\\pruebas\\prueba.md')); //false

// * +----------------------------------------------------------------------------------------------------------------+
// * | Función que lee el directorio |
// * +----------------------------------------------------------------------------------------------------------------+

// * Función que lee el directorio
const validateReadDirectory = (paths) => fs.readdirSync(paths);

// console.log(validateReadDirectory('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\src\\pruebas'));

// * +----------------------------------------------------------------------------------------------------------------+
// * | Función que valida archivo .md, verifica si tiene extención .md con extname |
// * +----------------------------------------------------------------------------------------------------------------+

// * Función que valida archivo .md, verifica si tiene extención .md con extname
const validateMd = (paths) => path.extname(paths) === '.md';

// console.log(validateMd('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\src\\pruebas\\prueba.md')); // true
// console.log(validateMd('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\src\\pruebas\\prueba.js')); //false

// * +----------------------------------------------------------------------------------------------------------------+
// * | Función que lee un archivo .md |
// * +----------------------------------------------------------------------------------------------------------------+

// * Función que lee un archivo .md
const validateReadFileMd = (paths) => fs.readFileSync(paths, 'utf8');

// console.log(validateReadFileMd('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\src\\pruebas\\prueba.md'));


// * +----------------------------------------------------------------------------------------------------------------+
// * | Función que lee un archivo y lo convierte en una cadena |
// * +----------------------------------------------------------------------------------------------------------------+
// *
// * Función que lee un archivo y lo convierte en una cadena
const validateReadfile = (paths) => fs.readFileSync(paths).toString();

// console.log(validateReadfile('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\src\\pruebas\\prueba.md'));
// devuelve el contenido

// * +----------------------------------------------------------------------------------------------------------------+
// * | Función que despues de leer un directorio, junta el nombre de los archivos con su ruta |
// * +----------------------------------------------------------------------------------------------------------------+

// * Función que despues de leer un directorio, junta el nombre de los archivos con su ruta
const validatefileWithPath = (paths) => {
return validateReadDirectory(paths).map((index) => path.join(paths, index));
};
// console.log(validatefileWithPath('./src/pruebas')); // devuelve los archivos que esta dentro de la carpeta pruebas
// console.log(validatefileWithPath('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\src\\pruebas'));

// * +----------------------------------------------------------------------------------------------------------------+
// * | Función para buscar archivos .md con su ruta para poder guardarlos los archivos en un array |
// * +----------------------------------------------------------------------------------------------------------------+

// * Función para buscar archivos .md con su ruta para poder guardarlos los archivos en un array
const searchPathMd = (paths) => {
const pathAbsolute = validatePathAbsolute(paths);
let filesArray = [];
Expand All @@ -108,14 +50,7 @@ const searchPathMd = (paths) => {
return filesArray;
};

// console.log(searchPathMd('./src/pruebas/prueba')); //devuelve los archivos .md con sus rutas
// console.log(searchPathMd('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\src\\pruebas'));


// * +----------------------------------------------------------------------------------------------------------------+
// * | Función para extraer los links de un archivo .md, devuelve array de objetos |
// * +----------------------------------------------------------------------------------------------------------------+

// * Función para extraer los links de un archivo .md, devuelve array de objetos
const extractLinksMd = (paths) => {
const linksMd = searchPathMd(paths);
let linksArray = [];
Expand All @@ -135,15 +70,9 @@ const extractLinksMd = (paths) => {
return linksArray;
};

//console.log(extractLinksMd('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\src\\pruebas\\prueba\\pruebamd'));


// * +----------------------------------------------------------------------------------------------------------------+
// * | HTTP |
// * +----------------------------------------------------------------------------------------------------------------+
// * | Función para validar los links que se extrajeron de un archivo .md |
// * +----------------------------------------------------------------------------------------------------------------+

// HTTP
// * Función para validar los links que se extrajeron de un archivo .md
const validateLink = (paths) => {
const linksMd = extractLinksMd(paths);
const validateLinks = linksMd.map((link) => fetch(link.href)
Expand All @@ -169,51 +98,32 @@ const validateLink = (paths) => {
return Promise.all(validateLinks);
};

// validateLink('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\src\\pruebas\\prueba\\pruebas3.md')
// .then(resolve => {console.log(resolve)}).catch(reject => console.log(reject));


// * +----------------------------------------------------------------------------------------------------------------+
// * | STATS |
// * +----------------------------------------------------------------------------------------------------------------+
// * | Función de verificar cantidad de links unicos (uniqueLinks) |
// * +----------------------------------------------------------------------------------------------------------------+

// STATS
// * Función de verificar cantidad de links unicos (uniqueLinks)
const uniqueLinks = (links) => {
const unique = new Set(links.map(elem => elem.href));
return unique.size;
};

// console.log(uniqueLinks('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\src\\pruebas\\prueba\\prueba3.md'));

// * +----------------------------------------------------------------------------------------------------------------+
// * | Función de verificar cantidad de links rotos (broken Link) |
// * +----------------------------------------------------------------------------------------------------------------+

// * Función de verificar cantidad de links rotos (broken Link)
const brokenLinks = (links) => {
const broken = links.filter((elem) => elem.message >= 400 || elem.statusText == 'NOT FOUND')
const brokenLink = `\nBroken: ${broken.length}`;
return brokenLink;
}

// * +----------------------------------------------------------------------------------------------------------------+
// * | Función de devuelve cantidad de links totales |
// * +----------------------------------------------------------------------------------------------------------------+
};

// * Función de devuelve cantidad de links totales
const totalLinks = (link) => {
const total = link.map(link => link.href);
const totalLink = `\nTotal: ${total.length}`;
return totalLink;
}

// * +----------------------------------------------------------------------------------------------------------------+
// * | Modulo para exportar las Funciónes declaradas |
// * +----------------------------------------------------------------------------------------------------------------+
};

// * Modulo para exportar las Funciónes declaradas
module.exports = {
validatePath, validatePathAbsolute, validateFile,
validateDirectory, validateReadDirectory, validateMd,
validateReadFileMd, validateReadfile, validatefileWithPath,
searchPathMd, extractLinksMd, validateLink,
uniqueLinks, brokenLinks, totalLinks
}
};
13 changes: 1 addition & 12 deletions src/function-mdlinks.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
const apiPage = require('./api.js');
// const simplePath = process.argv[2]; // el 2 representa el indice

// * +----------------------------------------------------------------------------------------------------------------+
// * | FUNCION MD-LINKS |
// * +----------------------------------------------------------------------------------------------------------------+
// * FUNCION MD-LINKS

const mdLinks = (path, options) =>
new Promise((resolve, reject) => {
Expand Down Expand Up @@ -31,12 +28,4 @@ const mdLinks = (path, options) =>
});


// Cuando pongo true, y la ruta si existe me deberia retorna 5 propiedades href, text, file, file, statusText y message
// mdLinks('C:\\Users\\Alemapyapur\\Desktop\\LABORATORIA\\LIM015-md-links\\src\\pruebas\\prueba\\pruebamd', { validate: true })
// .then(resolve => { console.log(resolve) }).catch(reject => console.log(reject));

// mdLinks(simplePath, { validate: true })
// .then(resolve => { console.log(resolve)}).catch(reject => console.log(reject));
// node ./src/md-links.js src\pruebas\prueba\pruebamd\pruebamdlinks.md

module.exports = { mdLinks };

0 comments on commit 49af404

Please sign in to comment.