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.
- Type:
function
A function to get the variables you want to use with the client.query()
call.
The signature is: loaderContext => any
- Type:
string
- Default:
graphql
- Type:
string
- Default:
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'
}
- Type:
boolean
- Default:
true
when you setimportFrom
to a module name
Remove relevant import statement if necessary.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
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