in src/config.js [200:243]
export async function discoverConfigFiles({ getHomeDir = os.homedir } = {}) {
const magicConfigName = 'web-ext-config';
// Config files will be loaded in this order.
const possibleConfigs = [
// Look for a magic hidden config (preceded by dot) in home dir.
path.join(getHomeDir(), `.${magicConfigName}.mjs`),
path.join(getHomeDir(), `.${magicConfigName}.cjs`),
path.join(getHomeDir(), `.${magicConfigName}.js`),
// Look for webExt key inside package.json file
path.join(process.cwd(), 'package.json'),
// Look for a magic config in the current working directory.
path.join(process.cwd(), `${magicConfigName}.mjs`),
path.join(process.cwd(), `${magicConfigName}.cjs`),
path.join(process.cwd(), `${magicConfigName}.js`),
// Look for a magic hidden config (preceded by dot) the current working directory.
path.join(process.cwd(), `.${magicConfigName}.mjs`),
path.join(process.cwd(), `.${magicConfigName}.cjs`),
path.join(process.cwd(), `.${magicConfigName}.js`),
];
const configs = await Promise.all(
possibleConfigs.map(async (fileName) => {
const resolvedFileName = path.resolve(fileName);
if (await fileExists(resolvedFileName)) {
return resolvedFileName;
} else {
log.debug(
`Discovered config "${resolvedFileName}" does not ` +
'exist or is not readable',
);
return undefined;
}
}),
);
const existingConfigs = [];
configs.forEach((f) => {
if (typeof f === 'string') {
existingConfigs.push(f);
}
});
return existingConfigs;
}