Skip to content

Instantly share code, notes, and snippets.

@jakedohm
Last active November 27, 2020 20:11
Show Gist options
  • Star 10 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save jakedohm/860f2dadbf00f0d96c8f8d773c476351 to your computer and use it in GitHub Desktop.
Save jakedohm/860f2dadbf00f0d96c8f8d773c476351 to your computer and use it in GitHub Desktop.
const { setContext } = require('apollo-link-context');
const { HttpLink } = require('apollo-link-http');
const { introspectSchema, makeRemoteExecutableSchema } = require('graphql-tools');
const fetch = require('node-fetch');
module.exports = function(api) {
api.createSchema(async function(graphql) {
const http = new HttpLink({
uri: 'http://example.com/api',
fetch
});
const link = setContext((request, previousContext) => ({
headers: {
Authorization: `Bearer JSmxi5ocIhjKGENvgK66TrlqoylAPy8ZeAckiyo-4txKkYhdKSfLlPXLnxoghZm3`
}
})).concat(http);
const schema = await introspectSchema(link);
const executableSchema = await makeRemoteExecutableSchema({
schema: schema,
link
});
return executableSchema;
});
};
@stereokai
Copy link

I'm getting this error, Error: You should provide GraphQLDirective to schemaComposer.addDirective(), but recieved: @infer
I posted an issue here: gridsome/gridsome#1279
Any idea?
Thank you :)

@1mursaleen
Copy link

So you're consuming apollo-link-context, apollo-link-http, graphql-tools, and node-fetch implicitly?

As I copied the code from the article mentioned above, I thought of this too. Somehow these packages are already installed by gridsome itself or by either of the two source plugins i`m using.

@stereokai
Copy link

Thanks, I replied in the issue.

@stereokai
Copy link

I ended up removing all the package locks (yarn, npm, pnpm) and doing a fresh reinstall using yarn with these dependencies:

    "@gridsome/source-graphql": "~0.1.0",
    "graphql": "^14.0.0",
    "gridsome": "^0.7.0",

@nicolaisimonsen
Copy link

Renaming Types and RootFields section of this article (https://medium.com/hasura/the-ultimate-guide-to-schema-stitching-in-graphql-543ebcb25d42) resolved my issue.

Note: I did not use @gridsome/source-graphql plugin because it has limitations and the graphql query wont work inside api.loadSource() in gridsome.server.js

Would you mind sharing what you did to make it work? I'm having problems following the article mentioned 😕

@1mursaleen
Copy link

https://pastebin.com/uTwYZBeh
https://pastebin.com/t7JQPaPg

These are the two functions I created and called them from gridsome.server.config
I hope it helps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment