in lib/util.ts [37:66]
export async function runFilenameOrFn_(
configDir: string, filenameOrFn: any, args?: any[]): Promise<any> {
if (filenameOrFn && !(typeof filenameOrFn === 'string' || typeof filenameOrFn === 'function')) {
throw new Error('filenameOrFn must be a string or function');
}
if (typeof filenameOrFn === 'string') {
filenameOrFn = require(path.resolve(configDir, filenameOrFn));
}
if (typeof filenameOrFn === 'function') {
let results;
try {
results = await filenameOrFn.apply(null, args);
} catch (err) {
if (typeof err === 'string') {
err = new Error(err);
} else {
err = err as Error;
if (!err.stack) {
err.stack = new Error().stack;
}
}
err.stack = exports.filterStackTrace(err.stack);
throw err;
}
return results;
} else {
return undefined;
}
}