UNPKG

@andranik-arakelyan/js-utilities

Version:
1 lines 1.06 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.currentCodeInfo=currentCodeInfo;function currentCodeInfo(additionalDepth=0){const error=new Error;const stack=error.stack?.split("\n")||[];const stackLineIndex=2+additionalDepth;const stackLine=stack[stackLineIndex];const result={className:"",methodName:"",filepath:"",filename:"",lineNumber:-1,columnNumber:-1};let match=null;match=stackLine?.match(/at (\w+)\.(\w+)/);if(match){result.className=match[1];result.methodName=match[2]}else{match=stackLine?.match(/at (\w+)\.<anonymous>/);if(match){result.className=match[1];result.methodName="anonymous"}else{match=stackLine?.match(/at (\w+)/);if(match){result.methodName=match[1]}else{result.methodName="anonymous"}}}let filePathInfo=stackLine?.match(/\((.*):(\d+):(\d+)\)/)||stackLine?.match(/at (.*):(\d+):(\d+)/);if(filePathInfo){result.filepath=filePathInfo[1];result.filename=filePathInfo[1].split("/").pop()||"unknown";result.lineNumber=parseInt(filePathInfo[2],10);result.columnNumber=parseInt(filePathInfo[3],10)}return result}