hasura-gql-client
TypeScript icon, indicating that this package has built-in type declarations

0.0.25 • Public • Published

hasura-gql-client

Typescript based Hasura GQL client for NodeJS/TS/JS apps.

npm version

hasura-gql-client image

  • 🚀 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.

Package Sidebar

Install

npm i hasura-gql-client

Weekly Downloads

66

Version

0.0.25

License

MIT

Unpacked Size

122 kB

Total Files

15

Last publish

Collaborators

  • jale29