What is @graphql-tools/git-loader?
The @graphql-tools/git-loader package is designed to load GraphQL schema files and documents directly from a Git repository. This is particularly useful for managing and integrating GraphQL schemas and documents that are version-controlled in Git, allowing developers to fetch and utilize these resources dynamically in their GraphQL server implementations.
What are @graphql-tools/git-loader's main functionalities?
Load GraphQL schemas from Git
This feature allows developers to load GraphQL schemas directly from a Git repository. The code sample demonstrates how to load a schema from a specific branch and path within a Git-hosted repository using the GitLoader.
import { loadSchema } from '@graphql-tools/git-loader';
async function getSchema() {
const schema = await loadSchema('git://github.com/example/repo#branch:path/to/schema.graphql', {
loaders: [
new GitLoader()
]
});
return schema;
}
Load GraphQL documents from Git
This feature enables the loading of GraphQL documents (queries, mutations, subscriptions) from a Git repository. The provided code sample shows how to fetch documents using a glob pattern from a specified branch and path in a repository.
import { loadDocuments } from '@graphql-tools/git-loader';
async function getDocuments() {
const documents = await loadDocuments('git://github.com/example/repo#branch:path/to/documents/*.graphql', {
loaders: [
new GitLoader()
]
});
return documents;
}
Other packages similar to @graphql-tools/git-loader
graphql-config
Similar to @graphql-tools/git-loader, graphql-config is used to handle GraphQL project configuration. It supports loading configurations from multiple sources but does not directly integrate Git loading capabilities. This makes @graphql-tools/git-loader more specialized for scenarios involving Git repositories.
graphql-import
The graphql-import package allows importing and bundling GraphQL files. While it facilitates modularizing and reusing GraphQL schema definitions, it lacks the direct Git integration provided by @graphql-tools/git-loader, focusing instead on local file imports.