Modules@robinpath/debug
debug

@robinpath/debug

0.1.1Node.jsPublic

Debugging utilities: inspect, timing, counters, logging, memory profiling, value comparison, ASCII tables

Debug

Debugging utilities: inspect, timing, counters, logging, memory profiling, value comparison, ASCII tables

Package: @robinpath/debug | Category: Other | Type: Utility

Authentication

No authentication required. All functions are available immediately.

Use Cases

Use the debug module when you need to:

  • Deep inspect a value -- Use debug.inspect to perform this operation
  • Get detailed type -- Use debug.typeOf to perform this operation
  • Start a timer -- Use debug.timeStart to perform this operation
  • End timer and get duration -- Use debug.timeEnd to perform this operation
  • Pass value through with timing -- Use debug.timeit to perform this operation

Quick Reference

FunctionDescriptionReturns
inspectDeep inspect a value{type, value, keys, length}
typeOfGet detailed typeType name
timeStartStart a timerLabel
timeEndEnd timer and get duration{label, duration, durationFormatted}
timeitPass value through with timing{result, durationMs}
countIncrement counterCurrent count
countResetReset countertrue
countGetGet counter valueCount
logAdd debug log entryLog entry
getLogsGet debug logsLog entries
clearLogsClear debug logstrue
assertAssert conditiontrue if passed
traceGet stack traceStack trace
memoryGet memory usageMemory stats in MB
sizeofEstimate value memory size{bytes, formatted}
diffCompare two values{equal, type, differences}
freezeDeep freeze objectFrozen copy
cloneDeep clone valueCloned value
tableFormat as ASCII tableFormatted table
dumpPretty-print valueFormatted string

Functions

inspect

Deep inspect a value

Module: debug | Returns: object -- {type, value, keys, length}

debug.inspect $data
ParameterTypeRequiredDescription
valueanyYesValue to inspect

typeOf

Get detailed type

Module: debug | Returns: string -- Type name

debug.typeOf $data
ParameterTypeRequiredDescription
valueanyYesValue

timeStart

Start a timer

Module: debug | Returns: string -- Label

debug.timeStart "fetch"
ParameterTypeRequiredDescription
labelstringYesTimer label

timeEnd

End timer and get duration

Module: debug | Returns: object -- {label, duration, durationFormatted}

debug.timeEnd "fetch"
ParameterTypeRequiredDescription
labelstringYesTimer label

timeit

Pass value through with timing

Module: debug | Returns: object -- {result, durationMs}

debug.timeit $result
ParameterTypeRequiredDescription
valueanyYesValue to pass through

count

Increment counter

Module: debug | Returns: number -- Current count

debug.count "iterations"
ParameterTypeRequiredDescription
labelstringYesCounter name

countReset

Reset counter

Module: debug | Returns: boolean -- true

debug.countReset "iterations"
ParameterTypeRequiredDescription
labelstringYesCounter name

countGet

Get counter value

Module: debug | Returns: number -- Count

debug.countGet "iterations"
ParameterTypeRequiredDescription
labelstringYesCounter name

log

Add debug log entry

Module: debug | Returns: object -- Log entry

debug.log "Processing item" $item
ParameterTypeRequiredDescription
messagestringYesLog message
dataanyNoExtra data

getLogs

Get debug logs

Module: debug | Returns: array -- Log entries

debug.getLogs
ParameterTypeRequiredDescription
levelstringNoFilter by level

clearLogs

Clear debug logs

Module: debug | Returns: boolean -- true

debug.clearLogs
ParameterTypeRequiredDescription
(none)NoCall with no arguments

assert

Assert condition

Module: debug | Returns: boolean -- true if passed

debug.assert $valid "Should be valid"
ParameterTypeRequiredDescription
conditionanyYesCondition
messagestringNoError message

trace

Get stack trace

Module: debug | Returns: string -- Stack trace

debug.trace
ParameterTypeRequiredDescription
(none)NoCall with no arguments

memory

Get memory usage

Module: debug | Returns: object -- Memory stats in MB

debug.memory
ParameterTypeRequiredDescription
(none)NoCall with no arguments

sizeof

Estimate value memory size

Module: debug | Returns: object -- {bytes, formatted}

debug.sizeof $data
ParameterTypeRequiredDescription
valueanyYesValue

diff

Compare two values

Module: debug | Returns: object -- {equal, type, differences}

debug.diff $old $new
ParameterTypeRequiredDescription
aanyYesFirst value
banyYesSecond value

freeze

Deep freeze object

Module: debug | Returns: object -- Frozen copy

debug.freeze $config
ParameterTypeRequiredDescription
objanyYesObject to freeze

clone

Deep clone value

Module: debug | Returns: any -- Cloned value

debug.clone $data
ParameterTypeRequiredDescription
valueanyYesValue to clone

table

Format as ASCII table

Module: debug | Returns: string -- Formatted table

debug.table $users
ParameterTypeRequiredDescription
dataarrayYesArray of objects
columnsarrayNoColumn names

dump

Pretty-print value

Module: debug | Returns: string -- Formatted string

debug.dump $data
ParameterTypeRequiredDescription
valueanyYesValue
optionsobjectNo{depth}

Error Handling

All functions throw on failure. Common errors:

ErrorCause
Timer "..." not foundCheck the error message for details
@desc "Inspect and validate result"
do
  set $result as debug.inspect $data
  if $result != null
    print "Success"
  else
    print "No result"
  end
enddo

Recipes

1. List and iterate Logs

Retrieve all items and loop through them.

@desc "Get logs and iterate results"
do
  set $result as debug.getLogs
  each $item in $result
    print $item
  end
enddo

2. Multi-step Debug workflow

Chain multiple debug operations together.

@desc "Inspect, type of, and more"
do
  set $r_inspect as debug.inspect $data
  set $r_typeOf as debug.typeOf $data
  set $r_timeStart as debug.timeStart "fetch"
  print "All operations complete"
enddo

3. Safe inspect with validation

Check results before proceeding.

@desc "Inspect and validate result"
do
  set $result as debug.inspect $data
  if $result != null
    print "Success: " + $result
  else
    print "Operation returned no data"
  end
enddo

Related Modules

  • json -- JSON module for complementary functionality

Versions (1)

VersionTagPublished
0.1.1latest1 months ago
Install
$ robinpath add @robinpath/debug

Collaborators

Dumitru Balaban
Dumitru Balaban
@dumitru
View all @robinpath modules
Version0.1.1
LicenseMIT
Unpacked Size6.6 KB
Versions1
Weekly Downloads26
Total Downloads26
Stars0
Last Publish1 months ago
Created1 months ago

Keywords

Category

utilities