保誠-保戶業務員媒合平台
HelenHuang
2022-06-09 9bdb95c9e34cef640534e5e5a1e2225a80442000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
'use strict';
const callsites = require('callsites');
 
module.exports = filepath => {
    const stacks = callsites();
 
    if (!filepath) {
        return stacks[2].getFileName();
    }
 
    let seenVal = false;
 
    // Skip the first stack as it's this function
    stacks.shift();
 
    for (const stack of stacks) {
        const parentFilepath = stack.getFileName();
 
        if (typeof parentFilepath !== 'string') {
            continue;
        }
 
        if (parentFilepath === filepath) {
            seenVal = true;
            continue;
        }
 
        // Skip native modules
        if (parentFilepath === 'module.js') {
            continue;
        }
 
        if (seenVal && parentFilepath !== filepath) {
            return parentFilepath;
        }
    }
};