Package Exports
- hasura-gql-client
- hasura-gql-client/dist/cjs/index.js
- hasura-gql-client/dist/esm/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (hasura-gql-client) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
hasura-gql-client
Typescript based Hasura GQL client for NodeJS/TS/JS apps.
- 🚀 Blazing fast GraphQL
- ⚡️ Lightning Fast
- 🔑 Fully Typed APIs
- 🛠️ Rich Features
- 📦 Optimized Build
- 🥴 No Graphql string mess
Installation
yarn add hasura-gql-client
or
npm i hasura-gql-client
Settings
import Client from 'hasura-gql-client';
interface TestBook {
id: string;
name: string;
}
interface TestUser {
id: string;
email: string;
books: TestBook[];
book: TestBook;
}
interface Select {
test_user: TestUser;
test_book: TestBook;
}
// Insert type
interface InsertTestUser {
email: string;
}
interface InsertTestBook {
name: string;
}
interface Insert {
test_user: InsertTestUser;
test_book: InsertTestBook;
}
// Update type
interface UpdateTestUser {
email?: string;
}
interface UpdateTestBook {
name: string;
}
interface Update {
test_user: UpdateTestUser;
test_book: UpdateTestBook;
}
const client = new Client<Select, Insert, Update>({
host: process.env.HOST ?? 'err',
customHeaders: { 'x-hasura-admin-secret': process.env.X_HASURA_ADMIN_SECRET ?? 'err' },
debug: true,
});
const start = async (): Promise<void> => {
// select
const usersSelect2 = await client.select('test_user', ['id', 'book.name', 'books.id']);
console.log(usersSelect2[0]?.id);
console.log(usersSelect2[0]?.books[0].id);
console.log(usersSelect2[0]?.book.name);
// insert
const usersInsert = await client.insert('test_user', { email: 'foo@email.com', name: 'foo' }, ['id']);
console.log(usersInsert[0].id);
// update
const usersUpdate = await client.update('test_user', { email: 'foo2@email.com' }, ['id']);
console.log(usersUpdate[0].id);
};
start().catch(console.error);
See example folder for more details.