Files

3.0 KiB

obug

npm version npm downloads Unit Test

A lightweight JavaScript debugging utility, forked from debug, featuring TypeScript and ESM support.

Note

obug v1 retains most of the compatibility with debug, but drops support for older browsers and Node.js, making it a drop-in replacement.

obug v2 refactors some API imports and usage for better support of ESM and TypeScript, easier customization, and an even smaller package size.

Key Differences from debug

  • Minimal footprint
    • 7.7 kB package size
    • 1.4 KB minified + gzipped for browsers
  • 📦 Zero dependencies
  • 📝 Full TypeScript support
  • 🚀 Native ESM compatibility
  • 🌐 Optimized for modern runtimes
    • ES2015+ browsers
    • Modern Node.js versions
  • 🎨 Customizable formatting

Installation

npm install obug

Usage

import { createDebug, disable, enable, enabled, namespaces } from 'obug'

// Get the currently enabled namespaces
console.log(namespaces())

const debug = createDebug('my-namespace', {
  // All options are optional

  useColors: true, // false, true, undefined for auto-detect
  color: 2, // custom color
  // custom formatArgs
  formatArgs(args) {},
  formatters: {},
  // Node.js only
  inspectOpts: {},

  // custom log
  log: console.log,
})

debug('This is a debug message')
console.log(
  debug.namespace, // 'my-namespace'
  debug.enabled, // Check if enabled
  debug.useColors, // true
  debug.color, // 2
  debug.formatArgs, // custom formatArgs
  debug.formatters, // {}
  debug.inspectOpts, // {}
  debug.log, // implemented log function
)

// Create a sub-namespace, and it will inherit options from the parent debugger
const sub = debug.extend('sub-namespace')
sub('This is a sub-namespace debug message')
console.log(sub.namespace) // 'my-namespace:sub-namespace'

Original Authors

As obug is a fork of debug with significant modifications, we would like to acknowledge the original authors:

  • TJ Holowaychuk
  • Nathan Rajlich
  • Andrew Rhyne
  • Josh Junon

Sponsors

License

MIT License © 2025-PRESENT Kevin Deng

The MIT License Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca>

The MIT License Copyright (c) 2018-2021 Josh Junon