@@ -149,20 +149,10 @@ export function getCallerInfo(callerDistance = 0): CallerInfo {
149
149
}
150
150
}
151
151
152
- const stacks = getStackCallerSites ( depth + 1 )
153
- const site = stacks [ depth ]
152
+ const stacks = getStackCallerSites ( depth + 5 )
153
+ const site = pickSite ( stacks . slice ( depth - 1 ) , ret )
154
154
assert ( site , 'stack empty' )
155
155
156
- // // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
157
- // const enclosingLineNumber: number | undefined = site.getEnclosingLineNumber
158
- // ? site.getEnclosingLineNumber() as unknown as number
159
- // : 0
160
-
161
- // // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
162
- // const enclosingColNumber: number | undefined = site.getEnclosingColumnNumber
163
- // ? site.getEnclosingColumnNumber() as unknown as number
164
- // : 0
165
-
166
156
const funcName = site . getFunctionName ( ) ?? ''
167
157
const methodName = site . getMethodName ( ) ?? ''
168
158
const typeName = site . getTypeName ( ) ?? ''
@@ -188,6 +178,25 @@ export function getCallerInfo(callerDistance = 0): CallerInfo {
188
178
return ret
189
179
}
190
180
181
+ function pickSite ( data : NodeJS . CallSite [ ] , needle : CallerInfo ) : NodeJS . CallSite | undefined {
182
+ const site = data . find ( ( item ) => {
183
+ const fileName = item . getFileName ( ) ?? ''
184
+ const funcName = item . getFunctionName ( ) ?? ''
185
+ const lineNumber = item . getLineNumber ( ) ?? - 1
186
+ const columnNumber = item . getColumnNumber ( ) ?? - 1
187
+
188
+ if ( fileName === needle . path
189
+ && funcName === needle . funcName
190
+ && lineNumber === needle . lineNumber
191
+ && columnNumber === needle . columnNumber
192
+ ) {
193
+ return true
194
+ }
195
+ return false
196
+ } )
197
+ return site
198
+ }
199
+
191
200
192
201
/**
193
202
* Get stack string, line/column number transformed with source-map
0 commit comments