npm.io
1.0.0 • Published 2d ago

debug-lite-js

Licence
MIT
Version
1.0.0
Deps
1
Size
6 kB
Vulns
0
Weekly
0

debug-lite-js

Utilitário Node.js para facilitar o debug de aplicações backend com logs estruturados, pretty print, timers e captura de erros.

Recursos

  • Logs inteligentes com níveis info, warn, error e debug
  • Timestamp em cada mensagem
  • Cores no console com chalk
  • Pretty print de objetos JSON e nested objects
  • Debug condicional via DEBUG=true
  • Timer de execução com startTimer / endTimer
  • Função de captura de erros com stack trace formatado

Instalação

npm install debug-lite-js

Uso básico

const debug = require('debug-lite-js');

debug.info('Servidor iniciado');
debug.warn('Espaço em disco baixo');
debug.error('Erro inesperado');

debug.debug('Dados de depuração', { user: 'admin' });

debug.pretty({
  user: 'admin',
  roles: ['admin', 'editor'],
  profile: { age: 30, active: true },
});

Exemplo real em Express

const express = require('express');
const debug = require('debug-lite-js');

const app = express();
const port = process.env.PORT || 3000;

app.use(express.json());

app.use((req, res, next) => {
  debug.info('Request recebida', { method: req.method, path: req.path });
  if (debug.isDebugEnabled()) {
    debug.pretty({ headers: req.headers, query: req.query, body: req.body });
  }
  next();
});

app.get('/', (req, res) => {
  debug.startTimer('home-route');
  res.send('Hello World');
  debug.endTimer('home-route');
});

app.get('/users/:id', async (req, res) => {
  const userId = req.params.id;
  debug.info('Buscando usuário', userId);
  debug.startTimer('fetch-user');

  try {
    // Simula busca de usuário
    const user = { id: userId, name: 'Maria', role: 'admin' };
    debug.pretty(user);
    res.json(user);
  } catch (error) {
    debug.logError(error, 'Falha ao buscar usuário');
    res.status(500).json({ error: 'Erro interno' });
  } finally {
    debug.endTimer('fetch-user');
  }
});

app.use((err, req, res, next) => {
  debug.logError(err, 'Erro de middleware');
  res.status(500).json({ error: 'Erro interno do servidor' });
});

app.listen(port, () => {
  debug.info(`Servidor Express rodando na porta ${port}`);
});

Ativar logs de debug

DEBUG=true node app.js

API Exportada

  • log(level, message, ...meta)
  • info(message, ...meta)
  • warn(message, ...meta)
  • error(message, ...meta)
  • debug(message, ...meta)
  • logError(error, message)
  • isDebugEnabled()
  • pretty(value, options)
  • startTimer(label)
  • endTimer(label, options)

debug-lite-js foi criado para tornar as rotinas de depuração mais visuais e rápidas no Node.js.