43 lines
1.2 KiB
JavaScript
Raw Normal View History

'use strict';
// eslint-disable-next-line node/no-extraneous-require
2021-04-29 13:51:12 +02:00
const loadUtils = require('@strapi/strapi/lib/load');
2019-04-09 21:51:28 +02:00
const _ = require('lodash');
const loadApisGraphqlConfig = appPath =>
loadUtils.loadFiles(appPath, 'api/**/config/*.graphql?(.js)');
const loadPluginsGraphqlConfig = async installedPlugins => {
const root = {};
for (let pluginName of installedPlugins) {
2021-04-29 13:51:12 +02:00
const pluginDir = loadUtils.findPackagePath(`@strapi/plugin-${pluginName}`);
2019-04-09 21:51:28 +02:00
const result = await loadUtils.loadFiles(pluginDir, 'config/*.graphql?(.js)');
2019-04-09 21:51:28 +02:00
_.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
};