GraphQL raw loader
Load GraphQL files as raw strings and handle it's import directive & comment statement.
Installation
Install it using NPM/Yarn.
# using NPM npm i -D graphlq-raw-loader # using Yarn yarn add graphql-raw-loader --dev
Configuration
Add graphql-raw-loader to your webpack configuration:
moduleexports = // ... module: rules: test: /\.$/ loader: 'graphql-raw-loader'
Usage example
fragment UserProfile on User { # Some fields.}
query Users { users () { ...UserProfile @import(from: "./UserProfile.graphql") }}
const getUsers = async { const response = await const users = await response return users}
Importing on GraphQL
Officially there's no way to import GraphQL files inside each other. Other loaders fixed it by parsing import statement inside a comment.
Also, theres a thread about implementing import statements on GraphQL. One of the best suggestions is about using a directive to import fragments.
This loader supports both ways. 😎
GraphQL loaders parses import statement inside comments.
Using comment import statement
# import "./UserDataFragment.graphql"# The comment statement above is importing a file with UserDataFragment fragment# inside it. query Users { users (is_active: True) { data { ...UserDataFragment } }}
@import
directive
Using query Users { users (is_active: True) { data { ... } ...PaginationFragment @import(from: "./PaginationFragment.graphql") # The directive above is importing a file with PaginationFragment fragment # inside it. }}