Hasura Schema/Metadata API SDK. Written in TypeScript!
- ✅ 100% in TypeScript
- 🏋️ Uses Axios under the hood
yarn add @aaronhayes/hasura-sdk
npm install @aaronhayes/hasura-sdk
import Hasura from '@aaronhayes/hasura-sdk`;
// Note: just the base url - don't add /v1/graphql!
const HASURA_GRAPHQL_ENDPOINT = 'http://localhost:8080';
// Hint: use process.env.HASURA_GRAPHQL_ADMIN_SECRET
const HASURA_GRAPHQL_ADMIN_SECRET = 'yousecret';
const hasura = new Hasura({
endpoint: HASURA_GRAPHQL_ENDPOINT,
adminSecret: HASURA_GRAPHQL_ADMIN_SECRET
});
// Using Async/Await Functions
try {
const resp = await hasura.createCronTrigger({
name: 'newcronjob',
schedule: '* * * * *', // every minute
webhook: '{{EVENT_BASE_URL}}/cron',
payload: {
hello: "world"
},
comment: 'test cron job every minute'
});
} catch (error) {
// handle error
}
// Using Promises
hasura.createCronTrigger({
name: 'newcronjob',
schedule: '* * * * *',
webhook: '{{EVENT_BASE_URL}}/cron',
payload: {
hello: "world"
},
comment: 'test cron job every minute'
}).then(data => {
// axios response
}).catch(error => {
// handle error
});
We currently only support a small range of Hasura APIs. Be assured we working on adding more - if you need something be sure to create an issue!
API | Support |
---|---|
Run SQL | Yes |
Tables/Views | Yes |
Custom SQL Functions | No |
Relationships | No |
Computed Fields | No |
Permissions | No |
Event Triggers | Yes |
Scheduled Triggers | Yes |
Remote Schemas | No |
Query Collections | No |
Custom Types | No |
Actions | No |
Manage Metadata | No |
Every star helps build a little more