You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@result/hasura-parser

Package Overview
Dependencies
Maintainers
2
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@result/hasura-parser

Helper module for Hasura actions and events.

latest
Source
npmnpm
Version
1.0.1
Version published
Weekly downloads
4
-60%
Maintainers
2
Weekly downloads
 
Created
Source

RESULT d.o.o.

Hasura Parser

npm version Coverage Dependencies License

An easy utility library for parsing data from Hasura events and actions.

Made with :heart: at RESULT d.o.o.

Getting started

First install the package.

yarn add @result/hasura-parser
npm install @result/hasura-parser

Actions

To use the Action Parser you can either import ActionParser or require the whole package.

import { ActionParser } from '@result/hasura-parser'

// Data is from your request body
const actionParser = new ActionParser( data )

Parsing data

To get the data you need, just pass in the keys of the arguments you want:

const data = actionParser.getData( "id", "type", "user" )

This will give you the following response:

{
	"id": <data>,
	"type": <data>,
	"user": null
}

If the value is not found a null will be returned in its place.

If you want to get all the data in its raw form, you can issue the following call:

const data = actionParser.getRawData()

This will give you all the values that were passed in by Hasura.

Getting session variables

Single session variable:

const userId = actionParser.getSessionVariable( "x-hasura-user-id" )

This will either give you the value of the session variable or just null if it is not set.

All session variables:

const sessionVariables = actionParser.getSessionVariables()

Other data

Action name:

const sessionVariables = actionParser.getActionName()

Events

To use the Events Parser you can either import EventParser or require the whole package.

import { EventParser } from '@result/hasura-parser'

// Data is from your request body
const eventParser = new EventParser( data )

Parsing data

To get the data you need, just pass in the keys of the arguments you want:

const data = eventParser.getData( "id", "type", "user" )

The response depends on the event type, if it is an INSERT, DELETE or MANUAL operation you will receive the following response:

{
	"id": <data>,
	"type": <data>,
	"user": null
}

If the value is not found a null will be returned in its place.

If it is an UPDATE operation, the object will contain the old and new values:

{
	"old": {
		"id": <data>,
		"type": <data>,
		"user": null
	},
	"new": {
		"id": <data>,
		"type": <data>,
		"user": null	
	}
}

If you want to get all the data in its raw form, you can issue the following calls:

const oldData = eventParser.getOldData()
const newData = eventParser.getNewData()

Depending on the event type, old or new can be null.

This will give you all the values that were passed in by Hasura.

Getting session variables

Single session variable:

const userId = eventParser.getSessionVariable( "x-hasura-user-id" )

This will either give you the value of the session variable or just null if it is not set.

All session variables:

const sessionVariables = eventParser.getSessionVariables()

Other data

Get ID of event:

const eventID = eventParser.getID()

Get trigger name (set in Hasura Console):

const triggerName = eventParser.getTriggerName()

Get schema name (the name of the schema that was affected by the event):

const schemaName = eventParser.getSchemaName()

Get table name (name of affected table by the event):

const tableName = eventParser.getTableName()

Get current retries and max retries (if this is set in the event in Hasura):

const currentRetry = eventParser.getCurrentRetry()
const maxRetries = eventParser.getMaxRetries()

Operation type checking (INSERT, UPDATE, DELETE, MANUAL):

const isInsert = eventParser.isInsertOperation() // The following operations return a boolean value
const isUpdate = eventParser.isUpdateOperation()
const isDelete = eventParser.isDeleteOperation()
const isManual = eventParser.isManualOperation()
const operationType = eventParser.getOperationType() // Returns INSERT, UPDATE, DELETE or MANUAL

Timestamp of operation:

const timestamp = eventParser.getTimestamp()

Trace context:

const traceContextID = eventParser.getTraceContextID()
const traceContextSpanID = eventParser.getTraceContextSpanID()

Contributions

If you would like to make any contribution you are welcome to do so.

Keywords

Hasura

FAQs

Package last updated on 24 Sep 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts