import { pick } from 'lodash' export class HasuraExceptionError extends Error { extensions: { internal: { statement: string prepared: boolean error: { exec_status: string hint: string message: string status_code: string description: string } arguments: Array } path: string code: string } constructor(error: HasuraExceptionError) { super(error.message) Object.assign(this, error) } processToLog(): any { const internalMessage = this.extensions?.internal?.error?.message const message = internalMessage ? `${this.message}: ${internalMessage}` : this.message return { message, ...pick(this.extensions?.internal || {}, ['statement', 'arguments']), } } }