GraphQL TS Client
Generate fully typed Typescript clients for your GraphQL APIs.
Install
yarn add graphql-ts-client
Usage
Generate the client
import { generateTypescriptClient } from 'graphql-ts-client'
generateTypescriptClient({
output: './myAwesomeApi.ts',
endpoint: 'https://my.awesome-api.com/graphql',
verbose: process.env.NODE_ENV === 'development',
headers: {
Authorization: 'Bearer 1234567890987654321',
},
})
Using the generated client
import { myAwesomeApi, AssetType, Granularity, OnBoardingStage } from './myAwesomeApi'
async function somewhereOverTheRainbow() {
myAwesomeApi.setHeader('Authorization', 'Bearer 010101010101')
myAwesomeApi.setUrl('https://my-runtime-url.com/graphql')
myAwesomeApi.setRetryConfig({
max: 3,
before: ({ queryName, query, variables, response }) => {
},
})
myAwesomeApi.addResponseListener(({ queryName, query, variables, response }) => {
})
const response = await myAwesomeApi.queries.globalIndicators({
__alias: 'myCustomGlobalIndicators',
__args: {
liveStatus: OnBoardingStage.COMPLETED,
assetType: AssetType.LEASED,
granularity: Granularity.DAILY,
},
customerExperience: {
avgRating: {
__args: {
from: '2020-01-01',
to: '2020-02-01',
},
},
},
lorem: true,
ipsum: true,
})
console.log(response.customerExperience.avgRating)
console.log(response.lorem)
console.log(response.ipsum)
console.log(response.dolor)
}