yarn add graphql-aot
If you only want to work with the import
statement, you will only need the webpack loader:
📝 webpack.config.js:
module.exports = {
entry: './index.js',
module: {
rules: [
{
test: /\.gql$/,
loader: 'graphql-aot/loader',
options: {
defaultClientOptions: {
uri: 'https://api.graph.cool/simple/v1/cixmkt2ul01q00122mksg82pn'
}
}
}
]
}
}
📝 query.gql:
{
allPosts (first: 5) {
id
title
}
}
📝 index.js:
import data from './query.gql'
console.log(data.allPosts)
If you want to use inline graphql tag, you will also need the babel plugin:
📝 .babelrc.js:
module.exports = {
plugins: [
require.resolve('graphql-aot/babel')
]
}
📝 index.js:
const { allPosts } = graphql`
{
allPosts (first: 5) {
id
title
}
}
`
console.log(allPosts)
Options for the default Apollo client.
Provide your own Apollo client instance.
function
A function to get the variables you want to use with the client.query()
call.
The signature is: loaderContext => any
string
graphql
string
undefined
Ensure the tagged template literal identifier is imported from a module.
import { gql } from 'a-module'
const data = gql`query { id }`
The above code will only work when you have following config for the babel plugin:
{
importFrom: 'a-module',
tagName: 'gql'
}
boolean
true
when you set importFrom
to a module nameRemove relevant import statement if necessary.
git checkout -b my-new-feature
git commit -am 'Add some feature'
git push origin my-new-feature
graphql-aot © egoist, Released under the MIT License. Authored and maintained by egoist with help from contributors (list).
github.com/egoist · GitHub @egoist · Twitter @_egoistlily