'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;
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
								};
							 |