Loading GraphQL operation documents from different sources#
Similar to schema loading - but meant to use for GraphQL documents (query/mutation/subscription/fragment).
Any input provided as a source will be recognized by utils automatically.
It also extracts usages of gql
from code files using @graphql-tools/graphql-tag-pluck
.
For notes on typescript, refer to loaders
Usage#
const { loadDocuments } = require('@graphql-tools/load')
const { GraphQLFileLoader } = require('@graphql-tools/graphql-file-loader')
const { CodeFileLoader } = require('@graphql-tools/code-file-loader')
// load from string
const document1 = loadDocuments('query { f }')
// load from a single file
const document2 = loadDocuments('./users.query.graphql', {
loaders: [new GraphQLFileLoader()]
})
// load from multiple files using glob
const document3 = loadDocuments('./src/**/*.graphql', {
loaders: [new GraphQLFileLoader()]
})
// load from code file
const document4 = loadDocuments('./src/my-component.ts', {
loaders: [new CodeFileLoader()]
})
loadDocuments
returns an array of document sources. Each source object has the following structure:
interface DocumentSource {
document: DocumentNode // Object representation of GraphQL Content
rawSDL: string // SDL in text
location: string // Way to access to that source
}
loadDocuments
takes in additional configuration via the options
object (the second argument). There are some defaults to be aware of - to learn more, see the full API documentation.
You can learn more about loaders to load documents from different sources.