npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

sr-console

v1.1.7

Published

Modulo mejorado de la consola de node.js

Downloads

13

Readme

Rapida, simple y colorida. Una herramienta para mejorar tus console.log()

sr-console npm version GitHub last commit GitHub issues

INICIALIZACION

Comando de instalacion (Node.js & NPM)

npm i sr-console

Activa la libreria. Esto va al inicio de tu archivo index.js o index.ts

import "sr-console"; // MODULE (EJ5 / ESNEXT)
require('sr-console'); // COMMONJS

// TODO SE GUARDA EN LAS VARIABLES GLOBALES
console.send("data");
LOG.send("data");

CONFIGURACION (.env)

Importante: Si estas usando un archivo .env deberas situarlo en la raiz del proyecto Consulta la documentacion de la configuracion .env en el repositorio

FUNCIONES BASICAS

La libreria cuenta con casi todas las funciones que existen en la clase Console original. Aqui un ejemplo de todas las funciones con los colores que muestran y los valores que returnan

// COMMONJS
require("sr-console");
// MODULE (EJ5 / EJNEXT)
import "sr-console";

// NOTA: ES VALIDO SI USAS console.any() SIEMPRE Y CUANDO ESTE ACTIVADO EN EL .env EL SOBREESCRIBIR console
LOG.time();
LOG.warn("Iniciando demostracion de SR-CONSOLE");
LOG.warn("La implementacion puede estar a medias");
LOG.log("Cargando servidor ficticio");
LOG.log("Revisando informacion");
LOG.success("Toda la informacion fue validada");
LOG.group("Cargando registros")
LOG.debug("Se han detectado", 393, "registros");
LOG.debug("Importando registros");
LOG.debug("Indexandolos al nucleo del servidor");
LOG.group("Revision de registros")
LOG.err("Se detectaron 43 registros no validos o dañados");
LOG.info("Se intento reparar 43 registros");
LOG.warn("Existen", 4, "registros que se encuentran en un estado critico e irreparable")
LOG.unGroup("Se han cargado con exito", 350, "registros");

LOG.warn("Iniciando servidor");
LOG.log("Iniciando sesion");
LOG.send("Enviando Token NIGGA-XXXXXX-XXXXX");
LOG.success("Se ha iniciado session exitosamente")

LOG.info("Estan pendientes los",43, "registros sin cargar");
LOG.info("el servidor se encuentra usando 60gb de ram")
LOG.info("no se pudo procesar el modelo del procesador, se utilizo el modo seguro");
setTimeout(() => {
    LOG.timeEnd();
    LOG.fatalBack(new Error("FATAL ERROR OCURRED ON SYSTEM REGISTRY"));
    LOG.log("recuperado");
    LOG.warn("oh no");
    LOG.err("no me siento bien");
    throw new Error("Finalizado");
}, 2000);

RESULTADO

CHANGELOG

  • RELEASE: 1.1.7
    • [FIX] SrPrint.send("S") se comportaba como un console.send en lugar de console.success
    • [FIX] setSocketIO() detectaba como invalido un socket valido
    • [FIX] DMAX ya muestra los milisegundos
    • [FIX] Espaciados se aplicaban donde no con cierta configuracion
    • [FIX] Arreglo en la documentacion para SocketIO
    • [ENH] El archivo log con colores ahora es por sesion (raw sigue siendo permanente)
    • [ENH] Formato especial a [(Function: name)]
    • [FIX-ENH-NEW] Nueva variable SRCONSOLE_EXPERIMENTALS agregada al .env. Esto resuelve el problema en el que si ocurre un error no capturado el codigo seguia ejecutandose, no estaba intencionado, ya que era parte de una funcion nueva pero que no dio ese comportamiento en las pruebas internas con otros proyectos. se utilizara en futuras funciones que se vayan documentando

VERSION 1.2.0 - Nuevas instancias

De una forma breve, la razon por la que diseñe SR-CONSOLE para hacer mas agradable los logs de mis bots de discord, sin embargo (aparte de que ya no hago bots de discord) algo que frecuentaba mucho yo al codear (y que varios modulos de npm frecuentan) es meter a los Promises.catch() el console.err a secas o tambien acaparan las variables console a lo brusco

Por ese motivo SR-CONSOLE no se podia instanciar 2 veces, todo recaia en sus metodos estaticos de su clase principal y no en otras variables en this, al meter la funcion a secas pierde la nocion de que instancia viene, y al intentar utilizar elementos de esa instancia solo obtiene que this es undefined

ERRORES POR VENIR La actualizacion 1.2.0 permitira reinstancias de SR-CONSOLE y posiblemente MUCHOS errores se vendran si utilizas console.func a secas para capturar los mensajes de error. DEJA DE HACER ESO, en su lugar usa err => console.err(err);

Si alguna libreria que utilizas recae en esta mala praxis (generalmente para crear PRINTERS), abrir un issue en el REPOSITORIO para solucionarlo con el otro autor.

PARA CREADORES DE MODULOS puedes utilizar new console.SrPrint("MY-MODULE"); como sustituto eficaz al printer que utilizas, su documentacion esta indicada en PRINT.send para enviar errores o advertencias

PLUGINS

[PLUGIN] SRPRINT

const PRINT = new LOG.SrPrint("SYSTEM");
PRINT.send("L", "My cool output"); // Salida: [00:00:00][SYSTEM]: My cool output
PRINT.subPrinter("MY-SUBPRINT"); // Crea un SRPRINT con base al primero ->[00:00:00][SYSTEM/MY-SUBPRINT]: My cool output

WORK IN PROGRESS

  • Permitir Objetos Circulares
  • Colores de 8-bits (256)
  • Combinacion de colores basicos y de 8-bits para consolas como la CMD.exe
  • Decoradores para typescript
  • Dar formato automatico a Objects y Arrays
  • Proteger todas las variables del .env de ser mostradas en consola
  • Enviar comandos usando childProcess por medio de websockets
  • Crear copia de console.table() mas userFriendly

INTEGRACIONES

SrConsole puede integrarse o ser integrado con otras librerias utiles para expandir la utilidad de esta herramienta.

SrConsole x SocketIO

Puedes implementar tu servidor SOCKET.IO

const SocketIO = require('socket.io');
const io = SockeIO();
LOG.setSocketIO(io);

/* Detectar la salida de la consola */
socket.on('srconsole:in', data => {}); // INPUTS (no util por ahora)
socket.on('srconsole:out', data => {}); // OUTPUTS
socket.on('srconsole:err', data => {}); // OUTPUTS DE ERROR

SrConsole x DotEnv

Al usar sr-console ya no necesitas importar la libreria dotenv, ya lo hace por ti. sin embargo cuenta con algunas restricciones.

  • No puedes cambiar la configuracion de dotenv
  • No estan las utilidades para convertir elementos del .env a un Object()