@kwiz/common
Version:
KWIZ common utilities and helpers for M365 platform
20 lines • 1.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getStackCallers = getStackCallers;
const collections_base_1 = require("./collections.base");
const typecheckers_1 = require("./typecheckers");
/** looks through the current call stack to find all calling functions */
function getStackCallers(levels, skip, filter) {
filter = (0, typecheckers_1.isNotEmptyArray)(filter) ? filter : ['node_modules', 'node:internal'];
const allLines = new Error().stack.split('\n');
const stack = allLines
.filter(s => s.indexOf('at ') > 0 && !(0, collections_base_1.firstOrNull)(filter, f => s.includes(f)))
.map(s => {
const value = s.slice(s.indexOf(' at ') + 4).split(' ');
return value[0] === "async" ? value[1] : value[0];
}).reverse();
const end = (skip > 0 ? skip + 1 : 1) * -1;
const start = levels > 0 ? stack.length - levels + end : 0;
return stack.slice(start > 0 ? start : 0, end);
}
//# sourceMappingURL=console.js.map