/** * @param {import('next').NextConfig} nextConfig */ const graphqlPlugin = (nextConfig = {}) => { return Object.assign({}, nextConfig, { webpack: (config, options) => { config.module.rules.push({ test: /\.graphql$/, exclude: /node_modules/, use: [options.defaultLoaders.babel, { loader: "graphql-let/loader" }], }); config.module.rules.push({ test: /\.graphqls$/, exclude: /node_modules/, use: ["graphql-let/schema/loader"], }); config.module.rules.push({ test: /\.ya?ml$/, type: "json", use: "yaml-loader", }); // Overload the Webpack config if it was already overloaded if (typeof nextConfig.webpack === "function") { return nextConfig.webpack(config, options); } return config; }, }); }; module.exports = graphqlPlugin;