π©πΌβπ» Simple and lightweight GraphQL client.
yarn add hera-js
import { hera } from 'hera-js';
const { data } = await hera({
options: {
url: 'https://example.com'
},
query: `
query {
user(id: $id) {
id
name
age
}
}
`,
variables: {
id: 1
}
});
π» passing parameters as objects
const { data } = await hera({
options: {
url: 'https://example.com',
},
query: `
mutation {
createUser(info: $info) {
id
name
age
address
job
}
}
`,
variables: {
info: {
name: 'Cuong Tran',
age: 22,
address: 'Tam Ky - Sai Gon / Vietnam',
job: 'software engineer',
},
},
});
π error handling
const { data, errors } = await hera({
options: {
url: 'https://example.com',
},
query: `
query {
user(id: $id) {
id
name
age
}
}
`,
variables: {
id: 1,
},
});
π global options
You can specify config defaults that will be applied to every request.
import { hera, globalOptions } from 'hera-js';
globalOptions.url = 'https://example.com';
// globalOptions.headers = <your headers>
const { data } = await hera({
query: `
mutation {
createUser(info: $info) {
id
name
age
address
job
}
}
`,
variables: {
info: {
name: 'Cuong Tran',
age: 22,
address: 'Sai Gon / Vietnam',
job: 'software engineer',
},
},
});
π© enums
const { data } = await hera({
query: `
mutation {
createUser(info: $info) {
id
name
age
address
job
sex
}
}
`,
variables: {
info: {
name: 'Cuong Tran',
age: 22,
address: 'Sai Gon / Vietnam',
job: 'software engineer',
sex: 'MALE',
},
},
options: {
enums: ['sex'],
},
});
interface Options {
url?: string;
headers?: any;
timeout?: number;
enums?: string[];
}
hera({
query: string;
variables?: any;
options?: Options;
}) : Promise<{ data: any; errors: any[] }>
{
// `url` is the server URL that will be used for the request
url: '/example',
// `headers` are custom headers to be sent
headers: {
token: 'Fv0761DZcunUr0dKBc4oo5k55jJchwqu',
'Content-Type': 'application/json'
},
}
query
is query or mutation in Graphql
graphql's query
query: `
query {
user(id: $id) {
id
name
age
}
}
`
graphql's mutation
query: `
mutation {
createUser(info: $info) {
id
name
age
address
job
}
}
`
variables is used to pass values to query's variables
query: `
mutation {
createUser(info: $info) {
id
name
age
address
job
}
}
`,
variables: {
info: {
name: 'Cuong Tran',
age: 22,
address: 'Sai Gon / Vietnam',
job: 'software engineer',
},
}
Thanks goes to these wonderful people (emoji key):
Cuong Duy Nguyen π» π |
This project follows the all-contributors specification. Contributions of any kind welcome!
MIT Β© Cuong Tran