@robinpath/debug
0.1.1Node.jsPublicDebugging 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.inspectto perform this operation - Get detailed type -- Use
debug.typeOfto perform this operation - Start a timer -- Use
debug.timeStartto perform this operation - End timer and get duration -- Use
debug.timeEndto perform this operation - Pass value through with timing -- Use
debug.timeitto perform this operation
Quick Reference
| Function | Description | Returns |
|---|---|---|
inspect | Deep inspect a value | {type, value, keys, length} |
typeOf | Get detailed type | Type name |
timeStart | Start a timer | Label |
timeEnd | End timer and get duration | {label, duration, durationFormatted} |
timeit | Pass value through with timing | {result, durationMs} |
count | Increment counter | Current count |
countReset | Reset counter | true |
countGet | Get counter value | Count |
log | Add debug log entry | Log entry |
getLogs | Get debug logs | Log entries |
clearLogs | Clear debug logs | true |
assert | Assert condition | true if passed |
trace | Get stack trace | Stack trace |
memory | Get memory usage | Memory stats in MB |
sizeof | Estimate value memory size | {bytes, formatted} |
diff | Compare two values | {equal, type, differences} |
freeze | Deep freeze object | Frozen copy |
clone | Deep clone value | Cloned value |
table | Format as ASCII table | Formatted table |
dump | Pretty-print value | Formatted string |
Functions
inspect
Deep inspect a value
Module: debug | Returns: object -- {type, value, keys, length}
debug.inspect $data
| Parameter | Type | Required | Description |
|---|---|---|---|
value | any | Yes | Value to inspect |
typeOf
Get detailed type
Module: debug | Returns: string -- Type name
debug.typeOf $data
| Parameter | Type | Required | Description |
|---|---|---|---|
value | any | Yes | Value |
timeStart
Start a timer
Module: debug | Returns: string -- Label
debug.timeStart "fetch"
| Parameter | Type | Required | Description |
|---|---|---|---|
label | string | Yes | Timer label |
timeEnd
End timer and get duration
Module: debug | Returns: object -- {label, duration, durationFormatted}
debug.timeEnd "fetch"
| Parameter | Type | Required | Description |
|---|---|---|---|
label | string | Yes | Timer label |
timeit
Pass value through with timing
Module: debug | Returns: object -- {result, durationMs}
debug.timeit $result
| Parameter | Type | Required | Description |
|---|---|---|---|
value | any | Yes | Value to pass through |
count
Increment counter
Module: debug | Returns: number -- Current count
debug.count "iterations"
| Parameter | Type | Required | Description |
|---|---|---|---|
label | string | Yes | Counter name |
countReset
Reset counter
Module: debug | Returns: boolean -- true
debug.countReset "iterations"
| Parameter | Type | Required | Description |
|---|---|---|---|
label | string | Yes | Counter name |
countGet
Get counter value
Module: debug | Returns: number -- Count
debug.countGet "iterations"
| Parameter | Type | Required | Description |
|---|---|---|---|
label | string | Yes | Counter name |
log
Add debug log entry
Module: debug | Returns: object -- Log entry
debug.log "Processing item" $item
| Parameter | Type | Required | Description |
|---|---|---|---|
message | string | Yes | Log message |
data | any | No | Extra data |
getLogs
Get debug logs
Module: debug | Returns: array -- Log entries
debug.getLogs
| Parameter | Type | Required | Description |
|---|---|---|---|
level | string | No | Filter by level |
clearLogs
Clear debug logs
Module: debug | Returns: boolean -- true
debug.clearLogs
| Parameter | Type | Required | Description |
|---|---|---|---|
| (none) | No | Call with no arguments |
assert
Assert condition
Module: debug | Returns: boolean -- true if passed
debug.assert $valid "Should be valid"
| Parameter | Type | Required | Description |
|---|---|---|---|
condition | any | Yes | Condition |
message | string | No | Error message |
trace
Get stack trace
Module: debug | Returns: string -- Stack trace
debug.trace
| Parameter | Type | Required | Description |
|---|---|---|---|
| (none) | No | Call with no arguments |
memory
Get memory usage
Module: debug | Returns: object -- Memory stats in MB
debug.memory
| Parameter | Type | Required | Description |
|---|---|---|---|
| (none) | No | Call with no arguments |
sizeof
Estimate value memory size
Module: debug | Returns: object -- {bytes, formatted}
debug.sizeof $data
| Parameter | Type | Required | Description |
|---|---|---|---|
value | any | Yes | Value |
diff
Compare two values
Module: debug | Returns: object -- {equal, type, differences}
debug.diff $old $new
| Parameter | Type | Required | Description |
|---|---|---|---|
a | any | Yes | First value |
b | any | Yes | Second value |
freeze
Deep freeze object
Module: debug | Returns: object -- Frozen copy
debug.freeze $config
| Parameter | Type | Required | Description |
|---|---|---|---|
obj | any | Yes | Object to freeze |
clone
Deep clone value
Module: debug | Returns: any -- Cloned value
debug.clone $data
| Parameter | Type | Required | Description |
|---|---|---|---|
value | any | Yes | Value to clone |
table
Format as ASCII table
Module: debug | Returns: string -- Formatted table
debug.table $users
| Parameter | Type | Required | Description |
|---|---|---|---|
data | array | Yes | Array of objects |
columns | array | No | Column names |
dump
Pretty-print value
Module: debug | Returns: string -- Formatted string
debug.dump $data
| Parameter | Type | Required | Description |
|---|---|---|---|
value | any | Yes | Value |
options | object | No | {depth} |
Error Handling
All functions throw on failure. Common errors:
| Error | Cause |
|---|---|
Timer "..." not found | Check 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)
| Version | Tag | Published |
|---|---|---|
| 0.1.1 | latest | 1 months ago |
Related Modules
@robinpathv0.1.4
SMTP email sending and address parsing for RobinPath
hash
JS@robinpathv0.1.3
Cryptographic hashing utilities: MD5, SHA family, HMAC, CRC32, file hashing, UUID v5 generation, secure random bytes, and content fingerprinting
csv
JS@robinpathv0.1.2
Parse and stringify CSV data
apollo
JS@robinpathv0.1.2
Apollo module for RobinPath.
$ robinpath add @robinpath/debug
