Get current line stack information such as line number, method, file, filename, callSites, and more. Can search through callSites for/skip a particular functionName, typeName, or filename.
Example
const lineStack = require('line-stack')
-
lineStack
-
LineStack ⏏
-
instance
-
.get([level]) ⇒
StackItem
-
.findByFilename(rx, fromIndex, stack, returnIndex) ⇒
StackItem
|number
|void
-
.skipByFilename(matcher) ⇒
StackItem
|void
-
.findByTypeName(rx, fromIndex, stack, returnIndex) ⇒
StackItem
|number
|void
-
.skipByTypeName(matcher) ⇒
StackItem
|void
-
.findByFunctionName(rx, fromIndex, stack, returnIndex) ⇒
StackItem
|number
|void
-
.skipByFunctionName(matcher) ⇒
StackItem
|void
-
.all() ⇒
Array.<CallSite>
-
.get([level]) ⇒
- inner
-
instance
-
LineStack ⏏
lineStack.get([level]) ⇒ StackItem
Returns stack trace which can be console logged
lineStack.get([level]) ⇒ StackItem
Returns a single item at given level
Kind: instance method of LineStack
Param | Type | Default | Description |
---|---|---|---|
[level] | number |
0 |
Useful to return levels up on the stack. If not informed, the first (0, zero index) element of the stack will be returned |
lineStack.findByFilename(rx, fromIndex, stack, returnIndex) ⇒ StackItem
| number
| void
find the stack using filename that matches the given RegExp or string.
Kind: instance method of LineStack
Param | Type | Default | Description |
---|---|---|---|
rx | string \ RegExp |
string or regular expression to use to find the item | |
fromIndex | number |
0 |
the index of the first item to find |
stack | Array.<CallSite> |
array of StackItems to search through | |
returnIndex | boolean |
false |
if true, return the stack index the item is instead of the item |
lineStack.skipByFilename(matcher) ⇒ StackItem
| void
find the next stack using filename that doesn't match the given string.
Kind: instance method of LineStack
Param | Type |
---|---|
matcher | string |
lineStack.findByTypeName(rx, fromIndex, stack, returnIndex) ⇒ StackItem
| number
| void
find the stack using type name that matches the given RegExp or string.
Kind: instance method of LineStack
Param | Type | Default | Description |
---|---|---|---|
rx | string \ RegExp |
string or regular expression to use to find the item | |
fromIndex | number |
0 |
the index of the first item to find |
stack | Array.<CallSite> |
array of StackItems to search through | |
returnIndex | boolean |
false |
if true, return the stack index the item is instead of the item |
lineStack.skipByTypeName(matcher) ⇒ StackItem
| void
find the next stack using type name that doesn't match the given string.
Kind: instance method of LineStack
Param | Type |
---|---|
matcher | string |
lineStack.findByFunctionName(rx, fromIndex, stack, returnIndex) ⇒ StackItem
| number
| void
find the stack using function name that matches the given RegExp or string.
Kind: instance method of LineStack
Param | Type | Default | Description |
---|---|---|---|
rx | string \ RegExp |
string or regular expression to use to find the item | |
fromIndex | number |
0 |
the index of the first item to find |
stack | Array.<CallSite> |
array of StackItems to search through | |
returnIndex | boolean |
false |
if true, return the stack index the item is instead of the item |
lineStack.skipByFunctionName(matcher) ⇒ StackItem
| void
find the next stack using function name that doesn't match the given string.
Kind: instance method of LineStack
Param | Type |
---|---|
matcher | string |
lineStack.all() ⇒ Array.<CallSite>
Returns all stack
Kind: instance method of LineStack
lineStack.parseCallSitesToStack(Array.<CallSite>
) ⇒ String
Returns stack trace based off given callSites
Kind: instance method of LineStack
LineStack~getStack() ⇒ Array.<CallSite>
Get the call callSites stack
Kind: inner method of LineStack
LineStack~parse(item, stack) ⇒ StackItem
Parse the given stack item
Kind: inner method of LineStack
Param |
---|
item |
stack |
LineStack~iterateStack(stack, fromIndex, returnIndex, predicate) ⇒ StackItem
| number
| void
iterate through given stack items and return of first item where predicate returns truthy.
Kind: inner method of LineStack
Param | Type | Description |
---|---|---|
stack | Array.<CallSite> |
stack to iterate through |
fromIndex | number |
the index to start at |
returnIndex | boolean |
if true, return the stack index the item is instead of the item |
predicate | function |
predicate function to use. called with arguments (item) - the current stack item |
Kind: global typedef
Properties
Name | Type |
---|---|
getThis() |
object or undefined
|
getTypeName() | string |
getFunction() |
function or undefined
|
getFunctionName() | string |
getMethodName() |
string or null
|
getFileName() |
string or undefined
|
getLineNumber() | number |
getColumnNumber() | number |
getEvalOrigin() |
CallSite or string
|
isToplevel() | boolean |
isEval() | boolean |
isNative() | boolean |
isConstructor() | boolean |
Kind: global typedef
Properties
Name | Type | Description |
---|---|---|
method | string |
Name of function on stack |
line | number |
Line number on stack |
file | string |
/PathOfFile/Source/NameOfFilename.js |
filename | string |
NameOfFile |
callSites | Array.<CallSite> |
/PathOfFile/Source/NameOfFilename.js |
Emmanuel Mahuni