42 lines
1.2 KiB
JavaScript
Raw Normal View History

2019-04-09 21:51:28 +02:00
const loadUtils = require('strapi/lib/load');
const _ = require('lodash');
const loadApisGraphqlConfig = appPath =>
loadUtils.loadFiles(appPath, 'api/**/config/*.graphql?(.js)');
const loadPluginsGraphqlConfig = async installedPlugins => {
const root = {};
for (let pluginName of installedPlugins) {
const pluginDir = loadUtils.findPackagePath(`strapi-plugin-${pluginName}`);
const result = await loadUtils.loadFiles(
pluginDir,
'config/*.graphql?(.js)'
);
_.set(root, ['plugins', pluginName], result);
}
2019-06-10 20:37:13 +02:00
2019-04-09 21:51:28 +02:00
return root;
};
const loadLocalPluginsGraphqlConfig = async appPath =>
loadUtils.loadFiles(appPath, 'plugins/**/config/*.graphql?(.js)');
2019-06-10 20:37:13 +02:00
const loadExtensions = async appPath =>
loadUtils.loadFiles(appPath, 'extensions/**/config/*.graphql?(.js)');
2019-04-09 21:51:28 +02:00
/**
* Loads the graphql config files
*/
module.exports = async ({ appPath, installedPlugins }) => {
2019-06-10 20:37:13 +02:00
const [apis, plugins, localPlugins, extensions] = await Promise.all([
2019-04-09 21:51:28 +02:00
loadApisGraphqlConfig(appPath),
loadPluginsGraphqlConfig(installedPlugins),
loadLocalPluginsGraphqlConfig(appPath),
2019-06-10 20:37:13 +02:00
loadExtensions(appPath),
2019-04-09 21:51:28 +02:00
]);
2019-06-10 20:37:13 +02:00
return _.merge({}, apis, plugins, extensions, localPlugins);
2019-04-09 21:51:28 +02:00
};